diff --git a/dist/ac.js b/dist/ac.js index 36f3f6d..2d0ca7b 100644 --- a/dist/ac.js +++ b/dist/ac.js @@ -1,5 +1,5 @@ /*! ainsley MIT @tbjgolden */ -var Ainsley=(t=>{const o=t=>{let o=[[]],r=0;for(;ro.map(o=>o.concat([t])));return o},r={addVariationToSelector:(t,o)=>o+"-"+t,addPropertyToSelector:(t,o)=>t+o.toLowerCase(),addValueToSelector:(t,o)=>t+o.toUpperCase(),abbreviateProperty:t=>[t.split("-").map(t=>t.charAt(0)).join("").toLowerCase(),t.toLowerCase()]},e=/\{[a-zA-Z0-9_-]+\}/g,n=(t,r,e)=>{var n;const l={...e};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var r;const n=u(t),c=n[0],s=n[1];0===c||1===c&&void 0===l[s]?l[s]=o[t]:2===c&&(l[s]={...null!==(r=e[s])&&void 0!==r?r:{},...o[t]})})}const s=void 0===t.children?[]:c(t.children,r,l);return o((null!==(n=t.variations)&&void 0!==n?n:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},c=(t,o,r)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,r):s(t,o):n(t,o,r)),l=(t,r,n)=>{const c=t[0],l=t[1],s=[];return l.map(t=>{var o,r;const n=null!==(o=t[0].match(e))&&void 0!==o?o:[],c=null!==(r=(""+t[1]).match(e))&&void 0!==r?r:[];n.map(t=>s.push([t,0])),c.map(t=>s.push([t,1]))}),o(s.map(t=>{const o=t[0],r=t[1],e=o.slice(1,-1);return Object.keys(n[e]).map(t=>[o,t,n[e][t],r])})).map(t=>{let o=0,e=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?r.addPropertyToSelector(t,o[1]):r.addValueToSelector(t,o[1]),c),l.map(r=>{const n=r=>{for(;o{const r=t[1],e=o.abbreviateProperty(t[0]),n=e[0],c=e[1];return Object.keys(r).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",n),t),[[c,r[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX="\\{[a-zA-Z0-9_-]+\\}",t.embed=(t,o)=>{let r=null;void 0!==o&&(r=document.querySelector("style#"+o)),null===r&&(r=document.createElement("style"),r.type="text/css",void 0!==o&&r.setAttribute("id",o),document.head.appendChild(r)),r.innerHTML=t},t.generate=(t,o={})=>{const e={...r,...o};return((t,o)=>{let r="",e=[];for(let n=0;n`${t[0]}:${t[1]}`).join(";")}}`}e=c.t}for(const t of e)t[1].startsWith("@")&&(r+="}");return r})(n(t,e,{}),e)},t})({}); +var Ainsley=(t=>{const o=t=>{let o=[[]],r=0;for(;ro.map(o=>o.concat([t])));return o},r={addVariationToSelector:(t,o)=>o+"_"+t,addPropertyToSelector:(t,o)=>t+"-"+o,addValueToSelector:(t,o)=>t+"-"+o,abbreviateProperty:t=>[t.split("-").map(t=>t[0]).join(""),t]},e=/\{[a-zA-Z0-9_-]+\}/g,n=(t,r,e)=>{var n;const l={...e};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var r;const n=u(t),c=n[0],s=n[1];0===c||1===c&&void 0===l[s]?l[s]=o[t]:2===c&&(l[s]={...null!==(r=e[s])&&void 0!==r?r:{},...o[t]})})}const s=void 0===t.children?[]:c(t.children,r,l);return o((null!==(n=t.variations)&&void 0!==n?n:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},c=(t,o,r)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,r):s(t,o):n(t,o,r)),l=(t,r,n)=>{const c=t[0],l=t[1],s=[];return l.map(t=>{var o,r;const n=null!==(o=t[0].match(e))&&void 0!==o?o:[],c=null!==(r=(""+t[1]).match(e))&&void 0!==r?r:[];n.map(t=>s.push([t,0])),c.map(t=>s.push([t,1]))}),o(s.map(t=>{const o=t[0],r=t[1],e=o.slice(1,-1);return Object.keys(n[e]).map(t=>[o,t,n[e][t],r])})).map(t=>{let o=0,e=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?r.addPropertyToSelector(t,o[1]):r.addValueToSelector(t,o[1]),c),l.map(r=>{const n=r=>{for(;o{const r=t[1],e=o.abbreviateProperty(t[0]),n=e[0],c=e[1];return Object.keys(r).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",n),t),[[c,r[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX="\\{[a-zA-Z0-9_-]+\\}",t.embed=(t,o)=>{let r=null;void 0!==o&&(r=document.querySelector("style#"+o)),null===r&&(r=document.createElement("style"),r.type="text/css",void 0!==o&&r.setAttribute("id",o),document.head.appendChild(r)),r.innerHTML=t},t.generate=(t,o={})=>{const e={...r,...o};return((t,o)=>{let r="",e=[];for(let n=0;n`${t[0]}:${t[1]}`).join(";")}}`}e=c.t}for(const t of e)t[1].startsWith("@")&&(r+="}");return r})(n(t,e,{}),e)},t})({}); //# sourceMappingURL=ac.js.map \ No newline at end of file diff --git a/dist/ac.js.map b/dist/ac.js.map index ceab811..8017591 100644 --- a/dist/ac.js.map +++ b/dist/ac.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"names":["combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","variationAbbreviation","s","c","base","n","r","i","_a","ainsley","ainsleyChildrenToAst","concat","t","flatMap","rulesListWithoutVariations","isArray","options","ainsleyRule","map","css","styleEl","id","length","slice","startsWith","l","o","$content","$variations"],"mappings":"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","sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"names":["combinations","list","mods","index","propertyName","variationAbbreviation","s","c","base","n","r","i","_a","ainsley","ainsleyChildrenToAst","concat","t","flatMap","rulesListWithoutVariations","isArray","options","ainsleyRule","map","css","styleEl","id","length","slice","startsWith","l","o","$content","$variations"],"mappings":";;;uBAKWA,EAAAA,IAAAA,IAAAA,EAAAA,CAAAA,IAAAA,EAAAA,EAAAA,KAAAA,EAAAA,EAAAA,QAMTC,EAAOC,EAAIC,KAAAA,QAAAA,GAAAA,EAAAA,IAAAA,GAAAA,EAAAA,OAAAA,CAAAA,MAAAA,OAAAA,GAAAA,EAAAA,CAAAA,uBAAAA,CAAAA,EAAAA,IAAAA,EAAAA,IAAAA,EAAAA,sBAAAA,CAAAA,EAAAA,IAAAA,EAAAA,IAAAA,EAAAA,mBAAAA,CAAAA,EAAAA,IAAAA,EAAAA,IAAAA,EAAAA,mBAAAA,GAAAA,CAAAA,EAAAA,MAAAA,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,KAAAA,ICoDXC,IAAAA,EAAAA,sBA+EMC,EAAAA,CAAAA,EAAAA,EAAAA,KAAAA,IAAAA,EAAAA,MAAAA,EAAAA,IAAAA,GAAAA,QAAAA,IAAAA,EAAAA,UAAAA,CAAAA,MAAAA,EAAAA,EAAAA,UAAAA,OAAAA,KAAAA,GAAAA,IAAAA,IAAAA,IAAAA,EAAAA,MAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAAA,IAAAA,GAAAA,IAAAA,QAAAA,IAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,GAiDiB,IAAAC,IAAAC,EAKNC,GAAAA,IACiB,QAAAC,EAAAC,EAAAC,UAAA,IAAAC,EAAAA,EAAAA,MAAAA,EAAAA,OAAAA,MAAAA,OAAAA,IASlCC,EAAAA,SAEI,GACAC,EAAAA,EAAAA,SAAAA,EAAAA,GAAAA,OAKYd,GAAAA,QAAAA,EAAAA,EAAAA,kBAAAA,IAAAA,EAAAA,EAAAA,IAAAA,IAAAA,GAAAA,CAAAA,CAAAA,GAER,KAAAe,OAAAC,KAAAC,QAAAD,GAINE,EAAAA,IAAAA,IAAAA,CAAAA,EAAAA,IAAAA,KAAAA,EAAAA,GAAAA,EAAAA,EAAAA,OAAAA,EAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,QAAAA,GAAAA,iBAAAA,EAAAA,CAAAA,CAAAA,EAAAA,GAAAA,EAAAA,IAAAA,MA+BOC,QAAAA,GAAAA,MAAAA,QAAAA,EAAAA,IAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAesCC,EAAAA,IAAAA,EAAAA,CAAAA,EAAAA,EAAAA,KAAAA,MAAAA,EAkB9BC,EAAoB,GAAAf,EAAAU,EAAA,GAAAL,EAAA,GAAA,OAAAL,EAG1BgB,IAAAA,IAAAA,IAAAA,EAAAA,EAAAA,MAAAA,EAAAA,QAAAA,EAAAA,EAAAA,GAAAA,MAAAA,UAAAA,IAAAA,EAAAA,EAAAA,GAAAA,EAAAA,QAAAA,GAAAA,GAAAA,EAAAA,IAAAA,MAAAA,UAAAA,IAAAA,EAAAA,EAAAA,GAAAA,EAAAA,IAAAA,GAAAA,EAAAA,KAAAA,CAAAA,EAAAA,KAAAA,EAAAA,IAAAA,GAAAA,EAAAA,KAAAA,CAAAA,EAAAA,OAAAA,EAAAA,EAAAA,IAAAA,IAAAA,MAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,MAAAA,GAAAA,GAAAA,OAAAA,OAAAA,KAAAA,EAAAA,IAAAA,IAAAA,GAAAA,CAAAA,EAAAA,EAAAA,EAAAA,GAAAA,GAAAA,OAAAA,IAAAA,IAAAA,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,IAAAA,IAAAA,EAAAA,GAAAA,EAAAA,sBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,mBAAAA,EAAAA,EAAAA,IAAAA,GAAAA,EAAAA,IAAAA,IAAAA,MAAAA,EAAAA,IAAAA,KAAAA,EAAAA,EAAAA,QAAAA,EAAAA,SAAAA,EAAAA,KAAAA,EAAAA,EAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,IAAAA,EAAAA,IAAAA,GAAAA,OAAAA,GAAAA,MAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,EAAAA,YAAAA,EAAAA,CAAAA,EAAAA,KAAAA,MAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,mBAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAAA,OAAAA,OAAAA,KAAAA,GAAAA,IAAAA,IAAAA,CAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,mBAAAA,EAAAA,sBAAAA,GAAAA,GAAAA,GAAAA,CAAAA,CAAAA,EAAAA,EAAAA,UAAAA,EAAAA,IAAAA,MAAAA,EAAAA,KAAAA,QAAAA,EAAAA,IAAAA,EAAAA,MAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EAAAA,MAAAA,GAAAA,IAAAA,OAAAA,EAAAA,gBAAAA,EAAAA,EAAAA,eDpRAnB,uBCoRAmB,EAAAA,MC9RQ,CAACC,EAAAA,KAAAA,IAAAA,EAAAA,UAAAA,IAAAA,IAEAC,EAAAA,SAAAA,cAAAA,SAAAA,IAAAA,OAAAA,IAAAA,EAAAA,SAAAA,cAAAA,SAAAA,EAAAA,KAAAA,gBAAAA,IAKlBC,GAAAA,EAAAA,aAAAA,KAAAA,GAAAA,SAAAA,KAAAA,YAAAA,IAAAA,EAAAA,UAAAA,GAAAA,EAAAA,SAAAA,CAAAA,EAAAA,EAAAA,MAAAA,MAAAA,EAAAA,IAAAA,KAAAA,GAAAA,MDuDFrB,EAAAA,EAAAA,KAAAA,IAAAA,EAAAA,GAAAA,EAAAA,GAAAA,IAAAA,IAAAA,EAAAA,EAAAA,EAAAA,EAoCyBsB,OAAAA,IAAAA,CAAAA,MAAAA,EAAAA,EAAAA,GAAAA,IAAAA,EAMb,EAAA,KAAApB,EAAAI,EAAAgB,QAAAhB,EAAAJ,KAAAC,EAAAS,EAAAV,IAAAA,GAAA,EAAA,MAAAK,EAAAD,EAAAiB,MAAArB,GAAA,IAAA,MAAAU,KAAAL,EAAAK,EAAA,GAAAY,WAAA,OAAAnB,GAAA,KAAA,MAAAoB,EAAAtB,EAAAS,EAAAW,MAAArB,GAAA,IAAA,MAAAU,KAAAa,EAAA,CAAA,MAAAC,EAAAd,EAkBkC,GAAAc,EAAAF,WAAA,OAE5CL,GAAAA,EAAAA,KAAAA,GAAAA,iBAAAA,EAAAA,EAAAA,GAAAA,EAAAA,MAAAA,CAAAA,IAAAA,EAAAA,EAKuBQ,EAAAA,GAAAA,EAAAA,GAAAA,IAAAA,IAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,OAAAA,IAAAA,CAAAA,MAAAA,EAAAA,EAAAA,EAAAA,GAAAA,GAAAA,EAAAA,EAIMC,EAAAA,GAAAA,GAAAA,KAAAA,IAAAA,EAAAA,WAAAA,OAAAA,GAAAA,GAAAA,GAAAA,EAAAA,EAAAA,uBAAAA,EAQzB3B,IAAAA,GAAAA,IAAAA,IAAAA,KAAAA,EAAAA,EAAAA,GAAAA,IAAAA,GAAAA,GAAAA,EAAAA,MAAAA,EAAAA,MAAAA,KAAAA,QAAAA,EAAAA,EAAAA,EAAAA,IAAAA,MAAAA,KAAAA,EAAAA,EAAAA,GAAAA,WAAAA,OAAAA,GAAAA,KAAAA,OAAAA,GCtIJoB,CAAAA,EAAAA,EAAAA,EAAAA,IAAAA,IAAAA,IAAAA","sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"]} \ No newline at end of file diff --git a/dist/ainsley.client.development.js b/dist/ainsley.client.development.js index 3b7328f..798862d 100644 --- a/dist/ainsley.client.development.js +++ b/dist/ainsley.client.development.js @@ -20,10 +20,10 @@ ainsley | MIT License | @tbjgolden | tom.bio const ITERATOR_REGEX = '\\{[a-zA-Z0-9_-]+\\}'; const DEFAULT_OPTIONS = { - addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '-' + selector, - addPropertyToSelector: (selector, propertyAbbreviation) => selector + propertyAbbreviation.toLowerCase(), - addValueToSelector: (selector, valueAbbreviation) => selector + valueAbbreviation.toUpperCase(), - abbreviateProperty: propertyName => [propertyName.split('-').map(word => word.charAt(0)).join('').toLowerCase(), propertyName.toLowerCase()] + addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '_' + selector, + addPropertyToSelector: (selector, propertyAbbreviation) => selector + '-' + propertyAbbreviation, + addValueToSelector: (selector, valueAbbreviation) => selector + '-' + valueAbbreviation, + abbreviateProperty: propertyName => [propertyName.split('-').map(word => word[0]).join(''), propertyName] }; const ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g'); const generate = (ainsley, options = {}) => { diff --git a/dist/ainsley.client.development.js.map b/dist/ainsley.client.development.js.map index ad3ed26..c5a9c33 100644 --- a/dist/ainsley.client.development.js.map +++ b/dist/ainsley.client.development.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.client.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";;;;;;;;;UAKW;;;;;IAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ICmCD,EAAA;;;+EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;gDAaI;;;;;;;;;;;;;;;;;;sCAuBoB,CAAC;;0BAMb;;iGAG8B;;;;;;;;;;;;;IAc1C,8BAAA,oBAAA;sDAC8C,CAAA,CAAA;kCACpB,kBACxB,iCAAA;;;;4BAGc;;qCAES;;;;;oDAIK,CAAC;oCACX,SAAS;;;;IAG1B;;gEAIG;;;;;;;;;IAkBP,6BAAA,kBAAA;kCAGC;IAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;iBAUS;uBACE;;;;;;;;;;6BAYU;yBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;IACA;;;;;;;yCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;wBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;QAAA,CANc;;;;;;;;;;sBAqCR,CAAC;;;eAGJ;;;;2BAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;uBAkBtB,YAAoB;wBACrB;;mBAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChSb;UACa,KAAK,GAAG,CAAC,GAAD,IAAA;;YAEf,gBAAgB,+CAAA;;4BAEA;;;YAGlB;gBAAsB;;;;IAKzB;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"ainsley.client.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";;;;;;;;;UAKW;;;;;IAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;wBC+BE;;;;;2EAmBK,uBAEP;;;gDAaI;;;;;;;;;;;;;;;;;;sCAuBoB,CAAC;;0BAMb;;iGAG8B;;;;;;;;;;;;;IAc1C,8BAAA,oBAAA;sDAC8C,CAAA,CAAA;kCACpB,kBACxB,iCAAA;;;;4BAGc;;qCAES;;;;;oDAIK,CAAC;oCACX,SAAS;;;;IAG1B;;gEAIG;;;;;;;;;IAkBP,6BAAA,kBAAA;kCAGC;IAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;iBAUS;uBACE;;;;;;;;;;6BAYU;yBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;IACA;;;;;;;yCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;wBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;QAAA,CANc;;;;;;;;;;sBAqCR,CAAC;;;eAGJ;;;;2BAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;uBAkBtB,YAAoB;wBACrB;;mBAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC/Rb;UACa,KAAK,GAAG,CAAC,GAAD,IAAA;;YAEf,gBAAgB,+CAAA;;4BAEA;;;YAGlB;gBAAsB;;;;IAKzB;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/ainsley.client.esm.js b/dist/ainsley.client.esm.js index 153274c..61d0537 100644 --- a/dist/ainsley.client.esm.js +++ b/dist/ainsley.client.esm.js @@ -14,10 +14,10 @@ const combinations = mods => { const ITERATOR_REGEX = '\\{[a-zA-Z0-9_-]+\\}'; const DEFAULT_OPTIONS = { - addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '-' + selector, - addPropertyToSelector: (selector, propertyAbbreviation) => selector + propertyAbbreviation.toLowerCase(), - addValueToSelector: (selector, valueAbbreviation) => selector + valueAbbreviation.toUpperCase(), - abbreviateProperty: propertyName => [propertyName.split('-').map(word => word.charAt(0)).join('').toLowerCase(), propertyName.toLowerCase()] + addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '_' + selector, + addPropertyToSelector: (selector, propertyAbbreviation) => selector + '-' + propertyAbbreviation, + addValueToSelector: (selector, valueAbbreviation) => selector + '-' + valueAbbreviation, + abbreviateProperty: propertyName => [propertyName.split('-').map(word => word[0]).join(''), propertyName] }; const ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g'); const generate = (ainsley, options = {}) => { diff --git a/dist/ainsley.client.esm.js.map b/dist/ainsley.client.esm.js.map index 1929e54..f2c25ab 100644 --- a/dist/ainsley.client.esm.js.map +++ b/dist/ainsley.client.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.client.esm.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";;;MAKW;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;;;ACmCD,EAAA;;;2EAYoB,IACnB,OADmB,EAAA,2BAMnB,aAAa,WAAb;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;IAAA,CANc;;;;;;;;;;kBAqCR,CAAC;;;WAGJ;;;;uBAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;mBAkBtB,YAAoB;oBACrB;;eAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChSb;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;"} \ No newline at end of file +{"version":3,"file":"ainsley.client.esm.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":[],"mappings":";;;MAKW;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;oBC+BE;;;;;uEAmBK,uBAEP;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;IAAA,CANc;;;;;;;;;;kBAqCR,CAAC;;;WAGJ;;;;uBAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;mBAkBtB,YAAoB;oBACrB;;eAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Rb;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;"} \ No newline at end of file diff --git a/dist/ainsley.client.production.js b/dist/ainsley.client.production.js index aa54a53..ffbf9ac 100644 --- a/dist/ainsley.client.production.js +++ b/dist/ainsley.client.production.js @@ -1,5 +1,5 @@ /*! ainsley MIT @tbjgolden */ -var Ainsley=function(t){"use strict";const o=t=>{let o=[[]],n=0;for(;no.map(o=>o.concat([t])));return o},n="\\{[a-zA-Z0-9_-]+\\}",r={addVariationToSelector:(t,o)=>o+"-"+t,addPropertyToSelector:(t,o)=>t+o.toLowerCase(),addValueToSelector:(t,o)=>t+o.toUpperCase(),abbreviateProperty:t=>[t.split("-").map(t=>t.charAt(0)).join("").toLowerCase(),t.toLowerCase()]},e=/\{[a-zA-Z0-9_-]+\}/g,c=(t,o)=>{let n="",r=[];for(let e=0;e`${t[0]}:${t[1]}`).join(";")}}`}r=c.t}for(const t of r){t[1].startsWith("@")&&(n+="}")}return n},s=(t,n,r)=>{var e;const c={...r};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var n;const e=u(t),s=e[0],i=e[1];0===s||1===s&&void 0===c[i]?c[i]=o[t]:2===s&&(c[i]={...null!==(n=r[i])&&void 0!==n?n:{},...o[t]})})}const s=void 0===t.children?[]:i(t.children,n,c);return o((null!==(e=t.variations)&&void 0!==e?e:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},i=(t,o,n)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,n):a(t,o):s(t,o,n)),l=(t,n,r)=>{const c=t[0],s=t[1],i=[];return s.map(t=>{var o,n;const r=null!==(o=t[0].match(e))&&void 0!==o?o:[],c=null!==(n=(""+t[1]).match(e))&&void 0!==n?n:[];r.map(t=>i.push([t,0])),c.map(t=>i.push([t,1]))}),o(i.map(t=>{const o=t[0],n=t[1],e=o.slice(1,-1);return Object.keys(r[e]).map(t=>[o,t,r[e][t],n])})).map(t=>{let o=0,r=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?n.addPropertyToSelector(t,o[1]):n.addValueToSelector(t,o[1]),c),s.map(n=>{const e=n=>{for(;o{const n=t[1],r=o.abbreviateProperty(t[0]),e=r[0],c=r[1];return Object.keys(n).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",e),t),[[c,n[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX=n,t.embed=(t,o)=>{let n=null;void 0!==o&&(n=document.querySelector("style#"+o)),null===n&&(n=document.createElement("style"),n.type="text/css",void 0!==o&&n.setAttribute("id",o),document.head.appendChild(n)),n.innerHTML=t},t.generate=(t,o={})=>{const n={...r,...o};return c(s(t,n,{}),n)},t}({}); +var Ainsley=function(t){"use strict";const o=t=>{let o=[[]],n=0;for(;no.map(o=>o.concat([t])));return o},n="\\{[a-zA-Z0-9_-]+\\}",r={addVariationToSelector:(t,o)=>o+"_"+t,addPropertyToSelector:(t,o)=>t+"-"+o,addValueToSelector:(t,o)=>t+"-"+o,abbreviateProperty:t=>[t.split("-").map(t=>t[0]).join(""),t]},e=/\{[a-zA-Z0-9_-]+\}/g,c=(t,o)=>{let n="",r=[];for(let e=0;e`${t[0]}:${t[1]}`).join(";")}}`}r=c.t}for(const t of r){t[1].startsWith("@")&&(n+="}")}return n},s=(t,n,r)=>{var e;const c={...r};if(void 0!==t.variables){const o=t.variables;Object.keys(o).map(t=>{var n;const e=u(t),s=e[0],i=e[1];0===s||1===s&&void 0===c[i]?c[i]=o[t]:2===s&&(c[i]={...null!==(n=r[i])&&void 0!==n?n:{},...o[t]})})}const s=void 0===t.children?[]:i(t.children,n,c);return o((null!==(e=t.variations)&&void 0!==e?e:[]).map(t=>[["",""]].concat(t))).flatMap(t=>s.map(o=>({t:[...t,...o.t],o:o.o})))},i=(t,o,n)=>t.flatMap(t=>"string"==typeof t?[{t:[],o:t}]:Array.isArray(t)?Array.isArray(t[1])?l(t,o,n):a(t,o):s(t,o,n)),l=(t,n,r)=>{const c=t[0],s=t[1],i=[];return s.map(t=>{var o,n;const r=null!==(o=t[0].match(e))&&void 0!==o?o:[],c=null!==(n=(""+t[1]).match(e))&&void 0!==n?n:[];r.map(t=>i.push([t,0])),c.map(t=>i.push([t,1]))}),o(i.map(t=>{const o=t[0],n=t[1],e=o.slice(1,-1);return Object.keys(r[e]).map(t=>[o,t,r[e][t],n])})).map(t=>{let o=0,r=t[o];return{t:[],o:[t.reduce((t,o)=>0===o[3]?n.addPropertyToSelector(t,o[1]):n.addValueToSelector(t,o[1]),c),s.map(n=>{const e=n=>{for(;o{const n=t[1],r=o.abbreviateProperty(t[0]),e=r[0],c=r[1];return Object.keys(n).map(t=>({t:[],o:[o.addValueToSelector(o.addPropertyToSelector("",e),t),[[c,n[t]]]]}))},u=t=>{const o="?+".indexOf(t[0])+1;return[o,o>0?t.slice(1):t]};return t.DEFAULT_OPTIONS=r,t.ITERATOR_REGEX=n,t.embed=(t,o)=>{let n=null;void 0!==o&&(n=document.querySelector("style#"+o)),null===n&&(n=document.createElement("style"),n.type="text/css",void 0!==o&&n.setAttribute("id",o),document.head.appendChild(n)),n.innerHTML=t},t.generate=(t,o={})=>{const n={...r,...o};return c(s(t,n,{}),n)},t}({}); //# sourceMappingURL=ainsley.client.production.js.map diff --git a/dist/ainsley.client.production.js.map b/dist/ainsley.client.production.js.map index 0829e01..36d5afb 100644 --- a/dist/ainsley.client.production.js.map +++ b/dist/ainsley.client.production.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.client.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","rulesListWithoutVariations","isArray","options","ainsleyRule","map","styleEl","id"],"mappings":";;;2CAKWA,sCAMTC,EAAOC,EAAIC,+ECmCZC,4KAYoBC,oCAMnBC,EAAaC,gFAoCYC,+BAMb,4JAkBkC,uBAE5CC,sDAKuBC,8DAIMC,2EAQzBC,+SAiDiB,UAKNC,OACiB,sBAAA,IAAAC,EAAAA,kCASlCC,WAEI,GACAC,yBAKYhB,yDAER,4BAINiB,oGA+BOC,mDAesCC,0BAkB9BC,EAAoB,wBAG1BC,ozBC/RQ,CAACZ,+BAEAa,8GAKlBC"} \ No newline at end of file +{"version":3,"file":"ainsley.client.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["combinations","list","mods","index","propertyName","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","rulesListWithoutVariations","isArray","options","ainsleyRule","map","styleEl","id"],"mappings":";;;2CAKWA,sCAMTC,EAAOC,EAAIC,sPCoDXC,oEAoCyBC,+BAMb,4JAkBkC,uBAE5CC,sDAKuBC,8DAIMC,2EAQzBC,+SAiDiB,UAKNC,OACiB,sBAAA,IAAAC,EAAAA,kCASlCC,WAEI,GACAC,yBAKYb,yDAER,4BAINc,oGA+BOC,mDAesCC,0BAkB9BC,EAAoB,wBAG1BC,ozBC9RQ,CAACZ,+BAEAa,8GAKlBC"} \ No newline at end of file diff --git a/dist/ainsley.development.js b/dist/ainsley.development.js index a0e3926..801d830 100644 --- a/dist/ainsley.development.js +++ b/dist/ainsley.development.js @@ -25,10 +25,10 @@ ainsley | MIT License | @tbjgolden | tom.bio const ITERATOR_REGEX = '\\{[a-zA-Z0-9_-]+\\}'; const DEFAULT_OPTIONS = { - addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '-' + selector, - addPropertyToSelector: (selector, propertyAbbreviation) => selector + propertyAbbreviation.toLowerCase(), - addValueToSelector: (selector, valueAbbreviation) => selector + valueAbbreviation.toUpperCase(), - abbreviateProperty: propertyName => [propertyName.split('-').map(word => word.charAt(0)).join('').toLowerCase(), propertyName.toLowerCase()] + addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '_' + selector, + addPropertyToSelector: (selector, propertyAbbreviation) => selector + '-' + propertyAbbreviation, + addValueToSelector: (selector, valueAbbreviation) => selector + '-' + valueAbbreviation, + abbreviateProperty: propertyName => [propertyName.split('-').map(word => word[0]).join(''), propertyName] }; const ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g'); const generate = (ainsley, options = {}) => { diff --git a/dist/ainsley.development.js.map b/dist/ainsley.development.js.map index e230253..a66a9c4 100644 --- a/dist/ainsley.development.js.map +++ b/dist/ainsley.development.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // blobs\n if (realm.Blob && object instanceof realm.Blob) {\n clone = new Blob([object], { type: object.type });\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","copy","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","_a"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.development.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // blobs\n if (realm.Blob && object instanceof realm.Blob) {\n clone = new Blob([object], { type: object.type });\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","copy","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","_a"],"mappings":"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"} \ No newline at end of file diff --git a/dist/ainsley.esm.js b/dist/ainsley.esm.js index 3f04348..d198750 100644 --- a/dist/ainsley.esm.js +++ b/dist/ainsley.esm.js @@ -18,10 +18,10 @@ const combinations = mods => { const ITERATOR_REGEX = '\\{[a-zA-Z0-9_-]+\\}'; const DEFAULT_OPTIONS = { - addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '-' + selector, - addPropertyToSelector: (selector, propertyAbbreviation) => selector + propertyAbbreviation.toLowerCase(), - addValueToSelector: (selector, valueAbbreviation) => selector + valueAbbreviation.toUpperCase(), - abbreviateProperty: propertyName => [propertyName.split('-').map(word => word.charAt(0)).join('').toLowerCase(), propertyName.toLowerCase()] + addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '_' + selector, + addPropertyToSelector: (selector, propertyAbbreviation) => selector + '-' + propertyAbbreviation, + addValueToSelector: (selector, valueAbbreviation) => selector + '-' + valueAbbreviation, + abbreviateProperty: propertyName => [propertyName.split('-').map(word => word[0]).join(''), propertyName] }; const ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g'); const generate = (ainsley, options = {}) => { diff --git a/dist/ainsley.esm.js.map b/dist/ainsley.esm.js.map index d707180..440bb76 100644 --- a/dist/ainsley.esm.js.map +++ b/dist/ainsley.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.esm.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.esm.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":"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"} \ No newline at end of file diff --git a/dist/ainsley.js b/dist/ainsley.js index 5c87022..a7f4594 100644 --- a/dist/ainsley.js +++ b/dist/ainsley.js @@ -48,10 +48,10 @@ const combinations = mods => { const ITERATOR_REGEX = '\\{[a-zA-Z0-9_-]+\\}'; const DEFAULT_OPTIONS = { - addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '-' + selector, - addPropertyToSelector: (selector, propertyAbbreviation) => selector + propertyAbbreviation.toLowerCase(), - addValueToSelector: (selector, valueAbbreviation) => selector + valueAbbreviation.toUpperCase(), - abbreviateProperty: propertyName => [propertyName.split('-').map(word => word.charAt(0)).join('').toLowerCase(), propertyName.toLowerCase()] + addVariationToSelector: (selector, variationAbbreviation) => variationAbbreviation + '_' + selector, + addPropertyToSelector: (selector, propertyAbbreviation) => selector + '-' + propertyAbbreviation, + addValueToSelector: (selector, valueAbbreviation) => selector + '-' + valueAbbreviation, + abbreviateProperty: propertyName => [propertyName.split('-').map(word => word[0]).join(''), propertyName] }; const ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g'); const generate = (ainsley, options = {}) => { diff --git a/dist/ainsley.js.map b/dist/ainsley.js.map index d12e7fb..ef3280c 100644 --- a/dist/ainsley.js.map +++ b/dist/ainsley.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../src/embed/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n"],"names":["merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","SEGMENT_NZ_NC$","QUERY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","require$$0","require$$1","SchemaObject","URI","traverse","ucs2length","ValidationError","errorClasses","validateGenerator","validate","stableStringify","URL","JSON_POINTER","RELATIVE_JSON_POINTER","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","toHash","ruleModules","MissingRefError","metaSchema","IDENTIFIER","customRuleCode","definitionSchema","compile","customKeyword","$dataMetaSchema","formats","Cache","compileSchema","ajv","Ajv","copy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,QAAQ,GAAI,GAAD,eAGX,eAAe;MAEjB;;;;;AAMT,IAAA,OAAO,IAAI,CAAA,OAAA,CAAJ,QAAA,kDAAA,CAAP;;;;;;oBC+BE;;;;;uEAmBK,uBAEP;;;4CAaI;;;;;;;;;;;;;;;;;;kCAuBoB,CAAC;;sBAMb;;6FAG8B;;;;;;;;;;;;;AAc1C,8BAAA,oBAAA;kDAC8C,CAAA,CAAA;8BACpB,kBACxB,iCAAA;;;;wBAGc;;iCAES;;;;;gDAIK,CAAC;gCACX,SAAS;;;;AAG1B;;4DAIG;;;;;;;;;AAkBP,6BAAA,kBAAA;8BAGC;AAKE,QAAI,+BAAA,IAAA,CAAJ;;;;;;;;;;;;;aAUS;mBACE;;;;;;;;;;yBAYU;qBAKN,UACX,wCAA4B,QAAA,EAAA,KAAA,KAAA,IAAA,OAA5B;AACA;;;;;;;qCAQN,OAAO,SAAP,cAAA,GAEI,EAFJ,GAGI;;oBAKY,2BACR,4EACA,2BAFQ,QAAA,eAMd,8BAAA;;;IAAA,CANc;;;;;;;;;;kBAqCR,CAAC;;;WAGJ;;;;uBAYkC,MAAA,EAAQ,OAAR,WAAA;;;;;mBAkBtB,YAAoB;oBACrB;;eAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Rb;MACa,KAAK,GAAG,CAAC,GAAD,IAAA;;QAEf,gBAAgB,+CAAA;;wBAEA;;;QAGlB;YAAsB;;;;AAKzB;;;;;;;;;;;;;;;;;;;;;ACbD,SAAAA,KAAA,GAAA;sCAAyBC,IAAzB;YAAA;;;QACKA,KAAKC,MAAL,GAAc,CAAlB,EAAqB;aACf,CAAL,IAAUD,KAAK,CAAL,EAAQE,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;YACMC,KAAKH,KAAKC,MAAL,GAAc,CAAzB;aACK,IAAIG,IAAI,CAAb,EAAgBA,IAAID,EAApB,EAAwB,EAAEC,CAA1B,EAA6B;iBACvBA,CAAL,IAAUJ,KAAKI,CAAL,EAAQF,KAAR,CAAc,CAAd,EAAiB,CAAC,CAAlB,CAAV;;aAEIC,EAAL,IAAWH,KAAKG,EAAL,EAASD,KAAT,CAAe,CAAf,CAAX;eACOF,KAAKK,IAAL,CAAU,EAAV,CAAP;KAPD,MAQO;eACCL,KAAK,CAAL,CAAP;;;AAIF,SAAAM,MAAA,CAAuBC,GAAvB,EAAA;WACQ,QAAQA,GAAR,GAAc,GAArB;;AAGD,SAAAC,MAAA,CAAuBC,CAAvB,EAAA;WACQA,MAAMC,SAAN,GAAkB,WAAlB,GAAiCD,MAAM,IAAN,GAAa,MAAb,GAAsBE,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BL,CAA/B,EAAkCM,KAAlC,CAAwC,GAAxC,EAA6CC,GAA7C,GAAmDD,KAAnD,CAAyD,GAAzD,EAA8DE,KAA9D,GAAsEC,WAAtE,EAA9D;;AAGD,SAAAC,WAAA,CAA4BZ,GAA5B,EAAA;WACQA,IAAIY,WAAJ,EAAP;;AAGD,SAAAC,OAAA,CAAwBC,GAAxB,EAAA;WACQA,QAAQX,SAAR,IAAqBW,QAAQ,IAA7B,GAAqCA,eAAeC,KAAf,GAAuBD,GAAvB,GAA8B,OAAOA,IAAIpB,MAAX,KAAsB,QAAtB,IAAkCoB,IAAIN,KAAtC,IAA+CM,IAAIE,WAAnD,IAAkEF,IAAIP,IAAtE,GAA6E,CAACO,GAAD,CAA7E,GAAqFC,MAAMV,SAAN,CAAgBV,KAAhB,CAAsBY,IAAtB,CAA2BO,GAA3B,CAAxJ,GAA4L,EAAnM;;AAID,SAAAG,MAAA,CAAuBC,MAAvB,EAAuCC,MAAvC,EAAA;QACOL,MAAMI,MAAZ;QACIC,MAAJ,EAAY;aACN,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;gBACrBC,GAAJ,IAAWD,OAAOC,GAAP,CAAX;;;WAGKN,GAAP;;;ACnCD,SAAAO,SAAA,CAA0BC,KAA1B,EAAA;QAEEC,UAAU,UADX;QAGCC,UAAU,OAHX;QAKCC,WAAWjC,MAAMgC,OAAN,EAAe,UAAf,CALZ;QAQCE,eAAe3B,OAAOA,OAAO,YAAY0B,QAAZ,GAAuB,GAAvB,GAA6BA,QAA7B,GAAwCA,QAAxC,GAAmD,GAAnD,GAAyDA,QAAzD,GAAoEA,QAA3E,IAAuF,GAAvF,GAA6F1B,OAAO,gBAAgB0B,QAAhB,GAA2B,GAA3B,GAAiCA,QAAjC,GAA4CA,QAAnD,CAA7F,GAA4J,GAA5J,GAAkK1B,OAAO,MAAM0B,QAAN,GAAiBA,QAAxB,CAAzK,CARhB;;mBASgB,yBAThB;QAUCE,eAAe,qCAVhB;QAWCC,aAAapC,MAAMqC,YAAN,EAAoBF,YAApB,CAXd;QAYCG,YAAYR,QAAQ,6EAAR,GAAwF,IAZrG;;iBAacA,QAAQ,mBAAR,GAA8B,IAb5C;;mBAcgB9B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,gBAAxB,EAA0CM,SAA1C,CAdhB;QAeCC,UAAUhC,OAAOwB,UAAU/B,MAAM+B,OAAN,EAAeC,OAAf,EAAwB,aAAxB,CAAV,GAAmD,GAA1D,CAfX;QAgBCQ,YAAYjC,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CAhBb;QAkBCO,qBAAqBnC,OAAOA,OAAO,SAAP,IAAoB,GAApB,GAA0BA,OAAO,WAAWyB,OAAlB,CAA1B,GAAuD,GAAvD,GAA6DzB,OAAO,MAAMyB,OAAN,GAAgBA,OAAvB,CAA7D,GAA+F,GAA/F,GAAqGzB,OAAO,YAAYyB,OAAnB,CAArG,GAAmI,OAAnI,GAA6IA,OAApJ,CAlBtB;;mBAmBgBzB,OAAOmC,qBAAqB,KAArB,GAA6BA,kBAA7B,GAAkD,KAAlD,GAA0DA,kBAA1D,GAA+E,KAA/E,GAAuFA,kBAA9F,CAnBhB;QAoBCC,OAAOpC,OAAO0B,WAAW,OAAlB,CApBR;QAqBCW,QAAQrC,OAAOA,OAAOoC,OAAO,KAAP,GAAeA,IAAtB,IAA8B,GAA9B,GAAoCE,YAA3C,CArBT;QAsBCC,gBAAgBvC,OAAmEA,OAAOoC,OAAO,KAAd,IAAuB,KAAvB,GAA+BC,KAAlG,CAtBjB;;oBAuBiBrC,OAAwD,WAAWA,OAAOoC,OAAO,KAAd,CAAX,GAAkC,KAAlC,GAA0CC,KAAlG,CAvBjB;;oBAwBiBrC,OAAOA,OAAwCoC,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAxBjB;;oBAyBiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAzBjB;;oBA0BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA4DpC,OAAOoC,OAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CA1BjB;;oBA2BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAAmEA,IAAnE,GAA0E,KAA1E,GAA2FC,KAAlG,CA3BjB;;oBA4BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FC,KAAlG,CA5BjB;;oBA6BiBrC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAhD,GAA2FA,IAAlG,CA7BjB;;oBA8BiBpC,OAAOA,OAAOA,OAAOoC,OAAO,KAAd,IAAuB,OAAvB,GAAiCA,IAAxC,IAAgD,SAAvD,CA9BjB;;mBA+BgBpC,OAAO,CAACuC,aAAD,EAAgBC,aAAhB,EAA+BC,aAA/B,EAA8CC,aAA9C,EAA6DC,aAA7D,EAA4EC,aAA5E,EAA2FC,aAA3F,EAA0GC,aAA1G,EAAyHC,aAAzH,EAAwIhD,IAAxI,CAA6I,GAA7I,CAAP,CA/BhB;QAgCCiD,UAAUhD,OAAOA,OAAOkC,eAAe,GAAf,GAAqBP,YAA5B,IAA4C,GAAnD,CAhCX;;iBAmCc3B,OAAO,SAAS0B,QAAT,GAAoB,MAApB,GAA6BjC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA7B,GAA0E,GAAjF,CAnCd;;gBAqCa5B,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,CAA5B,IAAiE,GAAxE,CArCb;QAyCCqB,SAASjD,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,UAAlC,CAA5B,CAzCV;QA4CCsB,iBAAiBlD,OAAOA,OAAO2B,eAAe,GAAf,GAAqBlC,MAAMyC,YAAN,EAAoBN,YAApB,EAAkC,OAAlC,CAA5B,IAA0E,GAAjF,CA5ClB;QAmDCuB,SAASnD,OAAOA,OAAOiD,SAAS,GAAT,GAAexD,MAAM,UAAN,EAAkB2D,UAAlB,CAAtB,IAAuD,GAA9D,CAnDV;WAmEO;oBACO,IAAIC,MAAJ,CAAW5D,MAAM,KAAN,EAAa+B,OAAb,EAAsBC,OAAtB,EAA+B,aAA/B,CAAX,EAA0D,GAA1D,CADP;sBAES,IAAI4B,MAAJ,CAAW5D,MAAM,WAAN,EAAmByC,YAAnB,EAAiCN,YAAjC,CAAX,EAA2D,GAA3D,CAFT;kBAGK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAHL;kBAIK,IAAIyB,MAAJ,CAAW5D,MAAM,iBAAN,EAAyByC,YAAzB,EAAuCN,YAAvC,CAAX,EAAiE,GAAjE,CAJL;2BAKc,IAAIyB,MAAJ,CAAW5D,MAAM,cAAN,EAAsByC,YAAtB,EAAoCN,YAApC,CAAX,EAA8D,GAA9D,CALd;mBAMM,IAAIyB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,EAA8DwB,UAA9D,CAAX,EAAsF,GAAtF,CANN;sBAOS,IAAIC,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BN,YAA9B,EAA4C,gBAA5C,CAAX,EAA0E,GAA1E,CAPT;gBAQG,IAAIyB,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2BN,YAA3B,CAAX,EAAqD,GAArD,CARH;oBASO,IAAIyB,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CATP;qBAUQ,IAAImB,MAAJ,CAAW5D,MAAM,QAAN,EAAgByC,YAAhB,EAA8BL,UAA9B,CAAX,EAAsD,GAAtD,CAVR;qBAWQ,IAAIwB,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAXR;qBAYQ,IAAI0B,MAAJ,CAAW,OAAOf,YAAP,GAAsB,IAAjC,CAZR;qBAaQ,IAAIe,MAAJ,CAAW,WAAWC,YAAX,GAA0B,GAA1B,GAAgCtD,OAAOA,OAAO,iBAAiB0B,QAAjB,GAA4B,MAAnC,IAA6C,GAA7C,GAAmDsB,OAAnD,GAA6D,GAApE,CAAhC,GAA2G,QAAtH,CAbR;KAAP;;AAiBD,mBAAe1B,UAAU,KAAV,CAAf;;ACrFA,mBAAeA,UAAU,IAAV,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;;AACA,IAAMiC,SAAS,UAAf;;;AAGA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,CAAb;AACA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,EAAb;AACA,IAAMC,OAAO,GAAb;AACA,IAAMC,cAAc,EAApB;AACA,IAAMC,WAAW,GAAjB;AACA,IAAMC,YAAY,GAAlB;;;AAGA,IAAMC,gBAAgB,OAAtB;AACA,IAAMC,gBAAgB,YAAtB;AACA,IAAMC,kBAAkB,2BAAxB;;;AAGA,IAAMC,SAAS;aACF,iDADE;cAED,gDAFC;kBAGG;CAHlB;;;AAOA,IAAMC,gBAAgBZ,OAAOC,IAA7B;AACA,IAAMY,QAAQC,KAAKD,KAAnB;AACA,IAAME,qBAAqBC,OAAOC,YAAlC;;;;;;;;;;AAUA,SAASC,OAAT,CAAeC,IAAf,EAAqB;OACd,IAAIC,UAAJ,CAAeT,OAAOQ,IAAP,CAAf,CAAN;;;;;;;;;;;AAWD,SAASE,GAAT,CAAaC,KAAb,EAAoBC,EAApB,EAAwB;KACjBC,SAAS,EAAf;KACIrF,SAASmF,MAAMnF,MAAnB;QACOA,QAAP,EAAiB;SACTA,MAAP,IAAiBoF,GAAGD,MAAMnF,MAAN,CAAH,CAAjB;;QAEMqF,MAAP;;;;;;;;;;;;;AAaD,SAASC,SAAT,CAAmBC,MAAnB,EAA2BH,EAA3B,EAA+B;KACxBI,QAAQD,OAAOzE,KAAP,CAAa,GAAb,CAAd;KACIuE,SAAS,EAAb;KACIG,MAAMxF,MAAN,GAAe,CAAnB,EAAsB;;;WAGZwF,MAAM,CAAN,IAAW,GAApB;WACSA,MAAM,CAAN,CAAT;;;UAGQD,OAAOE,OAAP,CAAelB,eAAf,EAAgC,MAAhC,CAAT;KACMmB,SAASH,OAAOzE,KAAP,CAAa,GAAb,CAAf;KACM6E,UAAUT,IAAIQ,MAAJ,EAAYN,EAAZ,EAAgBhF,IAAhB,CAAqB,GAArB,CAAhB;QACOiF,SAASM,OAAhB;;;;;;;;;;;;;;;;AAgBD,SAASC,UAAT,CAAoBL,MAApB,EAA4B;KACrBM,SAAS,EAAf;KACIC,UAAU,CAAd;KACM9F,SAASuF,OAAOvF,MAAtB;QACO8F,UAAU9F,MAAjB,EAAyB;MAClB+F,QAAQR,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;MACIC,SAAS,MAAT,IAAmBA,SAAS,MAA5B,IAAsCD,UAAU9F,MAApD,EAA4D;;OAErDiG,QAAQV,OAAOS,UAAP,CAAkBF,SAAlB,CAAd;OACI,CAACG,QAAQ,MAAT,KAAoB,MAAxB,EAAgC;;WACxBC,IAAP,CAAY,CAAC,CAACH,QAAQ,KAAT,KAAmB,EAApB,KAA2BE,QAAQ,KAAnC,IAA4C,OAAxD;IADD,MAEO;;;WAGCC,IAAP,CAAYH,KAAZ;;;GARF,MAWO;UACCG,IAAP,CAAYH,KAAZ;;;QAGKF,MAAP;;;;;;;;;;;AAWD,IAAMM,aAAa,SAAbA,UAAa;QAAStB,OAAOuB,aAAP,iCAAwBjB,KAAxB,EAAT;CAAnB;;;;;;;;;;;AAWA,IAAMkB,eAAe,SAAfA,YAAe,CAASC,SAAT,EAAoB;KACpCA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;KAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;KAEGA,YAAY,IAAZ,GAAmB,IAAvB,EAA6B;SACrBA,YAAY,IAAnB;;QAEMzC,IAAP;CAVD;;;;;;;;;;;;;AAwBA,IAAM0C,eAAe,SAAfA,YAAe,CAASC,KAAT,EAAgBC,IAAhB,EAAsB;;;QAGnCD,QAAQ,EAAR,GAAa,MAAMA,QAAQ,EAAd,CAAb,IAAkC,CAACC,QAAQ,CAAT,KAAe,CAAjD,CAAP;CAHD;;;;;;;AAWA,IAAMC,QAAQ,SAARA,KAAQ,CAASC,KAAT,EAAgBC,SAAhB,EAA2BC,SAA3B,EAAsC;KAC/CC,IAAI,CAAR;SACQD,YAAYnC,MAAMiC,QAAQ1C,IAAd,CAAZ,GAAkC0C,SAAS,CAAnD;UACSjC,MAAMiC,QAAQC,SAAd,CAAT;+BAC8BD,QAAQlC,gBAAgBV,IAAhB,IAAwB,CAA9D,EAAiE+C,KAAKjD,IAAtE,EAA4E;UACnEa,MAAMiC,QAAQlC,aAAd,CAAR;;QAEMC,MAAMoC,IAAI,CAACrC,gBAAgB,CAAjB,IAAsBkC,KAAtB,IAA+BA,QAAQ3C,IAAvC,CAAV,CAAP;CAPD;;;;;;;;;AAiBA,IAAM+C,SAAS,SAATA,MAAS,CAASC,KAAT,EAAgB;;KAExBnB,SAAS,EAAf;KACMoB,cAAcD,MAAMhH,MAA1B;KACIkH,IAAI,CAAR;KACIC,IAAIhD,QAAR;KACIiD,OAAOlD,WAAX;;;;;;KAMImD,QAAQL,MAAMM,WAAN,CAAkBlD,SAAlB,CAAZ;KACIiD,QAAQ,CAAZ,EAAe;UACN,CAAR;;;MAGI,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,KAApB,EAA2B,EAAEE,CAA7B,EAAgC;;MAE3BP,MAAMhB,UAAN,CAAiBuB,CAAjB,KAAuB,IAA3B,EAAiC;WAC1B,WAAN;;SAEMrB,IAAP,CAAYc,MAAMhB,UAAN,CAAiBuB,CAAjB,CAAZ;;;;;;MAMI,IAAIC,QAAQH,QAAQ,CAAR,GAAYA,QAAQ,CAApB,GAAwB,CAAzC,EAA4CG,QAAQP,WAApD,4BAA4F;;;;;;;MAOvFQ,OAAOP,CAAX;OACK,IAAIQ,IAAI,CAAR,EAAWZ,IAAIjD,IAApB,qBAA8CiD,KAAKjD,IAAnD,EAAyD;;OAEpD2D,SAASP,WAAb,EAA0B;YACnB,eAAN;;;OAGKT,QAAQH,aAAaW,MAAMhB,UAAN,CAAiBwB,OAAjB,CAAb,CAAd;;OAEIhB,SAAS3C,IAAT,IAAiB2C,QAAQ9B,MAAM,CAACd,SAASsD,CAAV,IAAeQ,CAArB,CAA7B,EAAsD;YAC/C,UAAN;;;QAGIlB,QAAQkB,CAAb;OACMC,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;;OAEIZ,QAAQmB,CAAZ,EAAe;;;;OAITC,aAAa/D,OAAO8D,CAA1B;OACID,IAAIhD,MAAMd,SAASgE,UAAf,CAAR,EAAoC;YAC7B,UAAN;;;QAGIA,UAAL;;;MAIKC,MAAMhC,OAAO7F,MAAP,GAAgB,CAA5B;SACO0G,MAAMQ,IAAIO,IAAV,EAAgBI,GAAhB,EAAqBJ,QAAQ,CAA7B,CAAP;;;;MAII/C,MAAMwC,IAAIW,GAAV,IAAiBjE,SAASuD,CAA9B,EAAiC;WAC1B,UAAN;;;OAGIzC,MAAMwC,IAAIW,GAAV,CAAL;OACKA,GAAL;;;SAGOC,MAAP,CAAcZ,GAAd,EAAmB,CAAnB,EAAsBC,CAAtB;;;QAIMtC,OAAOuB,aAAP,eAAwBP,MAAxB,CAAP;CAjFD;;;;;;;;;AA2FA,IAAMkC,SAAS,SAATA,MAAS,CAASf,KAAT,EAAgB;KACxBnB,SAAS,EAAf;;;SAGQD,WAAWoB,KAAX,CAAR;;;KAGIC,cAAcD,MAAMhH,MAAxB;;;KAGImH,IAAIhD,QAAR;KACIwC,QAAQ,CAAZ;KACIS,OAAOlD,WAAX;;;;;;;;uBAG2B8C,KAA3B,8HAAkC;OAAvBgB,cAAuB;;OAC7BA,iBAAe,IAAnB,EAAyB;WACjB9B,IAAP,CAAYtB,mBAAmBoD,cAAnB,CAAZ;;;;;;;;;;;;;;;;;;KAIEC,cAAcpC,OAAO7F,MAAzB;KACIkI,iBAAiBD,WAArB;;;;;;KAMIA,WAAJ,EAAiB;SACT/B,IAAP,CAAY9B,SAAZ;;;;QAIM8D,iBAAiBjB,WAAxB,EAAqC;;;;MAIhCkB,IAAIvE,MAAR;;;;;;yBAC2BoD,KAA3B,mIAAkC;QAAvBgB,YAAuB;;QAC7BA,gBAAgBb,CAAhB,IAAqBa,eAAeG,CAAxC,EAA2C;SACtCH,YAAJ;;;;;;;;;;;;;;;;;;;;;MAMII,wBAAwBF,iBAAiB,CAA/C;MACIC,IAAIhB,CAAJ,GAAQzC,MAAM,CAACd,SAAS+C,KAAV,IAAmByB,qBAAzB,CAAZ,EAA6D;WACtD,UAAN;;;WAGQ,CAACD,IAAIhB,CAAL,IAAUiB,qBAAnB;MACID,CAAJ;;;;;;;yBAE2BnB,KAA3B,mIAAkC;QAAvBgB,aAAuB;;QAC7BA,gBAAeb,CAAf,IAAoB,EAAER,KAAF,GAAU/C,MAAlC,EAA0C;aACnC,UAAN;;QAEGoE,iBAAgBb,CAApB,EAAuB;;SAElBkB,IAAI1B,KAAR;UACK,IAAIG,IAAIjD,IAAb,qBAAuCiD,KAAKjD,IAA5C,EAAkD;UAC3C8D,IAAIb,KAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,KAAKM,OAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,IAAIM,IAA5D;UACIiB,IAAIV,CAAR,EAAW;;;UAGLW,UAAUD,IAAIV,CAApB;UACMC,aAAa/D,OAAO8D,CAA1B;aACOzB,IAAP,CACCtB,mBAAmB2B,aAAaoB,IAAIW,UAAUV,UAA3B,EAAuC,CAAvC,CAAnB,CADD;UAGIlD,MAAM4D,UAAUV,UAAhB,CAAJ;;;YAGM1B,IAAP,CAAYtB,mBAAmB2B,aAAa8B,CAAb,EAAgB,CAAhB,CAAnB,CAAZ;YACO3B,MAAMC,KAAN,EAAayB,qBAAb,EAAoCF,kBAAkBD,WAAtD,CAAP;aACQ,CAAR;OACEC,cAAF;;;;;;;;;;;;;;;;;;IAIAvB,KAAF;IACEQ,CAAF;;QAGMtB,OAAOzF,IAAP,CAAY,EAAZ,CAAP;CArFD;;;;;;;;;;;;;AAmGA,IAAMmI,YAAY,SAAZA,SAAY,CAASvB,KAAT,EAAgB;QAC1B1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;SACjClB,cAAcmE,IAAd,CAAmBjD,MAAnB,IACJwB,OAAOxB,OAAOtF,KAAP,CAAa,CAAb,EAAgBgB,WAAhB,EAAP,CADI,GAEJsE,MAFH;EADM,CAAP;CADD;;;;;;;;;;;;;AAmBA,IAAMkD,UAAU,SAAVA,OAAU,CAASzB,KAAT,EAAgB;QACxB1B,UAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;SACjCjB,cAAckE,IAAd,CAAmBjD,MAAnB,IACJ,SAASwC,OAAOxC,MAAP,CADL,GAEJA,MAFH;EADM,CAAP;CADD;;;;;AAWA,IAAMmD,WAAW;;;;;;YAML,OANK;;;;;;;;SAcR;YACG9C,UADH;YAEGO;EAhBK;WAkBNY,MAlBM;WAmBNgB,MAnBM;YAoBLU,OApBK;cAqBHF;CArBd,CAwBA;;ACvbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,IAAaI,UAA6C,EAAnD;AAEP,SAAAC,UAAA,CAA2BC,GAA3B,EAAA;QACOC,IAAID,IAAI7C,UAAJ,CAAe,CAAf,CAAV;QACI+C,UAAJ;QAEID,IAAI,EAAR,EAAYC,IAAI,OAAOD,EAAElI,QAAF,CAAW,EAAX,EAAeM,WAAf,EAAX,CAAZ,KACK,IAAI4H,IAAI,GAAR,EAAaC,IAAI,MAAMD,EAAElI,QAAF,CAAW,EAAX,EAAeM,WAAf,EAAV,CAAb,KACA,IAAI4H,IAAI,IAAR,EAAcC,IAAI,MAAM,CAAED,KAAK,CAAN,GAAW,GAAZ,EAAiBlI,QAAjB,CAA0B,EAA1B,EAA8BM,WAA9B,EAAN,GAAoD,GAApD,GAA0D,CAAE4H,IAAI,EAAL,GAAW,GAAZ,EAAiBlI,QAAjB,CAA0B,EAA1B,EAA8BM,WAA9B,EAA9D,CAAd,KACA6H,IAAI,MAAM,CAAED,KAAK,EAAN,GAAY,GAAb,EAAkBlI,QAAlB,CAA2B,EAA3B,EAA+BM,WAA/B,EAAN,GAAqD,GAArD,GAA2D,CAAG4H,KAAK,CAAN,GAAW,EAAZ,GAAkB,GAAnB,EAAwBlI,QAAxB,CAAiC,EAAjC,EAAqCM,WAArC,EAA3D,GAAgH,GAAhH,GAAsH,CAAE4H,IAAI,EAAL,GAAW,GAAZ,EAAiBlI,QAAjB,CAA0B,EAA1B,EAA8BM,WAA9B,EAA1H;WAEE6H,CAAP;;AAGD,SAAAC,WAAA,CAA4B1I,GAA5B,EAAA;QACK2I,SAAS,EAAb;QACI/B,IAAI,CAAR;QACMgC,KAAK5I,IAAIN,MAAf;WAEOkH,IAAIgC,EAAX,EAAe;YACRJ,IAAIK,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAV;YAEI4B,IAAI,GAAR,EAAa;sBACFjE,OAAOC,YAAP,CAAoBgE,CAApB,CAAV;iBACK,CAAL;SAFD,MAIK,IAAIA,KAAK,GAAL,IAAYA,IAAI,GAApB,EAAyB;gBACxBI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;oBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;0BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,CAAb,GAAmBO,KAAK,EAA5C,CAAV;aAFD,MAGO;0BACI/I,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;iBAEI,CAAL;SAPI,MASA,IAAI4B,KAAK,GAAT,EAAc;gBACbI,KAAKhC,CAAN,IAAY,CAAhB,EAAmB;oBACZmC,KAAKF,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;oBACMoC,KAAKH,SAAS7I,IAAI8I,MAAJ,CAAWlC,IAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;0BACUrC,OAAOC,YAAP,CAAqB,CAACgE,IAAI,EAAL,KAAY,EAAb,GAAoB,CAACO,KAAK,EAAN,KAAa,CAAjC,GAAuCC,KAAK,EAAhE,CAAV;aAHD,MAIO;0BACIhJ,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;iBAEI,CAAL;SARI,MAUA;sBACM5G,IAAI8I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;iBACK,CAAL;;;WAIK+B,MAAP;;AAGD,SAAAM,2BAAA,CAAqCC,UAArC,EAA+DC,QAA/D,EAAA;aACAC,gBAAC,CAA0BpJ,GAA1B,EAAD;YACQqJ,SAASX,YAAY1I,GAAZ,CAAf;eACQ,CAACqJ,OAAOC,KAAP,CAAaH,SAASI,UAAtB,CAAD,GAAqCvJ,GAArC,GAA2CqJ,MAAnD;;QAGGH,WAAWM,MAAf,EAAuBN,WAAWM,MAAX,GAAoBjF,OAAO2E,WAAWM,MAAlB,EAA0BrE,OAA1B,CAAkCgE,SAASM,WAA3C,EAAwDL,gBAAxD,EAA0EzI,WAA1E,GAAwFwE,OAAxF,CAAgGgE,SAASO,UAAzG,EAAqH,EAArH,CAApB;QACnBR,WAAWS,QAAX,KAAwBxJ,SAA5B,EAAuC+I,WAAWS,QAAX,GAAsBpF,OAAO2E,WAAWS,QAAlB,EAA4BxE,OAA5B,CAAoCgE,SAASM,WAA7C,EAA0DL,gBAA1D,EAA4EjE,OAA5E,CAAoFgE,SAASS,YAA7F,EAA2GtB,UAA3G,EAAuHnD,OAAvH,CAA+HgE,SAASM,WAAxI,EAAqJ7I,WAArJ,CAAtB;QACnCsI,WAAWW,IAAX,KAAoB1J,SAAxB,EAAmC+I,WAAWW,IAAX,GAAkBtF,OAAO2E,WAAWW,IAAlB,EAAwB1E,OAAxB,CAAgCgE,SAASM,WAAzC,EAAsDL,gBAAtD,EAAwEzI,WAAxE,GAAsFwE,OAAtF,CAA8FgE,SAASW,QAAvG,EAAiHxB,UAAjH,EAA6HnD,OAA7H,CAAqIgE,SAASM,WAA9I,EAA2J7I,WAA3J,CAAlB;QAC/BsI,WAAWa,IAAX,KAAoB5J,SAAxB,EAAmC+I,WAAWa,IAAX,GAAkBxF,OAAO2E,WAAWa,IAAlB,EAAwB5E,OAAxB,CAAgCgE,SAASM,WAAzC,EAAsDL,gBAAtD,EAAwEjE,OAAxE,CAAiF+D,WAAWM,MAAX,GAAoBL,SAASa,QAA7B,GAAwCb,SAASc,iBAAlI,EAAsJ3B,UAAtJ,EAAkKnD,OAAlK,CAA0KgE,SAASM,WAAnL,EAAgM7I,WAAhM,CAAlB;QAC/BsI,WAAWgB,KAAX,KAAqB/J,SAAzB,EAAoC+I,WAAWgB,KAAX,GAAmB3F,OAAO2E,WAAWgB,KAAlB,EAAyB/E,OAAzB,CAAiCgE,SAASM,WAA1C,EAAuDL,gBAAvD,EAAyEjE,OAAzE,CAAiFgE,SAASgB,SAA1F,EAAqG7B,UAArG,EAAiHnD,OAAjH,CAAyHgE,SAASM,WAAlI,EAA+I7I,WAA/I,CAAnB;QAChCsI,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC+I,WAAWkB,QAAX,GAAsB7F,OAAO2E,WAAWkB,QAAlB,EAA4BjF,OAA5B,CAAoCgE,SAASM,WAA7C,EAA0DL,gBAA1D,EAA4EjE,OAA5E,CAAoFgE,SAASkB,YAA7F,EAA2G/B,UAA3G,EAAuHnD,OAAvH,CAA+HgE,SAASM,WAAxI,EAAqJ7I,WAArJ,CAAtB;WAEhCsI,UAAP;;AACA;AAED,SAAAoB,kBAAA,CAA4BtK,GAA5B,EAAA;WACQA,IAAImF,OAAJ,CAAY,SAAZ,EAAuB,IAAvB,KAAgC,GAAvC;;AAGD,SAAAoF,cAAA,CAAwBV,IAAxB,EAAqCV,QAArC,EAAA;QACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASsB,WAApB,KAAoC,EAApD;;iCACoBD,OAFrB;QAEUE,OAFV;;QAIKA,OAAJ,EAAa;eACLA,QAAQlK,KAAR,CAAc,GAAd,EAAmBoE,GAAnB,CAAuB0F,kBAAvB,EAA2CxK,IAA3C,CAAgD,GAAhD,CAAP;KADD,MAEO;eACC+J,IAAP;;;AAIF,SAAAc,cAAA,CAAwBd,IAAxB,EAAqCV,QAArC,EAAA;QACOqB,UAAUX,KAAKP,KAAL,CAAWH,SAASyB,WAApB,KAAoC,EAApD;;kCAC0BJ,OAF3B;QAEUE,OAFV;QAEmBG,IAFnB;;QAIKH,OAAJ,EAAa;oCACUA,QAAQ/J,WAAR,GAAsBH,KAAtB,CAA4B,IAA5B,EAAkCsK,OAAlC,EADV;;YACLC,IADK;YACCC,KADD;;YAENC,cAAcD,QAAQA,MAAMxK,KAAN,CAAY,GAAZ,EAAiBoE,GAAjB,CAAqB0F,kBAArB,CAAR,GAAmD,EAAvE;YACMY,aAAaH,KAAKvK,KAAL,CAAW,GAAX,EAAgBoE,GAAhB,CAAoB0F,kBAApB,CAAnB;YACMa,yBAAyBhC,SAASsB,WAAT,CAAqBvC,IAArB,CAA0BgD,WAAWA,WAAWxL,MAAX,GAAoB,CAA/B,CAA1B,CAA/B;YACM0L,aAAaD,yBAAyB,CAAzB,GAA6B,CAAhD;YACME,kBAAkBH,WAAWxL,MAAX,GAAoB0L,UAA5C;YACME,SAASvK,MAAcqK,UAAd,CAAf;aAEK,IAAIvL,IAAI,CAAb,EAAgBA,IAAIuL,UAApB,EAAgC,EAAEvL,CAAlC,EAAqC;mBAC7BA,CAAP,IAAYoL,YAAYpL,CAAZ,KAAkBqL,WAAWG,kBAAkBxL,CAA7B,CAAlB,IAAqD,EAAjE;;YAGGsL,sBAAJ,EAA4B;mBACpBC,aAAa,CAApB,IAAyBb,eAAee,OAAOF,aAAa,CAApB,CAAf,EAAuCjC,QAAvC,CAAzB;;YAGKoC,gBAAgBD,OAAOE,MAAP,CAAmD,UAACC,GAAD,EAAMC,KAAN,EAAaxE,KAAb,EAA3E;gBACO,CAACwE,KAAD,IAAUA,UAAU,GAAxB,EAA6B;oBACtBC,cAAcF,IAAIA,IAAI/L,MAAJ,GAAa,CAAjB,CAApB;oBACIiM,eAAeA,YAAYzE,KAAZ,GAAoByE,YAAYjM,MAAhC,KAA2CwH,KAA9D,EAAqE;gCACxDxH,MAAZ;iBADD,MAEO;wBACFkG,IAAJ,CAAS,EAAEsB,YAAF,EAASxH,QAAS,CAAlB,EAAT;;;mBAGK+L,GAAP;SATqB,EAUnB,EAVmB,CAAtB;YAYMG,oBAAoBL,cAAcM,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ;mBAAUA,EAAErM,MAAF,GAAWoM,EAAEpM,MAAvB;SAAnB,EAAkD,CAAlD,CAA1B;YAEIsM,gBAAJ;YACIJ,qBAAqBA,kBAAkBlM,MAAlB,GAA2B,CAApD,EAAuD;gBAChDuM,WAAWX,OAAO3L,KAAP,CAAa,CAAb,EAAgBiM,kBAAkB1E,KAAlC,CAAjB;gBACMgF,UAAUZ,OAAO3L,KAAP,CAAaiM,kBAAkB1E,KAAlB,GAA0B0E,kBAAkBlM,MAAzD,CAAhB;sBACUuM,SAASnM,IAAT,CAAc,GAAd,IAAqB,IAArB,GAA4BoM,QAAQpM,IAAR,CAAa,GAAb,CAAtC;SAHD,MAIO;sBACIwL,OAAOxL,IAAP,CAAY,GAAZ,CAAV;;YAGG+K,IAAJ,EAAU;uBACE,MAAMA,IAAjB;;eAGMmB,OAAP;KA5CD,MA6CO;eACCnC,IAAP;;;AAIF,IAAMsC,YAAY,iIAAlB;AACA,IAAMC,wBAA4C,EAAD,CAAK9C,KAAL,CAAW,OAAX,EAAqB,CAArB,MAA4BnJ,SAA7E;AAEA,SAAAkM,KAAA,CAAsBC,SAAtB,EAAA;QAAwCC,OAAxC,uEAA6D,EAA7D;;QACOrD,aAA2B,EAAjC;QACMC,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QAEIH,QAAQI,SAAR,KAAsB,QAA1B,EAAoCL,YAAY,CAACC,QAAQ/C,MAAR,GAAiB+C,QAAQ/C,MAAR,GAAiB,GAAlC,GAAwC,EAAzC,IAA+C,IAA/C,GAAsD8C,SAAlE;QAE9B9B,UAAU8B,UAAUhD,KAAV,CAAgB6C,SAAhB,CAAhB;QAEI3B,OAAJ,EAAa;YACR4B,qBAAJ,EAA2B;;uBAEf5C,MAAX,GAAoBgB,QAAQ,CAAR,CAApB;uBACWb,QAAX,GAAsBa,QAAQ,CAAR,CAAtB;uBACWX,IAAX,GAAkBW,QAAQ,CAAR,CAAlB;uBACWoC,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;uBACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;uBACWN,KAAX,GAAmBM,QAAQ,CAAR,CAAnB;uBACWJ,QAAX,GAAsBI,QAAQ,CAAR,CAAtB;;gBAGIqC,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;2BAChBA,IAAX,GAAkBpC,QAAQ,CAAR,CAAlB;;SAZF,MAcO;;;uBAEKhB,MAAX,GAAoBgB,QAAQ,CAAR,KAAcrK,SAAlC;uBACWwJ,QAAX,GAAuB2C,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;uBACW0J,IAAX,GAAmByC,UAAUQ,OAAV,CAAkB,IAAlB,MAA4B,CAAC,CAA7B,GAAiCtC,QAAQ,CAAR,CAAjC,GAA8CrK,SAAjE;uBACWyM,IAAX,GAAkB/D,SAAS2B,QAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;uBACWT,IAAX,GAAkBS,QAAQ,CAAR,KAAc,EAAhC;uBACWN,KAAX,GAAoBoC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAAjE;uBACWiK,QAAX,GAAuBkC,UAAUQ,OAAV,CAAkB,GAAlB,MAA2B,CAAC,CAA5B,GAAgCtC,QAAQ,CAAR,CAAhC,GAA6CrK,SAApE;;gBAGI0M,MAAM3D,WAAW0D,IAAjB,CAAJ,EAA4B;2BAChBA,IAAX,GAAmBN,UAAUhD,KAAV,CAAgB,+BAAhB,IAAmDkB,QAAQ,CAAR,CAAnD,GAAgErK,SAAnF;;;YAIE+I,WAAWW,IAAf,EAAqB;;uBAETA,IAAX,GAAkBc,eAAeJ,eAAerB,WAAWW,IAA1B,EAAgCV,QAAhC,CAAf,EAA0DA,QAA1D,CAAlB;;;YAIGD,WAAWM,MAAX,KAAsBrJ,SAAtB,IAAmC+I,WAAWS,QAAX,KAAwBxJ,SAA3D,IAAwE+I,WAAWW,IAAX,KAAoB1J,SAA5F,IAAyG+I,WAAW0D,IAAX,KAAoBzM,SAA7H,IAA0I,CAAC+I,WAAWa,IAAtJ,IAA8Jb,WAAWgB,KAAX,KAAqB/J,SAAvL,EAAkM;uBACtLwM,SAAX,GAAuB,eAAvB;SADD,MAEO,IAAIzD,WAAWM,MAAX,KAAsBrJ,SAA1B,EAAqC;uBAChCwM,SAAX,GAAuB,UAAvB;SADM,MAEA,IAAIzD,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;uBAClCwM,SAAX,GAAuB,UAAvB;SADM,MAEA;uBACKA,SAAX,GAAuB,KAAvB;;;YAIGJ,QAAQI,SAAR,IAAqBJ,QAAQI,SAAR,KAAsB,QAA3C,IAAuDJ,QAAQI,SAAR,KAAsBzD,WAAWyD,SAA5F,EAAuG;uBAC3FlI,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,kBAAkB8H,QAAQI,SAA1B,GAAsC,aAA7E;;;YAIKI,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;YAGI,CAAC4L,QAAQS,cAAT,KAA4B,CAACD,aAAD,IAAkB,CAACA,cAAcC,cAA7D,CAAJ,EAAkF;;gBAE7E9D,WAAWW,IAAX,KAAoB0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1E,CAAJ,EAA4F;;oBAEvF;+BACQpD,IAAX,GAAkBzB,SAASD,OAAT,CAAiBe,WAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,SAASM,WAAjC,EAA8Cf,WAA9C,EAA2D/H,WAA3D,EAAjB,CAAlB;iBADD,CAEE,OAAO8H,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,oEAAoEgE,CAA3G;;;;wCAI0BS,UAA5B,EAAwCwD,YAAxC;SAXD,MAYO;;wCAEsBxD,UAA5B,EAAwCC,QAAxC;;;YAIG4D,iBAAiBA,cAAcV,KAAnC,EAA0C;0BAC3BA,KAAd,CAAoBnD,UAApB,EAAgCqD,OAAhC;;KA3EF,MA6EO;mBACK9H,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,wBAAvC;;WAGMyE,UAAP;;AACA;AAED,SAAAgE,mBAAA,CAA6BhE,UAA7B,EAAuDqD,OAAvD,EAAA;QACOpD,WAAYoD,QAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QACMS,YAA0B,EAAhC;QAEIjE,WAAWS,QAAX,KAAwBxJ,SAA5B,EAAuC;kBAC5ByF,IAAV,CAAesD,WAAWS,QAA1B;kBACU/D,IAAV,CAAe,GAAf;;QAGGsD,WAAWW,IAAX,KAAoB1J,SAAxB,EAAmC;;kBAExByF,IAAV,CAAe+E,eAAeJ,eAAehG,OAAO2E,WAAWW,IAAlB,CAAf,EAAwCV,QAAxC,CAAf,EAAkEA,QAAlE,EAA4EhE,OAA5E,CAAoFgE,SAASyB,WAA7F,EAA0G,UAACwC,CAAD,EAAIC,EAAJ,EAAQC,EAAR;mBAAe,MAAMD,EAAN,IAAYC,KAAK,QAAQA,EAAb,GAAkB,EAA9B,IAAoC,GAAnD;SAA1G,CAAf;;QAGG,OAAOpE,WAAW0D,IAAlB,KAA2B,QAA3B,IAAuC,OAAO1D,WAAW0D,IAAlB,KAA2B,QAAtE,EAAgF;kBACrEhH,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAerB,OAAO2E,WAAW0D,IAAlB,CAAf;;WAGMO,UAAUzN,MAAV,GAAmByN,UAAUrN,IAAV,CAAe,EAAf,CAAnB,GAAwCK,SAA/C;;AACA;AAED,IAAMoN,OAAO,UAAb;AACA,IAAMC,OAAO,aAAb;AACA,IAAMC,OAAO,eAAb;AACA,IACMC,OAAO,wBAAb;AAEA,SAAAC,iBAAA,CAAkCjH,KAAlC,EAAA;QACOnB,SAAuB,EAA7B;WAEOmB,MAAMhH,MAAb,EAAqB;YAChBgH,MAAM4C,KAAN,CAAYiE,IAAZ,CAAJ,EAAuB;oBACd7G,MAAMvB,OAAN,CAAcoI,IAAd,EAAoB,EAApB,CAAR;SADD,MAEO,IAAI7G,MAAM4C,KAAN,CAAYkE,IAAZ,CAAJ,EAAuB;oBACrB9G,MAAMvB,OAAN,CAAcqI,IAAd,EAAoB,GAApB,CAAR;SADM,MAEA,IAAI9G,MAAM4C,KAAN,CAAYmE,IAAZ,CAAJ,EAAuB;oBACrB/G,MAAMvB,OAAN,CAAcsI,IAAd,EAAoB,GAApB,CAAR;mBACOhN,GAAP;SAFM,MAGA,IAAIiG,UAAU,GAAV,IAAiBA,UAAU,IAA/B,EAAqC;oBACnC,EAAR;SADM,MAEA;gBACAkH,KAAKlH,MAAM4C,KAAN,CAAYoE,IAAZ,CAAX;gBACIE,EAAJ,EAAQ;oBACDC,IAAID,GAAG,CAAH,CAAV;wBACQlH,MAAM/G,KAAN,CAAYkO,EAAEnO,MAAd,CAAR;uBACOkG,IAAP,CAAYiI,CAAZ;aAHD,MAIO;sBACA,IAAIC,KAAJ,CAAU,kCAAV,CAAN;;;;WAKIvI,OAAOzF,IAAP,CAAY,EAAZ,CAAP;;AACA;AAED,SAAAiO,SAAA,CAA0B7E,UAA1B,EAAA;QAAoDqD,OAApD,uEAAyE,EAAzE;;QACOpD,WAAYoD,QAAQC,GAAR,GAAcC,YAAd,GAA6BC,YAA/C;QACMS,YAA0B,EAAhC;;QAGMJ,gBAAgB1E,QAAQ,CAACkE,QAAQ/C,MAAR,IAAkBN,WAAWM,MAA7B,IAAuC,EAAxC,EAA4C7I,WAA5C,EAAR,CAAtB;;QAGIoM,iBAAiBA,cAAcgB,SAAnC,EAA8ChB,cAAcgB,SAAd,CAAwB7E,UAAxB,EAAoCqD,OAApC;QAE1CrD,WAAWW,IAAf,EAAqB;;YAEhBV,SAASyB,WAAT,CAAqB1C,IAArB,CAA0BgB,WAAWW,IAArC,CAAJ,EAAgD;;;;aAK3C,IAAI0C,QAAQU,UAAR,IAAuBF,iBAAiBA,cAAcE,UAA1D,EAAuE;;oBAEvE;+BACQpD,IAAX,GAAmB,CAAC0C,QAAQC,GAAT,GAAepE,SAASD,OAAT,CAAiBe,WAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,SAASM,WAAjC,EAA8Cf,WAA9C,EAA2D/H,WAA3D,EAAjB,CAAf,GAA4GyH,SAASH,SAAT,CAAmBiB,WAAWW,IAA9B,CAA/H;iBADD,CAEE,OAAOpB,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,iDAAiD,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAA1E,IAAuF,iBAAvF,GAA2G/D,CAAlJ;;;;;gCAMyBS,UAA5B,EAAwCC,QAAxC;QAEIoD,QAAQI,SAAR,KAAsB,QAAtB,IAAkCzD,WAAWM,MAAjD,EAAyD;kBAC9C5D,IAAV,CAAesD,WAAWM,MAA1B;kBACU5D,IAAV,CAAe,GAAf;;QAGKoI,YAAYd,oBAAoBhE,UAApB,EAAgCqD,OAAhC,CAAlB;QACIyB,cAAc7N,SAAlB,EAA6B;YACxBoM,QAAQI,SAAR,KAAsB,QAA1B,EAAoC;sBACzB/G,IAAV,CAAe,IAAf;;kBAGSA,IAAV,CAAeoI,SAAf;YAEI9E,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBkE,MAAhB,CAAuB,CAAvB,MAA8B,GAArD,EAA0D;sBAC/CrI,IAAV,CAAe,GAAf;;;QAIEsD,WAAWa,IAAX,KAAoB5J,SAAxB,EAAmC;YAC9B0N,IAAI3E,WAAWa,IAAnB;YAEI,CAACwC,QAAQ2B,YAAT,KAA0B,CAACnB,aAAD,IAAkB,CAACA,cAAcmB,YAA3D,CAAJ,EAA8E;gBACzEP,kBAAkBE,CAAlB,CAAJ;;YAGGG,cAAc7N,SAAlB,EAA6B;gBACxB0N,EAAE1I,OAAF,CAAU,OAAV,EAAmB,MAAnB,CAAJ,CAD4B;;kBAInBS,IAAV,CAAeiI,CAAf;;QAGG3E,WAAWgB,KAAX,KAAqB/J,SAAzB,EAAoC;kBACzByF,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAesD,WAAWgB,KAA1B;;QAGGhB,WAAWkB,QAAX,KAAwBjK,SAA5B,EAAuC;kBAC5ByF,IAAV,CAAe,GAAf;kBACUA,IAAV,CAAesD,WAAWkB,QAA1B;;WAGM+C,UAAUrN,IAAV,CAAe,EAAf,CAAP,CAxED;;AAyEC;AAED,SAAAqO,iBAAA,CAAkC5K,IAAlC,EAAsD6K,QAAtD,EAAA;QAA8E7B,OAA9E,uEAAmG,EAAnG;QAAuG8B,iBAAvG;;QACOnN,SAAuB,EAA7B;QAEI,CAACmN,iBAAL,EAAwB;eAChBhC,MAAM0B,UAAUxK,IAAV,EAAgBgJ,OAAhB,CAAN,EAAgCA,OAAhC,CAAP,CADuB;mBAEZF,MAAM0B,UAAUK,QAAV,EAAoB7B,OAApB,CAAN,EAAoCA,OAApC,CAAX,CAFuB;;cAIdA,WAAW,EAArB;QAEI,CAACA,QAAQ+B,QAAT,IAAqBF,SAAS5E,MAAlC,EAA0C;eAClCA,MAAP,GAAgB4E,SAAS5E,MAAzB;;eAEOG,QAAP,GAAkByE,SAASzE,QAA3B;eACOE,IAAP,GAAcuE,SAASvE,IAAvB;eACO+C,IAAP,GAAcwB,SAASxB,IAAvB;eACO7C,IAAP,GAAc4D,kBAAkBS,SAASrE,IAAT,IAAiB,EAAnC,CAAd;eACOG,KAAP,GAAekE,SAASlE,KAAxB;KAPD,MAQO;YACFkE,SAASzE,QAAT,KAAsBxJ,SAAtB,IAAmCiO,SAASvE,IAAT,KAAkB1J,SAArD,IAAkEiO,SAASxB,IAAT,KAAkBzM,SAAxF,EAAmG;;mBAE3FwJ,QAAP,GAAkByE,SAASzE,QAA3B;mBACOE,IAAP,GAAcuE,SAASvE,IAAvB;mBACO+C,IAAP,GAAcwB,SAASxB,IAAvB;mBACO7C,IAAP,GAAc4D,kBAAkBS,SAASrE,IAAT,IAAiB,EAAnC,CAAd;mBACOG,KAAP,GAAekE,SAASlE,KAAxB;SAND,MAOO;gBACF,CAACkE,SAASrE,IAAd,EAAoB;uBACZA,IAAP,GAAcxG,KAAKwG,IAAnB;oBACIqE,SAASlE,KAAT,KAAmB/J,SAAvB,EAAkC;2BAC1B+J,KAAP,GAAekE,SAASlE,KAAxB;iBADD,MAEO;2BACCA,KAAP,GAAe3G,KAAK2G,KAApB;;aALF,MAOO;oBACFkE,SAASrE,IAAT,CAAckE,MAAd,CAAqB,CAArB,MAA4B,GAAhC,EAAqC;2BAC7BlE,IAAP,GAAc4D,kBAAkBS,SAASrE,IAA3B,CAAd;iBADD,MAEO;wBACF,CAACxG,KAAKoG,QAAL,KAAkBxJ,SAAlB,IAA+BoD,KAAKsG,IAAL,KAAc1J,SAA7C,IAA0DoD,KAAKqJ,IAAL,KAAczM,SAAzE,KAAuF,CAACoD,KAAKwG,IAAjG,EAAuG;+BAC/FA,IAAP,GAAc,MAAMqE,SAASrE,IAA7B;qBADD,MAEO,IAAI,CAACxG,KAAKwG,IAAV,EAAgB;+BACfA,IAAP,GAAcqE,SAASrE,IAAvB;qBADM,MAEA;+BACCA,IAAP,GAAcxG,KAAKwG,IAAL,CAAUpK,KAAV,CAAgB,CAAhB,EAAmB4D,KAAKwG,IAAL,CAAU/C,WAAV,CAAsB,GAAtB,IAA6B,CAAhD,IAAqDoH,SAASrE,IAA5E;;2BAEMA,IAAP,GAAc4D,kBAAkBzM,OAAO6I,IAAzB,CAAd;;uBAEMG,KAAP,GAAekE,SAASlE,KAAxB;;;mBAGMP,QAAP,GAAkBpG,KAAKoG,QAAvB;mBACOE,IAAP,GAActG,KAAKsG,IAAnB;mBACO+C,IAAP,GAAcrJ,KAAKqJ,IAAnB;;eAEMpD,MAAP,GAAgBjG,KAAKiG,MAArB;;WAGMY,QAAP,GAAkBgE,SAAShE,QAA3B;WAEOlJ,MAAP;;AACA;AAED,SAAAqN,OAAA,CAAwBC,OAAxB,EAAwCC,WAAxC,EAA4DlC,OAA5D,EAAA;QACOmC,oBAAoBzN,OAAO,EAAEuI,QAAS,MAAX,EAAP,EAA4B+C,OAA5B,CAA1B;WACOwB,UAAUI,kBAAkB9B,MAAMmC,OAAN,EAAeE,iBAAf,CAAlB,EAAqDrC,MAAMoC,WAAN,EAAmBC,iBAAnB,CAArD,EAA4FA,iBAA5F,EAA+G,IAA/G,CAAV,EAAgIA,iBAAhI,CAAP;;AACA;AAID,SAAAC,SAAA,CAA0BC,GAA1B,EAAmCrC,OAAnC,EAAA;QACK,OAAOqC,GAAP,KAAe,QAAnB,EAA6B;cACtBb,UAAU1B,MAAMuC,GAAN,EAAWrC,OAAX,CAAV,EAA+BA,OAA/B,CAAN;KADD,MAEO,IAAItM,OAAO2O,GAAP,MAAgB,QAApB,EAA8B;cAC9BvC,MAAM0B,UAAyBa,GAAzB,EAA8BrC,OAA9B,CAAN,EAA8CA,OAA9C,CAAN;;WAGMqC,GAAP;;AACA;AAID,SAAAC,KAAA,CAAsBC,IAAtB,EAAgCC,IAAhC,EAA0CxC,OAA1C,EAAA;QACK,OAAOuC,IAAP,KAAgB,QAApB,EAA8B;eACtBf,UAAU1B,MAAMyC,IAAN,EAAYvC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;KADD,MAEO,IAAItM,OAAO6O,IAAP,MAAiB,QAArB,EAA+B;eAC9Bf,UAAyBe,IAAzB,EAA+BvC,OAA/B,CAAP;;QAGG,OAAOwC,IAAP,KAAgB,QAApB,EAA8B;eACtBhB,UAAU1B,MAAM0C,IAAN,EAAYxC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;KADD,MAEO,IAAItM,OAAO8O,IAAP,MAAiB,QAArB,EAA+B;eAC9BhB,UAAyBgB,IAAzB,EAA+BxC,OAA/B,CAAP;;WAGMuC,SAASC,IAAhB;;AACA;AAED,SAAAC,eAAA,CAAgChP,GAAhC,EAA4CuM,OAA5C,EAAA;WACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAauC,MAAxC,GAAiDxC,aAAawC,MAAtF,EAA+F3G,UAA/F,CAAd;;AACA;AAED,SAAA4G,iBAAA,CAAkClP,GAAlC,EAA8CuM,OAA9C,EAAA;WACQvM,OAAOA,IAAIM,QAAJ,GAAe6E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,QAAQC,GAArB,GAA2BE,aAAajD,WAAxC,GAAsDgD,aAAahD,WAA3F,EAAyGf,WAAzG,CAAd;CACA;;ACziBD,IAAMyG,UAA2B;YACvB,MADuB;gBAGnB,IAHmB;WAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;;YAEM,CAACrD,WAAWW,IAAhB,EAAsB;uBACVpF,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,6BAAvC;;eAGMyE,UAAP;KAX+B;eAcpB,mBAAUA,UAAV,EAAoCqD,OAApC,EAAb;YACQ6C,SAAS7K,OAAO2E,WAAWM,MAAlB,EAA0B7I,WAA1B,OAA4C,OAA3D;;YAGIuI,WAAW0D,IAAX,MAAqBwC,SAAS,GAAT,GAAe,EAApC,KAA2ClG,WAAW0D,IAAX,KAAoB,EAAnE,EAAuE;uBAC3DA,IAAX,GAAkBzM,SAAlB;;;YAIG,CAAC+I,WAAWa,IAAhB,EAAsB;uBACVA,IAAX,GAAkB,GAAlB;;;;;eAOMb,UAAP;;CA/BF,CAmCA;;AClCA,IAAMiG,YAA2B;YACvB,OADuB;gBAEnBE,QAAKpC,UAFc;WAGxBoC,QAAKhD,KAHmB;eAIpBgD,QAAKtB;CAJlB,CAOA;;ACHA,SAAAuB,QAAA,CAAkBC,YAAlB,EAAA;WACQ,OAAOA,aAAaH,MAApB,KAA+B,SAA/B,GAA2CG,aAAaH,MAAxD,GAAiE7K,OAAOgL,aAAa/F,MAApB,EAA4B7I,WAA5B,OAA8C,KAAtH;;;AAID,IAAMwO,YAA2B;YACvB,IADuB;gBAGnB,IAHmB;WAKxB,eAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQgD,eAAerG,UAArB;;qBAGakG,MAAb,GAAsBE,SAASC,YAAT,CAAtB;;qBAGaC,YAAb,GAA4B,CAACD,aAAaxF,IAAb,IAAqB,GAAtB,KAA8BwF,aAAarF,KAAb,GAAqB,MAAMqF,aAAarF,KAAxC,GAAgD,EAA9E,CAA5B;qBACaH,IAAb,GAAoB5J,SAApB;qBACa+J,KAAb,GAAqB/J,SAArB;eAEOoP,YAAP;KAhB+B;eAmBpB,mBAAUA,YAAV,EAAqChD,OAArC,EAAb;;YAEMgD,aAAa3C,IAAb,MAAuB0C,SAASC,YAAT,IAAyB,GAAzB,GAA+B,EAAtD,KAA6DA,aAAa3C,IAAb,KAAsB,EAAvF,EAA2F;yBAC7EA,IAAb,GAAoBzM,SAApB;;;YAIG,OAAOoP,aAAaH,MAApB,KAA+B,SAAnC,EAA8C;yBAChC5F,MAAb,GAAuB+F,aAAaH,MAAb,GAAsB,KAAtB,GAA8B,IAArD;yBACaA,MAAb,GAAsBjP,SAAtB;;;YAIGoP,aAAaC,YAAjB,EAA+B;wCACRD,aAAaC,YAAb,CAA0BhP,KAA1B,CAAgC,GAAhC,CADQ;;gBACvBuJ,IADuB;gBACjBG,KADiB;;yBAEjBH,IAAb,GAAqBA,QAAQA,SAAS,GAAjB,GAAuBA,IAAvB,GAA8B5J,SAAnD;yBACa+J,KAAb,GAAqBA,KAArB;yBACasF,YAAb,GAA4BrP,SAA5B;;;qBAIYiK,QAAb,GAAwBjK,SAAxB;eAEOoP,YAAP;;CA1CF,CA8CA;;ACvDA,IAAMJ,YAA2B;YACvB,KADuB;gBAEnBM,UAAGxC,UAFgB;WAGxBwC,UAAGpD,KAHqB;eAIpBoD,UAAG1B;CAJhB,CAOA;;ACMA,IAAM2B,IAAkB,EAAxB;;AAIA,IAAMzN,eAAe,6BAAoC,2EAAR,CAA5B,IAAwH,GAA7I;AACA,IAAMR,WAAW,aAAjB;AACA,IAAMC,eAAe3B,OAAOA,OAAO,YAAY0B,QAAZ,GAAuB,GAAvB,GAA6BA,QAA7B,GAAwCA,QAAxC,GAAmD,GAAnD,GAAyDA,QAAzD,GAAoEA,QAA3E,IAAuF,GAAvF,GAA6F1B,OAAO,gBAAgB0B,QAAhB,GAA2B,GAA3B,GAAiCA,QAAjC,GAA4CA,QAAnD,CAA7F,GAA4J,GAA5J,GAAkK1B,OAAO,MAAM0B,QAAN,GAAiBA,QAAxB,CAAzK,CAArB;;;;;;;;;;;;AAaA,IAAMkO,UAAU,uDAAhB;AACA,IAAMC,UAAU,4DAAhB;AACA,IAAMC,UAAUrQ,MAAMoQ,OAAN,EAAe,YAAf,CAAhB;AAMA,IAEME,gBAAgB,qCAAtB;AAWA,IAEMvG,aAAa,IAAInG,MAAJ,CAAWnB,YAAX,EAAyB,GAAzB,CAAnB;AACA,IAAMwH,cAAc,IAAIrG,MAAJ,CAAW1B,YAAX,EAAyB,GAAzB,CAApB;AACA,IAAMqO,iBAAiB,IAAI3M,MAAJ,CAAW5D,MAAM,KAAN,EAAamQ,OAAb,EAAsB,OAAtB,EAA+B,OAA/B,EAAwCE,OAAxC,CAAX,EAA6D,GAA7D,CAAvB;AAEA,IAAMG,aAAa,IAAI5M,MAAJ,CAAW5D,MAAM,KAAN,EAAayC,YAAb,EAA2B6N,aAA3B,CAAX,EAAsD,GAAtD,CAAnB;AACA,IAAMG,cAAcD,UAApB;AAEA,SAEA5G,gBAAA,CAA0BpJ,GAA1B,EAAA;QACOqJ,SAASX,YAAY1I,GAAZ,CAAf;WACQ,CAACqJ,OAAOC,KAAP,CAAaC,UAAb,CAAD,GAA4BvJ,GAA5B,GAAkCqJ,MAA1C;;AAGD,IAAM8F,YAA8C;YAC1C,QAD0C;WAG3C,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ2D,mBAAmBhH,UAAzB;YACMiH,KAAKD,iBAAiBC,EAAjB,GAAuBD,iBAAiBnG,IAAjB,GAAwBmG,iBAAiBnG,IAAjB,CAAsBvJ,KAAtB,CAA4B,GAA5B,CAAxB,GAA2D,EAA7F;yBACiBuJ,IAAjB,GAAwB5J,SAAxB;YAEI+P,iBAAiBhG,KAArB,EAA4B;gBACvBkG,iBAAiB,KAArB;gBACMC,UAAwB,EAA9B;gBACMC,UAAUJ,iBAAiBhG,KAAjB,CAAuB1J,KAAvB,CAA6B,GAA7B,CAAhB;iBAEK,IAAIX,IAAI,CAAR,EAAWD,KAAK0Q,QAAQ5Q,MAA7B,EAAqCG,IAAID,EAAzC,EAA6C,EAAEC,CAA/C,EAAkD;oBAC3C0Q,SAASD,QAAQzQ,CAAR,EAAWW,KAAX,CAAiB,GAAjB,CAAf;wBAEQ+P,OAAO,CAAP,CAAR;yBACM,IAAL;4BACOC,UAAUD,OAAO,CAAP,EAAU/P,KAAV,CAAgB,GAAhB,CAAhB;6BACK,IAAIX,KAAI,CAAR,EAAWD,MAAK4Q,QAAQ9Q,MAA7B,EAAqCG,KAAID,GAAzC,EAA6C,EAAEC,EAA/C,EAAkD;+BAC9C+F,IAAH,CAAQ4K,QAAQ3Q,EAAR,CAAR;;;yBAGG,SAAL;yCACkB4Q,OAAjB,GAA2BvB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAA3B;;yBAEI,MAAL;yCACkBmE,IAAjB,GAAwBxB,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAxB;;;yCAGiB,IAAjB;gCACQ2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAR,IAAiD2C,kBAAkBqB,OAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAjD;;;;gBAKC6D,cAAJ,EAAoBF,iBAAiBG,OAAjB,GAA2BA,OAA3B;;yBAGJnG,KAAjB,GAAyB/J,SAAzB;aAEK,IAAIN,MAAI,CAAR,EAAWD,OAAKuQ,GAAGzQ,MAAxB,EAAgCG,MAAID,IAApC,EAAwC,EAAEC,GAA1C,EAA6C;gBACtC8Q,OAAOR,GAAGtQ,GAAH,EAAMW,KAAN,CAAY,GAAZ,CAAb;iBAEK,CAAL,IAAU0O,kBAAkByB,KAAK,CAAL,CAAlB,CAAV;gBAEI,CAACpE,QAAQS,cAAb,EAA6B;;oBAExB;yBACE,CAAL,IAAU5E,SAASD,OAAT,CAAiB+G,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAjB,CAAV;iBADD,CAEE,OAAO8H,CAAP,EAAU;qCACMhE,KAAjB,GAAyByL,iBAAiBzL,KAAjB,IAA0B,6EAA6EgE,CAAhI;;aALF,MAOO;qBACD,CAAL,IAAUyG,kBAAkByB,KAAK,CAAL,CAAlB,EAA2BpE,OAA3B,EAAoC5L,WAApC,EAAV;;eAGEd,GAAH,IAAQ8Q,KAAK7Q,IAAL,CAAU,GAAV,CAAR;;eAGMoQ,gBAAP;KA5DkD;eA+DvC,sBAAUA,gBAAV,EAA6C3D,OAA7C,EAAb;YACQrD,aAAagH,gBAAnB;YACMC,KAAKtP,QAAQqP,iBAAiBC,EAAzB,CAAX;YACIA,EAAJ,EAAQ;iBACF,IAAItQ,IAAI,CAAR,EAAWD,KAAKuQ,GAAGzQ,MAAxB,EAAgCG,IAAID,EAApC,EAAwC,EAAEC,CAA1C,EAA6C;oBACtC+Q,SAASrM,OAAO4L,GAAGtQ,CAAH,CAAP,CAAf;oBACMgR,QAAQD,OAAO5J,WAAP,CAAmB,GAAnB,CAAd;oBACM8J,YAAaF,OAAOjR,KAAP,CAAa,CAAb,EAAgBkR,KAAhB,CAAD,CAAyB1L,OAAzB,CAAiCsE,WAAjC,EAA8CL,gBAA9C,EAAgEjE,OAAhE,CAAwEsE,WAAxE,EAAqF7I,WAArF,EAAkGuE,OAAlG,CAA0G4K,cAA1G,EAA0HzH,UAA1H,CAAlB;oBACIyI,SAASH,OAAOjR,KAAP,CAAakR,QAAQ,CAArB,CAAb;;oBAGI;6BACO,CAACtE,QAAQC,GAAT,GAAepE,SAASD,OAAT,CAAiB+G,kBAAkB6B,MAAlB,EAA0BxE,OAA1B,EAAmC5L,WAAnC,EAAjB,CAAf,GAAoFyH,SAASH,SAAT,CAAmB8I,MAAnB,CAA9F;iBADD,CAEE,OAAOtI,CAAP,EAAU;+BACAhE,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,0DAA0D,CAAC8H,QAAQC,GAAT,GAAe,OAAf,GAAyB,SAAnF,IAAgG,iBAAhG,GAAoH/D,CAA3J;;mBAGE5I,CAAH,IAAQiR,YAAY,GAAZ,GAAkBC,MAA1B;;uBAGUhH,IAAX,GAAkBoG,GAAGrQ,IAAH,CAAQ,GAAR,CAAlB;;YAGKuQ,UAAUH,iBAAiBG,OAAjB,GAA2BH,iBAAiBG,OAAjB,IAA4B,EAAvE;YAEIH,iBAAiBO,OAArB,EAA8BJ,QAAQ,SAAR,IAAqBH,iBAAiBO,OAAtC;YAC1BP,iBAAiBQ,IAArB,EAA2BL,QAAQ,MAAR,IAAkBH,iBAAiBQ,IAAnC;YAErBpF,SAAS,EAAf;aACK,IAAM0F,IAAX,IAAmBX,OAAnB,EAA4B;gBACvBA,QAAQW,IAAR,MAAkBtB,EAAEsB,IAAF,CAAtB,EAA+B;uBACvBpL,IAAP,CACCoL,KAAK7L,OAAL,CAAasE,WAAb,EAA0BL,gBAA1B,EAA4CjE,OAA5C,CAAoDsE,WAApD,EAAiE7I,WAAjE,EAA8EuE,OAA9E,CAAsF6K,UAAtF,EAAkG1H,UAAlG,IACA,GADA,GAEA+H,QAAQW,IAAR,EAAc7L,OAAd,CAAsBsE,WAAtB,EAAmCL,gBAAnC,EAAqDjE,OAArD,CAA6DsE,WAA7D,EAA0E7I,WAA1E,EAAuFuE,OAAvF,CAA+F8K,WAA/F,EAA4G3H,UAA5G,CAHD;;;YAOEgD,OAAO5L,MAAX,EAAmB;uBACPwK,KAAX,GAAmBoB,OAAOxL,IAAP,CAAY,GAAZ,CAAnB;;eAGMoJ,UAAP;;CAzGF,CA6GA;;ACnKA,IAAM+H,YAAY,iBAAlB;AACA;AAGA,IAAM9B,YAAqD;YACjD,KADiD;WAGlD,kBAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ/B,UAAUtB,WAAWa,IAAX,IAAmBb,WAAWa,IAAX,CAAgBT,KAAhB,CAAsB2H,SAAtB,CAAnC;YACIC,gBAAgBhI,UAApB;YAEIsB,OAAJ,EAAa;gBACNhB,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;gBACM2H,MAAM3G,QAAQ,CAAR,EAAW7J,WAAX,EAAZ;gBACMyQ,MAAM5G,QAAQ,CAAR,CAAZ;gBACM6G,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;gBACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;0BAEcF,GAAd,GAAoBA,GAApB;0BACcC,GAAd,GAAoBA,GAApB;0BACcrH,IAAd,GAAqB5J,SAArB;gBAEI4M,aAAJ,EAAmB;gCACFA,cAAcV,KAAd,CAAoB6E,aAApB,EAAmC3E,OAAnC,CAAhB;;SAZF,MAcO;0BACQ9H,KAAd,GAAsByM,cAAczM,KAAd,IAAuB,wBAA7C;;eAGMyM,aAAP;KAzByD;eA4B9C,sBAAUA,aAAV,EAAuC3E,OAAvC,EAAb;YACQ/C,SAAS+C,QAAQ/C,MAAR,IAAkB0H,cAAc1H,MAAhC,IAA0C,KAAzD;YACM2H,MAAMD,cAAcC,GAA1B;YACME,YAAe7H,MAAf,UAAyB+C,QAAQ4E,GAAR,IAAeA,GAAxC,CAAN;YACMpE,gBAAgB1E,QAAQgJ,SAAR,CAAtB;YAEItE,aAAJ,EAAmB;4BACFA,cAAcgB,SAAd,CAAwBmD,aAAxB,EAAuC3E,OAAvC,CAAhB;;YAGK+E,gBAAgBJ,aAAtB;YACME,MAAMF,cAAcE,GAA1B;sBACcrH,IAAd,IAAwBoH,OAAO5E,QAAQ4E,GAAvC,UAA8CC,GAA9C;eAEOE,aAAP;;CA1CF,CA8CA;;AC5DA,IAAMC,OAAO,0DAAb;AACA;AAGA,IAAMpC,YAAsE;YAClE,UADkE;WAGnE,eAAU+B,aAAV,EAAuC3E,OAAvC,EAAT;YACQiF,iBAAiBN,aAAvB;uBACeO,IAAf,GAAsBD,eAAeJ,GAArC;uBACeA,GAAf,GAAqBjR,SAArB;YAEI,CAACoM,QAAQ+B,QAAT,KAAsB,CAACkD,eAAeC,IAAhB,IAAwB,CAACD,eAAeC,IAAf,CAAoBnI,KAApB,CAA0BiI,IAA1B,CAA/C,CAAJ,EAAqF;2BACrE9M,KAAf,GAAuB+M,eAAe/M,KAAf,IAAwB,oBAA/C;;eAGM+M,cAAP;KAZ0E;eAe/D,mBAAUA,cAAV,EAAyCjF,OAAzC,EAAb;YACQ2E,gBAAgBM,cAAtB;;sBAEcJ,GAAd,GAAoB,CAACI,eAAeC,IAAf,IAAuB,EAAxB,EAA4B9Q,WAA5B,EAApB;eACOuQ,aAAP;;CAnBF,CAuBA;;AChCA7I,QAAQgH,QAAK7F,MAAb,IAAuB6F,OAAvB;AAGAhH,QAAQqJ,UAAMlI,MAAd,IAAwBkI,SAAxB;AAGArJ,QAAQoH,UAAGjG,MAAX,IAAqBiG,SAArB;AAGApH,QAAQsJ,UAAInI,MAAZ,IAAsBmI,SAAtB;AAGAtJ,QAAQuJ,UAAOpI,MAAf,IAAyBoI,SAAzB;AAGAvJ,QAAQwJ,UAAIrI,MAAZ,IAAsBqI,SAAtB;AAGAxJ,QAAQoJ,UAAKjI,MAAb,IAAuBiI,SAAvB,CAEA;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,iBAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC9D,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC;AACtD;AACA,IAAI,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;AACxB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AAC3C,MAAM,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC7C,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AACtF,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACnF,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvF;AACA,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACvD;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC1E;AACA,IAAI,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AACjC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;;AC3CD;AACA;AACA,cAAc,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE;AAC1C,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AACtB,MAAM,GAAG,GAAG,CAAC;AACb,MAAM,KAAK,CAAC;AACZ,EAAE,OAAO,GAAG,GAAG,GAAG,EAAE;AACpB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC,IAAI,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AACzD;AACA,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAClC,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;AAC5C,KAAK;AACL,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;AChBD,QAAc,GAAG;AACjB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,KAAK,EAAEK,aAA0B;AACnC,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,aAAa,EAAE,aAAa;AAC9B,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,oBAAoB,EAAE,oBAAoB;AAC5C,EAAE,kBAAkB,EAAE,kBAAkB;AACxC,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,mBAAmB,EAAE,mBAAmB;AAC1C,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,CAAC,CAAC;AACF;AACA;AACA,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;AACrB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE;AAC9D,EAAE,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO;AACxC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;AACpC,MAAM,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE;AAC5B,MAAM,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;AAC9B,EAAE,QAAQ,QAAQ;AAClB,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAC9C,IAAI,KAAK,OAAO,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,IAAI,GAAG,GAAG,CAAC;AAC5D,IAAI,KAAK,QAAQ,EAAE,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG;AAC/C,0BAA0B,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;AACrE,0BAA0B,GAAG,GAAG,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/D,IAAI,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;AACvE,2BAA2B,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO;AACrD,2BAA2B,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI;AACpD,4BAA4B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;AAC9F,IAAI,KAAK,QAAQ,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;AAC1E,2BAA2B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;AAC7F,IAAI,SAAS,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;AACpE,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;AACxD,EAAE,QAAQ,SAAS,CAAC,MAAM;AAC1B,IAAI,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAC1E,IAAI;AACJ,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;AACpB,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvC,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AACtD,QAAQ,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,gBAAgB,CAAC;AACpD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC;AAC1B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC;AAC3B,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK;AACzB,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACpF;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,eAAe,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF,SAAS,aAAa,CAAC,iBAAiB,EAAE,SAAS,EAAE;AACrD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,WAAW,IAAI,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AACnC,GAAG,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AACvB,GAAG,MAAM,IAAI,iBAAiB,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;AACrE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACrB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACvD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,IAAI,UAAU,GAAG,uBAAuB,CAAC;AACzC,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,EAAE,OAAO,OAAO,GAAG,IAAI,QAAQ;AAC/B,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG;AAC3B,YAAY,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,cAAc,GAAG,GAAG,GAAG;AACvB,cAAc,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9C,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;AAC1C,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAClC,aAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;AACrC,EAAE,OAAO,IAAI,QAAQ,CAAC;AACtB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD,EAAE,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AACxC,EAAE,OAAO,IAAI,UAAU,CAAC;AACxB,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC5D,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC;AACjD,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;AAC5D,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK,CAAC;AAC3E,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC;AAC9E,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO;AACzC,EAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AAChE,EAAE,IAAI,IAAI,GAAG,YAAY;AACzB,gBAAgB,UAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,gDAAgD,CAAC;AACtG,iBAAiB,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;AACrG,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,SAAS,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,YAAY;AACzB,gBAAgB,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7D,gBAAgB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA;AACA,IAAI,YAAY,GAAG,qBAAqB,CAAC;AACzC,IAAI,qBAAqB,GAAG,kCAAkC,CAAC;AAC/D,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACpC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;AACrC,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,UAAU,CAAC;AACtC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACvB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACrF,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,IAAI,GAAG,UAAU,CAAC;AACtB,GAAG,MAAM;AACT,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;AACpE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,WAAW,IAAI,GAAG,EAAE;AAC5B,MAAM,IAAI,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACnH,MAAM,OAAO,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACtG,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC;AAClC,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,IAAI,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,MAAM,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AACD;AACA;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrD;;AC1OA,cAAc,GAAG,YAAY,CAAC;AAC9B;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvB;;;ACPA;AACA,IAAI,QAAQ,GAAG,cAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,EAAE,GAAG,IAAI,CAAC;AACd,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AACrB,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;AACrE,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;AACtC;AACA,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,QAAQ,GAAG;AACpB,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,oBAAoB,EAAE,IAAI;AAC5B,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,GAAG,EAAE,IAAI;AACX,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG;AACzB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,KAAK,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,aAAa,GAAG;AACzB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,YAAY,EAAE,IAAI;AACpB,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,YAAY,GAAG;AACxB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,aAAa,EAAE,IAAI;AACrB,CAAC,CAAC;AACF;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;AACvH,EAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC3F,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC3C,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,YAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACnH,SAAS;AACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAChD,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC3C,UAAU,KAAK,IAAI,IAAI,IAAI,GAAG;AAC9B,YAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3I,SAAS;AACT,OAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;AAChG,QAAQ,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/F,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC5F,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtD;;;AChFA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;AAC/B,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;AACzB,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC;AACzB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACrC;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACjC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxD,SAAS,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,YAAYC,UAAY,EAAE;AACtC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,cAAc,MAAM,CAAC,MAAM;AAC3B,cAAc,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,EAAE,IAAI,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;AACxB,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACxB,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,MAAM,YAAYA,UAAY,EAAE;AACtC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtF,GAAG,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AACnC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAChD,UAAU,MAAM;AAChB,UAAU,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC9D,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;AAClC;AACA,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACxB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;AAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;AACnE,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACnC,MAAM,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAK,MAAM,IAAI,MAAM,YAAYD,UAAY,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,IAAI,MAAM,YAAYA,UAAY,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD,QAAQ,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;AAClC,UAAU,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChE,QAAQ,IAAI,GAAG,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO;AAC7B,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAChD;AACA,EAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChD,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5C,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;AACnH;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AACzD;AACA,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChD,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO;AACnD,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM;AACtC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;AACvC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,QAAQ,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;AACzB,UAAU,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrD,UAAU,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,UAAU,IAAI,GAAG,EAAE;AACnB,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;AACpD,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AACD;AACA;AACA,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;AAC7B,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,aAAa,EAAE,YAAY;AAC7B,EAAE,UAAU,EAAE,MAAM;AACpB,CAAC,CAAC,CAAC;AACH,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;AAClC,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;AACpC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AACvE,OAAO,IAAI,KAAK,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACpD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACrE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,KAAK,CAAC;AACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACrE,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;AACtB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,MAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAC7C,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,QAAQ,CAAC;AACzC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,KAAK,EAAE,CAAC;AAChB,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,QAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAC/C,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE;AACpC,EAAE,IAAI,SAAS,KAAK,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,GAAGC,OAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxB,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,EAAE,OAAOA,OAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9C,CAAC;AACD;AACA;AACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;AAClC,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;AAChC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AACvB,EAAE,OAAOA,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,OAAO,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/B,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB;AACA,EAAEC,kBAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;AAC7H,IAAI,IAAI,OAAO,KAAK,EAAE,EAAE,OAAO;AAC/B,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACxC,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC;AAClE,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,MAAM,QAAQ,IAAI,GAAG,IAAI,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjG;AACA,IAAI,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;AAC/B,MAAM,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,GAAGD,OAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvE;AACA,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAClC,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACnC,QAAQ,IAAI,CAACpD,aAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;AACtC,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAC9E,OAAO,MAAM,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC9C,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC1B,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAACA,aAAK,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACzD,YAAY,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;AAChF,UAAU,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC9B,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAC9B,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;AAClC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,SAAS,CAAC;AACnB;;ACzQA,iBAAc,GAAG;AACjB,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;AAC5C,EAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;AAC5C,CAAC,CAAC;AACF;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,EAAE,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC;AACrC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACpC,CAAC;AACD;AACA;AACA,eAAe,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE;AACjD,EAAE,OAAO,2BAA2B,GAAG,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC;AAClE,CAAC,CAAC;AACF;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;AAC/C,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,UAAU,GAAGN,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,aAAa,GAAGA,SAAO,CAAC,WAAW,CAACA,SAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC;AAClB;;AC/BA,2BAAc,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE;AACvC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACzD,IAAI,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1E;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;AACxC,QAAQ,OAAO,UAAU,IAAI,EAAE;AAC/B,YAAY,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AACnC,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,gBAAgB,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,aAAa,CAAC;AACd,SAAS,CAAC;AACV,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE;AACtC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;AACtE,YAAY,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO;AACvC,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;AAChF,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC;AACnB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY,GAAG,GAAG,GAAG,CAAC;AACtB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,gBAAgB,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC;AAClC,gBAAgB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AACpD,aAAa;AACb,YAAY,OAAO,GAAG,GAAG,GAAG,CAAC;AAC7B,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AACzC;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACvC,YAAY,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC3D,YAAY,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;AACzE,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C;AACA,YAAY,IAAI,CAAC,KAAK,EAAE,SAAS;AACjC,YAAY,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC;AAChC,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAClC,QAAQ,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/B,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;;ACzDD,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;AACxC,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;AAChF,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9B,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/E,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,YAAY,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAC3D,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzE,WAAW,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI,GAAG,IAAI,kBAAkB,CAAC;AAC9B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,KAAK;AACL,IAAI,GAAG,IAAI,uFAAuF,CAAC;AACnG,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,MAAM,GAAG,IAAI,GAAG,IAAI,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3D,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAC1E,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC;AAClC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAChC,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACpE,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AAC3D,IAAI,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;AAC7B,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,aAAa,GAAG,IAAI,CAAC;AAC7B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAChN,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,0CAA0C,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnE,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACxE,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACxH,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,GAAG,IAAI,gBAAgB,CAAC;AAClC,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,wCAAwC,CAAC;AAC1D,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,uBAAuB,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE;AAChB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;AACvB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;AACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AACjC,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;AACvC,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC;AACpB,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAC1F,MAAM,IAAI,WAAW,GAAG,uCAAuC,CAAC;AAChE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxE,WAAW,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,GAAG,IAAI,gDAAgD,CAAC;AAC5D,GAAG,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;AACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS;AAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5E,IAAI,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC;AAChD,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;AAC7B,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;AACtC,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;AAClC,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9C,EAAE,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AACtE,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtF,KAAK,MAAM,IAAI,WAAW,IAAI,MAAM,EAAE;AACtC,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1C,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/C,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;AACtC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;AACtC,MAAM,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,aAAa,GAAG,2BAA2B,CAAC,CAAC;AAC7H,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5C,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAC5F,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAClD,IAAI,IAAI,cAAc,IAAI,YAAY,IAAI,WAAW,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE;AAClH,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACpD,MAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AAC/C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;AACnD,QAAQ,OAAO,GAAG,YAAY,GAAG,gBAAgB,GAAG,eAAe,CAAC;AACpE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AACpG,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,IAAI,SAAS,GAAG,UAAU,GAAG,IAAI;AACzC,UAAU,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,gBAAgB,CAAC;AACzG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC9U,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC3D,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5B,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,KAAK,IAAI,QAAQ,EAAE;AACnC,cAAc,GAAG,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,mBAAmB,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;AACtN,aAAa,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;AAChE,cAAc,GAAG,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjM,cAAc,IAAI,KAAK,IAAI,SAAS,EAAE;AACtC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;AACpD,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAClE,aAAa,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE;AAC3C,cAAc,GAAG,IAAI,YAAY,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,mBAAmB,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;AAC7O,aAAa,MAAM,IAAI,KAAK,IAAI,MAAM,EAAE;AACxC,cAAc,GAAG,IAAI,YAAY,IAAI,KAAK,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;AAC7I,aAAa,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;AAC3E,cAAc,GAAG,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;AACnN,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB,CAAC;AACjN,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACtC,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;AAC9C,YAAY,IAAI,YAAY,EAAE;AAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,qBAAqB,CAAC;AAC9D,QAAQ,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AACnF,UAAU,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC3F,QAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,UAAU,GAAG,IAAI,MAAM,IAAI,WAAW,CAAC,GAAG,iBAAiB,CAAC;AAC5D,SAAS;AACT,QAAQ,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;AAChG,OAAO,MAAM;AACb,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB,CAAC;AACjN,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACtC,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,0BAA0B,CAAC;AAC9C,YAAY,IAAI,YAAY,EAAE;AAC9B,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AACvC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5D,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,oBAAoB,CAAC;AAClC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,GAAG,IAAI,GAAG,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,eAAe,IAAI,GAAG,CAAC;AAC7B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,WAAW,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;AAC1C,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;AAChC,YAAY,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9G,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AACnC,YAAY,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;AACtE,cAAc,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU;AAChD,gBAAgB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,cAAc,IAAI,IAAI,GAAG,WAAW,CAAC;AACrC,cAAc,IAAI,IAAI,EAAE;AACxB,gBAAgB,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACzC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;AAChC,kBAAkB,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,kBAAkB,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACnD,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC9E,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;AAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;AACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1D,uBAAuB;AACvB,qBAAqB,MAAM;AAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;AACnG,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AACzE,uBAAuB,MAAM;AAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;AAClC,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa,MAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACtF,cAAc,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,cAAc,IAAI,IAAI,EAAE;AACxB,gBAAgB,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,gBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;AAChC,kBAAkB,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAClD,oBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AAC3D,oBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;AAC1C,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;AAClD,wBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS,CAAC;AACjF,wBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,6BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAC1D,uBAAuB;AACvB,qBAAqB,MAAM;AAC3B,sBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,CAAC;AACvE,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC1D,wBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC;AACnG,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACzD,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAC3D,wBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AACzE,uBAAuB,MAAM;AAC7B,wBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,uBAAuB;AACvB,sBAAsB,GAAG,IAAI,IAAI,CAAC;AAClC,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;AACvC,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5B,cAAc,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AACzC,gBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5E,gBAAgB,IAAI,KAAK,EAAE;AAC3B,kBAAkB,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC7C,kBAAkB,IAAI,aAAa,EAAE;AACrC,oBAAoB,eAAe,IAAI,GAAG,CAAC;AAC3C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AACjD,YAAY,eAAe,GAAG,EAAE,CAAC;AACjC,WAAW;AACX,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;AAChC,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,YAAY,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;AACpF,cAAc,GAAG,IAAI,UAAU,CAAC;AAChC,cAAc,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;AACvD,gBAAgB,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AAC5D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,GAAG,GAAG,EAAE,CAAC;AACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC7C,gBAAgB,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB,CAAC;AACvN,gBAAgB,IAAI,YAAY,EAAE;AAClC,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AAC5C,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAChD,kBAAkB,GAAG,IAAI,0BAA0B,CAAC;AACpD,kBAAkB,IAAI,YAAY,EAAE;AACpC,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,mBAAmB,MAAM;AACzB,oBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC;AAC9C,mBAAmB;AACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3J,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;AAC9B,eAAe;AACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AACtD;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;AAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3E,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAChF,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAChI,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,kBAAkB,CAAC;AACtC,YAAY,IAAI,IAAI,EAAE;AACtB,cAAc,GAAG,IAAI,GAAG,CAAC;AACzB,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC;AACtC,aAAa;AACb,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,YAAY,eAAe,IAAI,GAAG,CAAC;AACnC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AACzC,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,CAAC;AAClC,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AACrE,GAAG;AACH;AACA,EAAE,SAAS,eAAe,CAAC,WAAW,EAAE;AACxC,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AAChD,GAAG;AACH;AACA,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE;AACjC,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7G,GAAG;AACH;AACA,EAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AACxC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;AACxD,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACxdA;AACA;AACA;AACA;AACA,IAAI4D,YAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACM;AACvC;AACA;AACA,IAAIC,iBAAe,GAAGC,aAAY,CAAC,UAAU,CAAC;AAC9C;AACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AAClD;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;AACvB,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE;AAC5B,MAAM,IAAI,GAAG,EAAE;AACf,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB;AACA,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChE;AACA,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1D,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,WAAW,CAAC,YAAY,GAAG,YAAY,EAAE;AACpE;AACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB;AACA,EAAE,IAAI;AACN,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC1D,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC;AACtC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,SAAS;AACZ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAClD,GAAG;AACH;AACA;AACA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACxC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,IAAI,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA,EAAE,SAAS,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;AAC3D,IAAI,IAAI,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;AAC9D,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;AACnC,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;AACzC;AACA,IAAI,IAAI,UAAU,GAAGC,QAAiB,CAAC;AACvC,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,MAAM,EAAE,OAAO;AACrB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,UAAU,EAAE,EAAE;AACpB,MAAM,aAAa,EAAE,GAAG;AACxB,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,eAAe,EAAED,aAAY,CAAC,UAAU;AAC9C,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,QAAQ,EAAEC,QAAiB;AACjC,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE/D,SAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,aAAa,EAAE,aAAa;AAClC,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,MAAM,EAAE,IAAI,CAAC,MAAM;AACzB,MAAM,IAAI,EAAE,IAAI;AAChB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;AACvE,qBAAqB,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;AACpF,qBAAqB,UAAU,CAAC;AAChC;AACA,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,IAAIgE,UAAQ,CAAC;AACjB,IAAI,IAAI;AACR,MAAM,IAAI,YAAY,GAAG,IAAI,QAAQ;AACrC,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,OAAO;AACf,QAAQ,YAAY;AACpB,QAAQ,iBAAiB;AACzB,QAAQ,UAAU;AAClB,OAAO,CAAC;AACR;AACA,MAAMA,UAAQ,GAAG,YAAY;AAC7B,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,IAAI;AACZ,QAAQ,MAAM;AACd,QAAQ,QAAQ;AAChB,QAAQ,WAAW;AACnB,QAAQ1D,aAAK;AACb,QAAQsD,YAAU;AAClB,QAAQC,iBAAe;AACvB,OAAO,CAAC;AACR;AACA,MAAM,MAAM,CAAC,CAAC,CAAC,GAAGG,UAAQ,CAAC;AAC3B,KAAK,CAAC,MAAM,CAAC,EAAE;AACf,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC,CAAC;AAC9E,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL;AACA,IAAIA,UAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;AAC9B,IAAIA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,IAAIA,UAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAIA,UAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,IAAIA,UAAQ,CAAC,IAAI,GAAG,MAAM,GAAGA,UAAQ,GAAG,KAAK,CAAC;AAC9C,IAAI,IAAI,MAAM,EAAEA,UAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAClC,MAAMA,UAAQ,CAAC,MAAM,GAAG;AACxB,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAOA,UAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAC3C,IAAI,GAAG,GAAGhE,SAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,OAAO,EAAE,OAAO,CAAC;AACzB,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC;AAC3C,MAAM,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AACnC,QAAQ,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzC,QAAQ,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5C,QAAQ,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,GAAGA,SAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACzB,MAAM,IAAI,WAAW,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,CAAC,GAAGA,SAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;AAC3D,cAAc,WAAW;AACzB,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACzB,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK,MAAM;AACX,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtB,IAAI,OAAO,QAAQ,GAAG,KAAK,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,SAAS,cAAc,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,GAAG;AACH;AACA,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,IAAI,OAAO,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AAClE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAC1D,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AAChE,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACvC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvD,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,SAAS,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,SAAS,UAAU,CAAC,KAAK,EAAE;AAC7B,IAAI,QAAQ,OAAO,KAAK;AACxB,MAAM,KAAK,SAAS,CAAC;AACrB,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,EAAE,GAAG,KAAK,CAAC;AAC1B,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,KAAK,QAAQ;AACnB,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAC1C,QAAQ,IAAI,QAAQ,GAAGiE,uBAAe,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,UAAU,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3D,UAAU,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,SAAS,GAAG,KAAK,CAAC;AACjC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;AACzD,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;AAC7C,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAC9C,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE;AAChD,QAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC3E,OAAO,CAAC;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F;AACA,MAAM,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AAC1D,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,UAAU,IAAI,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC/F,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7E,eAAe,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACxC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACzC,QAAQ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,QAAQ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtC;AACA,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC9D,KAAK,MAAM,IAAI,KAAK,EAAE;AACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAC5D,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7E,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1C,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC;AAChF;AACA,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;AACnC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AAClC;AACA,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,YAAY,GAAG,KAAK;AAChC,MAAM,QAAQ,EAAE,QAAQ;AACxB,KAAK,CAAC;AACN,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9C;AACA,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzD,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC3D,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACpC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG;AAC9B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,MAAM;AAClB,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5C;AACA,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACzC;AACA,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE;AAClC,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACxF,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,EAAE,OAAO,aAAa,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;AACvD,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;AAC/B,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC;AACnF,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,OAAO,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;AAC7D,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;AAC9B,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,EAAE,OAAO,IAAI,CAAC;AACd;;;ACjYA;AACA;AACA,IAAI,KAAK,GAAG,cAAc,GAAG,SAAS,KAAK,GAAG;AAC9C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE;AACrD,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,WAAW,GAAG;AAC/C,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,CAAC;;;ACrBD,IAAI,IAAI,GAAG,4BAA4B,CAAC;AACxC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnD,IAAI,IAAI,GAAG,yDAAyD,CAAC;AACrE,IAAI,QAAQ,GAAG,uGAAuG,CAAC;AACvH,IAAI,GAAG,GAAG,8nCAA8nC,CAAC;AACzoC,IAAI,MAAM,GAAG,woCAAwoC,CAAC;AACtpC;AACA,IAAI,WAAW,GAAG,mLAAmL,CAAC;AACtM;AACA;AACA;AACA;AACA,IAAIC,KAAG,GAAG,2rDAA2rD,CAAC;AACtsD,IAAI,IAAI,GAAG,8DAA8D,CAAC;AAC1E,IAAIC,cAAY,GAAG,2BAA2B,CAAC;AAC/C,IAAI,yBAAyB,GAAG,8DAA8D,CAAC;AAC/F,IAAIC,uBAAqB,GAAG,kDAAkD,CAAC;AAC/E;AACA;AACA,aAAc,GAAG,OAAO,CAAC;AACzB;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,EAAE,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AACD;AACA;AACA,OAAO,CAAC,IAAI,GAAG;AACf;AACA,EAAE,IAAI,EAAE,4BAA4B;AACpC;AACA,EAAE,IAAI,EAAE,6EAA6E;AACrF,EAAE,WAAW,EAAE,yGAAyG;AACxH;AACA,EAAE,GAAG,EAAE,2CAA2C;AAClD,EAAE,eAAe,EAAE,wEAAwE;AAC3F,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,GAAG,EAAEF,KAAG;AACV;AACA;AACA;AACA,EAAE,KAAK,EAAE,kHAAkH;AAC3H,EAAE,QAAQ,EAAE,QAAQ;AACpB;AACA,EAAE,IAAI,EAAE,2EAA2E;AACnF;AACA,EAAE,IAAI,EAAE,opCAAopC;AAC5pC,EAAE,KAAK,EAAE,KAAK;AACd;AACA,EAAE,IAAI,EAAE,IAAI;AACZ;AACA;AACA,EAAE,cAAc,EAAEC,cAAY;AAC9B,EAAE,2BAA2B,EAAE,yBAAyB;AACxD;AACA,EAAE,uBAAuB,EAAEC,uBAAqB;AAChD,CAAC,CAAC;AACF;AACA;AACA,OAAO,CAAC,IAAI,GAAG;AACf,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,cAAc,EAAE,WAAW;AAC7B,EAAE,GAAG,EAAEF,KAAG;AACV,EAAE,KAAK,EAAE,0IAA0I;AACnJ,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,IAAI,EAAE,2EAA2E;AACnF,EAAE,IAAI,EAAE,opCAAopC;AAC5pC,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,cAAc,EAAEC,cAAY;AAC9B,EAAE,2BAA2B,EAAE,yBAAyB;AACxD,EAAE,uBAAuB,EAAEC,uBAAqB;AAChD,CAAC,CAAC;AACF;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B;AACA,EAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB;AACA,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB;AACA,EAAE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;AAC9C,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;AACzB,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE;AACrD,WAAW,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;AACtD,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;AAC7B,CAAC;AACD;AACA;AACA,IAAI,mBAAmB,GAAG,OAAO,CAAC;AAClC,SAAS,SAAS,CAAC,GAAG,EAAE;AACxB;AACA,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAChD,EAAE,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9E,CAAC;AACD;AACA;AACA,IAAI,gBAAgB,GAAG,MAAM,CAAC;AAC9B,SAAS,GAAG,CAAC,GAAG,EAAE;AAClB;AACA,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AACD;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC1B,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;AACvC,EAAE,IAAI;AACN,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,MAAM,CAAC,EAAE;AACb,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;;AC5IA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,MAAM,EAAE,QAAQ,CAAC;AACvB,EAAE,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE;AACzC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE;AACnB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC;AACxB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC/D,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,IAAI,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;AACzC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClC,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;AAC3O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,2CAA2C,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;AACzG,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC1J,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,gBAAgB,CAAC;AAClC,SAAS;AACT,OAAO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;AAClD,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnE,OAAO;AACP,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAClB,MAAM,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AAC3C,MAAM,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AAC1B,MAAM,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;AAClC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9E,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,cAAc,CAAC;AAC/C,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,sBAAsB,CAAC;AAClD,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;AAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,eAAe,CAAC;AACnF,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC;AAC7B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC/E,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC;AACzC,OAAO;AACP,MAAM,GAAG,IAAI,eAAe,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC;AACvD,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAC5C,OAAO;AACP,MAAM,GAAG,IAAI,2KAA2K,CAAC;AACzL,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AAC7C,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,QAAQ,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,QAAQ,CAAC,GAAG,yCAAyC,IAAI,QAAQ,CAAC,GAAG,uCAAuC,CAAC;AAClM,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC1HA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;AACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3I,QAAQ,gBAAgB,GAAG,KAAK,CAAC;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACjD,UAAU,cAAc,IAAI,GAAG,CAAC;AAChC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACxCA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE;AACpD,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3I,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AACpC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;AAC5E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;AACvB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,QAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AACzG,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC/E,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACtL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,oDAAoD,CAAC;AACpE,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjD,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACjC,IAAI,GAAG,IAAI,eAAe,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC/C,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;AACpD,IAAI,GAAG,IAAI,uBAAuB,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,CAAC;AAC/H,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACZA,UAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAE9G,GAEG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;AAC/E,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC5G,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,mCAAmC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACtDA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM;AAC9B,IAAI,eAAe,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/J,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC3I,IAAI,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,cAAc,CAAC;AACnD,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,UAAU,CAAC,GAAG,KAAK,CAAC;AACpE,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,CAAC;AACjD,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACvL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8CAA8C,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,YAAY,CAAC;AACtB,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AAChJ,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC/EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,WAAW,GAAG,EAAE;AACtB,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3C,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE;AAC7B,IAAI,IAAI,SAAS,IAAI,WAAW,EAAE,SAAS;AAC3C,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,WAAW,CAAC;AAClE,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACzC,EAAE,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AACvC,EAAE,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AACtC,EAAE,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE;AACvC,IAAI,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACrC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;AACtB,MAAM,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC;AACvF,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3H,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC5D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;AACrI,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;AAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,aAAa,CAAC;AACxJ,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACza,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,4BAA4B,CAAC;AAChD,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACnC,cAAc,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,aAAa;AACb,YAAY,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAC5F,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;AACzB,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,aAAa;AACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC7D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC3C,cAAc,GAAG,IAAI,gBAAgB,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AAC7a,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9C,gBAAgB,GAAG,IAAI,4BAA4B,CAAC;AACpD,gBAAgB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,kBAAkB,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAChG,eAAe;AACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACzJ,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;AACpG,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACnC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAClC,EAAE,KAAK,IAAI,SAAS,IAAI,WAAW,EAAE;AACrC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AACtC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACzI,MAAM,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB,CAAC;AACpH,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;AAC3H,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,MAAM,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACpE,MAAM,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACnF,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AAC1E,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACtKA,SAAc,GAAG,SAAS,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACjE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAE9G,GAEG;AACH,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AACrB,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;AAC7E,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AACjC,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,yCAAyC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC;AAC/J,GAAG;AACH,EAAE,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,mBAAmB,CAAC;AACvN,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,oCAAoC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACxN,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,+DAA+D,CAAC;AAC7E,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AChEA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AAChC,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;AAC9C,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACnD,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,OAAO,GAAG,QAAQ,GAAG,IAAI;AACjC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;AACnC,MAAM,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC;AACxC,IAAI,GAAG,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,aAAa,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,sBAAsB,IAAI,OAAO,CAAC,GAAG,yBAAyB,IAAI,OAAO,CAAC,GAAG,iBAAiB,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,2BAA2B,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC;AACtU,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU,CAAC;AACpE,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC;AACvE,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC1G,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,IAAI,IAAI,eAAe,IAAI,QAAQ,EAAE;AACrC,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC;AAC/D,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,wCAAwC,IAAI,YAAY,CAAC,GAAG,UAAU,CAAC;AACtF,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,iBAAiB,IAAI,OAAO,CAAC,GAAG,qBAAqB,CAAC;AACtI,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;AACvH,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC;AAC9D,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,eAAe,IAAI,QAAQ,EAAE;AACvC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAChH,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,OAAO,MAAM,IAAI,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACzE,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,eAAe,CAAC;AACjC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,OAAO,MAAM;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AACjH,OAAO;AACP,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;AACnG,IAAI,IAAI,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;AAC5D,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,WAAW,IAAI,SAAS,EAAE;AAClC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,eAAe,CAAC;AAC/B,OAAO;AACP,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACpE,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;AAC9E,MAAM,GAAG,IAAI,eAAe,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC;AACvE,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,SAAS,CAAC;AACvB,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAChE,MAAM,IAAI,SAAS,EAAE,UAAU,IAAI,WAAW,CAAC;AAC/C,MAAM,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;AACxC,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACzD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAC9D,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,wBAAwB,CAAC;AAC7L,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,qCAAqC,CAAC;AACnD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACpJA,OAAc,GAAG,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC/D,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxL,IAAI,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxL,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAChC,EAAE,IAAI,YAAY,IAAI,YAAY,EAAE;AACpC,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC;AAC3E,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,4BAA4B,CAAC;AACjJ,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC;AAC9C,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;AACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,UAAU,CAAC;AAC/B,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAC/C,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO,CAAC;AACrD,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC;AAC1D,MAAM,IAAI,YAAY,IAAI,YAAY,EAAE;AACxC,QAAQ,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;AACtC,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,SAAS,GAAG,UAAU,CAAC;AAC/B,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AACtD,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;AACxN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,mCAAmC,IAAI,SAAS,CAAC,GAAG,kBAAkB,CAAC;AACtF,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACrGA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/B,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;AACrD,IAAI,IAAI,gBAAgB,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACxF,MAAM,IAAI,kBAAkB,GAAG,cAAc,CAAC;AAC9C,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAC7D,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC7C,MAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACxC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AACnO,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,0CAA0C,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAC7F,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnE,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACxE,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACxH,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,QAAQ,GAAG,IAAI,UAAU,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;AACvB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7B,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;AAC/F,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACjD,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACxD,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACxD,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACzC,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACnD,YAAY,cAAc,IAAI,GAAG,CAAC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,OAAO,gBAAgB,IAAI,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,gBAAgB,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACpN,MAAM,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC;AACpC,MAAM,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,kBAAkB,CAAC;AAC1D,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB,CAAC;AAChE,MAAM,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,gBAAgB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;AACzN,MAAM,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC1F,MAAM,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC/C,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACvC,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAClC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACvD,QAAQ,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7E,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAClF,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACrD,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC/C,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,KAAK;AACL,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACvJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;AACpH,IAAI,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACxF,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAC7C,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACnD,KAAK;AACL,IAAI,GAAG,IAAI,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC1IA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,QAAQ,IAAI,SAAS;AACpC,IAAI,iBAAiB,GAAG,MAAM,GAAG,kBAAkB,GAAG,kBAAkB;AACxE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK;AACnE,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;AAC5B,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;AAC/B,IAAI,aAAa,GAAG,SAAS,CAAC;AAC9B,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE;AACzE,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,EAAE,WAAW,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,IAAI,QAAQ,IAAI,OAAO,WAAW,IAAI,SAAS,CAAC,EAAE;AACxH,IAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,4BAA4B,CAAC,CAAC;AACtE,GAAG;AACH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC;AACvF,MAAM,UAAU,GAAG,WAAW,GAAG,IAAI;AACrC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI;AACnC,MAAM,aAAa,GAAG,cAAc,GAAG,IAAI;AAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI;AAC3B,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAC3C,IAAI,GAAG,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC;AAC1E,IAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC;AAC3C,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,gBAAgB,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,SAAS,CAAC,GAAG,uBAAuB,IAAI,SAAS,CAAC,GAAG,oBAAoB,CAAC;AAC7N,IAAI,IAAI,aAAa,GAAG,iBAAiB,CAAC;AAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,iBAAiB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACjN,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,uBAAuB,CAAC;AAChF,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,eAAe,CAAC;AAC3B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC1G,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,sBAAsB,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,gBAAgB,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,gBAAgB,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,OAAO,IAAI,GAAG,CAAC,GAAG,SAAS,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;AAC1mB,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AAClE,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,GAAG,OAAO,WAAW,IAAI,QAAQ;AACtD,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,IAAI,IAAI,aAAa,IAAI,OAAO,EAAE;AAClC,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC5G,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACvR,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,IAAI,OAAO,KAAK,SAAS,EAAE;AAClD,QAAQ,UAAU,GAAG,IAAI,CAAC;AAC1B,QAAQ,aAAa,GAAG,iBAAiB,CAAC;AAC1C,QAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AACpE,QAAQ,YAAY,GAAG,WAAW,CAAC;AACnC,QAAQ,MAAM,IAAI,GAAG,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,IAAI,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC7F,QAAQ,IAAI,WAAW,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,EAAE;AACnE,UAAU,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,aAAa,GAAG,iBAAiB,CAAC;AAC5C,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB,CAAC;AACtE,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS,MAAM;AACf,UAAU,UAAU,GAAG,KAAK,CAAC;AAC7B,UAAU,MAAM,IAAI,GAAG,CAAC;AACxB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AACzC,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AAC5G,OAAO;AACP,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACnH,KAAK;AACL,GAAG;AACH,EAAE,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAC;AAC5C,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,OAAO,CAAC,GAAG,WAAW,IAAI,YAAY,CAAC,GAAG,eAAe,IAAI,UAAU,CAAC,GAAG,KAAK,CAAC;AACrS,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,0BAA0B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AACzD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACjKA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/C,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AAC5E,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,aAAa,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;AAC1O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;AAC9C,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClC,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,WAAW,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,gBAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACzE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;AACtC,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,cAAc,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3C,GAAG;AACH,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AACrD,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;AAC3O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,8BAA8B,CAAC;AAC5C,MAAM,IAAI,QAAQ,IAAI,WAAW,EAAE;AACnC,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,SAAS,CAAC;AACzB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACnFA,oBAAc,GAAG,SAAS,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC7E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;AACpD,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,eAAe,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,CAAC;AACzF,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,kBAAkB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;AAC/O,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,gCAAgC,CAAC;AAC9C,MAAM,IAAI,QAAQ,IAAI,eAAe,EAAE;AACvC,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,OAAO;AACP,MAAM,GAAG,IAAI,QAAQ,CAAC;AACtB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AAC3C,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,6BAA6B,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AACjF,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACnC,IAAI,GAAG,IAAI,+BAA+B,IAAI,IAAI,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC;AAChI,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3E,GAAG;AACH,EAAE,GAAG,IAAI,KAAK,CAAC;AACf,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,OAAO,CAAC;AACnB,GAAG;AACH,EAAE,GAAG,IAAI,SAAS,CAAC;AACnB,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,YAAY,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,KAAK,CAAC;AAC7N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;AACpD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,CAAC;AACxC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC9EA,OAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;AAC9C,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,gBAAgB,CAAC;AACzB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;AAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,KAAK;AACL,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1C,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,IAAI,IAAI,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;AAChE,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,CAAC;AAC7C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B,CAAC;AACzJ,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,gBAAgB,CAAC;AAC5B,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB,CAAC;AACpL,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,sCAAsC,CAAC;AACtD,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,gBAAgB,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AClFA,SAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;AACjC,IAAI,UAAU,GAAG,WAAW,GAAG,IAAI;AACnC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAC9C,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,UAAU,CAAC,GAAG,aAAa,IAAI,MAAM,CAAC,GAAG,aAAa,IAAI,eAAe,CAAC,GAAG,WAAW,CAAC;AACvI,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACvC,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3B,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC3I,QAAQ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC1B,QAAQ,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AACtD,QAAQ,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC;AACtD,QAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACpC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACpD,OAAO;AACP,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,YAAY,IAAI,eAAe,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC;AACjL,QAAQ,cAAc,IAAI,GAAG,CAAC;AAC9B,OAAO;AACP,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,WAAW,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AACxI,KAAK;AACL,GAAG;AACH,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACvD,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC3E,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,eAAe,CAAC,GAAG,KAAK,CAAC;AAC/N,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,2DAA2D,CAAC;AACzE,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC/I,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,GAAG,IAAI,8EAA8E,CAAC;AACxF,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,uCAAuC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,4CAA4C,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,GAAG,IAAI,qBAAqB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,0BAA0B,CAAC;AACrJ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACvEA,WAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxF,EAAE,GAAG,IAAI,OAAO,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB,CAAC;AACxG,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,UAAU,CAAC;AAC5D,EAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,GAAG,GAAG,EAAE,CAAC;AACX,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,IAAI,GAAG,IAAI,gBAAgB,IAAI,SAAS,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAC/L,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,sCAAsC,CAAC;AACpD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AAClD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,OAAO;AACP,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,GAAG,IAAI,cAAc,CAAC;AAC5B,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,OAAO;AACP,MAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxG,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC;AAClB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;AAClB,MAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACpE,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACpH,GAAG;AACH,EAAE,GAAG,IAAI,IAAI,CAAC;AACd,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACzEA,cAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACvE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACzB,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC/C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;AACjC,IAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAC9C,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;AACpD,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/D,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB;AACjD,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;AACjE,IAAI,aAAa,GAAG,YAAY,KAAK,KAAK;AAC1C,IAAI,mBAAmB,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;AAC7F,IAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB;AAChD,IAAI,gBAAgB,GAAG,aAAa,IAAI,mBAAmB,IAAI,iBAAiB;AAChF,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;AAC1C,IAAI,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/B,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrC,EAAE,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;AACnG,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC;AAC7B,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC;AACzE,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,eAAe,CAAC;AACzD,GAAG;AACH,EAAE,IAAI,gBAAgB,EAAE;AACxB,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACxQ,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,GAAG,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;AAC1D,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;AAC9B,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,UAAU,GAAG,IAAI,qBAAqB,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5F,SAAS,MAAM;AACf,UAAU,IAAI,IAAI,GAAG,WAAW,CAAC;AACjC,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACrC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5B,cAAc,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,cAAc,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7F,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,YAAY,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACnF,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,GAAG,IAAI,sBAAsB,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;AACtD,KAAK;AACL,IAAI,IAAI,iBAAiB,IAAI,KAAK,EAAE;AACpC,MAAM,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACzD,KAAK,MAAM;AACX,MAAM,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AAC3C,MAAM,IAAI,mBAAmB,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AACzD,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC1C,QAAQ,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrF,OAAO;AACP,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,UAAU,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAC7D,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;AACnD,UAAU,IAAI,kBAAkB,GAAG,cAAc,CAAC;AAClD,UAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACtE,UAAU,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC5C,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,UAAU,GAAG,GAAG,EAAE,CAAC;AACnB,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,YAAY,GAAG,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,qCAAqC,IAAI,mBAAmB,CAAC,GAAG,OAAO,CAAC;AAClQ,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;AACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,GAAG,IAAI,mCAAmC,CAAC;AAC3D,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,uCAAuC,CAAC;AAC/D,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,cAAc,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACxH,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,WAAW;AACX,UAAU,IAAI,KAAK,GAAG,GAAG,CAAC;AAC1B,UAAU,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACjC,UAAU,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAClD;AACA,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1B,cAAc,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACvE,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC5E,aAAa;AACb,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC5H,WAAW;AACX,UAAU,cAAc,GAAG,kBAAkB,CAAC;AAC9C,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,UAAU,CAAC;AAC9B,WAAW;AACX,SAAS;AACT,OAAO,MAAM,IAAI,mBAAmB,EAAE;AACtC,QAAQ,IAAI,iBAAiB,IAAI,SAAS,EAAE;AAC5C,UAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC;AACpD,UAAU,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AAC/C,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AACtD,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;AACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;AACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACzE,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,uHAAuH,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;AACnO,UAAU,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AAC/D,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC;AACpC,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB,CAAC;AACnE,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB,CAAC;AACzE,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxI,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AAC7C,MAAM,cAAc,IAAI,GAAG,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAC9D,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC;AAC3B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACzC,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACvD,YAAY,SAAS,GAAG,KAAK,GAAG,KAAK;AACrC,YAAY,WAAW,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;AACrE,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAC/C,UAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1F,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5F,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC3E,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACpE,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;AACrC,WAAW,MAAM;AACjB,YAAY,IAAI,QAAQ,GAAG,SAAS,CAAC;AACrC,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC;AACtE,WAAW;AACX,UAAU,IAAI,WAAW,EAAE;AAC3B,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACvC,WAAW,MAAM;AACjB,YAAY,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;AAC9D,cAAc,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC/D,cAAc,IAAI,cAAc,EAAE;AAClC,gBAAgB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACxI,eAAe;AACf,cAAc,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,YAAY,CAAC;AAC1D,cAAc,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;AAClD,gBAAgB,kBAAkB,GAAG,cAAc;AACnD,gBAAgB,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AACtE,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtG,eAAe;AACf,cAAc,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC;AAC9D,cAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,cAAc,GAAG,GAAG,EAAE,CAAC;AACvB,cAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC7C,gBAAgB,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;AACpP,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAChD,kBAAkB,GAAG,IAAI,gBAAgB,CAAC;AAC1C,kBAAkB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACtD,oBAAoB,GAAG,IAAI,wBAAwB,CAAC;AACpD,mBAAmB,MAAM;AACzB,oBAAoB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC9F,mBAAmB;AACnB,kBAAkB,GAAG,IAAI,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACrC,kBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3J,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,MAAM,CAAC;AAC9B,eAAe;AACf,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9B,cAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,cAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AACtD;AACA,gBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;AAC9B,kBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3E,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAChF,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAChI,eAAe;AACf,cAAc,cAAc,GAAG,kBAAkB,CAAC;AAClD,cAAc,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AAC/C,cAAc,GAAG,IAAI,YAAY,CAAC;AAClC,aAAa,MAAM;AACnB,cAAc,IAAI,aAAa,EAAE;AACjC,gBAAgB,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AACjE,gBAAgB,IAAI,cAAc,EAAE;AACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1I,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,oBAAoB,CAAC;AACpE,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAChE,gBAAgB,IAAI,cAAc,EAAE;AACpC,kBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1I,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,OAAO,CAAC;AAC/B,eAAe;AACf,aAAa;AACb,YAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;AACzC,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACjD,UAAU,cAAc,IAAI,GAAG,CAAC;AAChC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC;AAC9B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7B,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAC7I,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,UAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClG,UAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC5G,UAAU,IAAI,cAAc,EAAE;AAC9B,YAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAC9Q,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AACrF,UAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxF,UAAU,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AAC3C,UAAU,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AACtC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AAC3D,YAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AACjF,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACtF,WAAW;AACX,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW,CAAC;AACzD,WAAW;AACX,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC;AACnD,YAAY,cAAc,IAAI,GAAG,CAAC;AAClC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC7UA,iBAAc,GAAG,SAAS,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC1E,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,EAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACvC,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC;AACzC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AAChJ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;AACjC,IAAI,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;AACvC,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;AAC3B,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI;AACzB,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI;AACrB,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO;AAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AACjD,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ;AACnC,MAAM,eAAe,GAAG,gBAAgB,GAAG,IAAI;AAC/C,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;AAC5C,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;AACjC,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,gBAAgB,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AACxQ,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AAC/D,KAAK;AACL,IAAI,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC;AACrD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;AACrD,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAChF,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,gBAAgB,IAAI,EAAE,CAAC,GAAG,mBAAmB,IAAI,IAAI,CAAC,GAAG,oBAAoB,CAAC;AACvM,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,eAAe,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,YAAY,CAAC,GAAG,OAAO,CAAC;AACxO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,kCAAkC,IAAI,YAAY,CAAC,GAAG,oBAAoB,CAAC;AAC1F,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,IAAI,8EAA8E,CAAC;AAC1F,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,uCAAuC,CAAC;AACvD,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,4CAA4C,CAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe,CAAC;AACxE,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC/EA,YAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACrE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CACxC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAE9G,GAEG;AACH,EAAE,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AACjC,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;AACnH,MAAM,IAAI,SAAS,GAAG,EAAE,CAAC;AACzB,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC;AACzB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9B,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,EAAE,GAAG,EAAE,EAAE;AACxB,UAAU,SAAS,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACpC,UAAU,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,UAAU,IAAI,EAAE,YAAY,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC1L,YAAY,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACpD,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE;AACnC,IAAI,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;AACxC,MAAM,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY;AACzE,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7C,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5C,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC;AAChD,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,yCAAyC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC;AACrK,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC;AAC7L,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAClH,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;AACpD,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,QAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC/C,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;AAC7B,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,EAAE,EAAE;AACpB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC5D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;AACrI,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;AAC5C,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,aAAa,CAAC;AACxJ,SAAS;AACT,QAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AAC1C,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAChD;AACA,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,YAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AAC1E,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AAC1H,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,CAAC;AAC5B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AAC3B,UAAU,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;AAC1D,UAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAC/D,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC5C,UAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAClG,UAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACzC,YAAY,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;AAChP,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC5C,cAAc,GAAG,IAAI,gBAAgB,CAAC;AACtC,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAClD,gBAAgB,GAAG,IAAI,wBAAwB,CAAC;AAChD,eAAe,MAAM;AACrB,gBAAgB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC1F,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,cAAc,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACvJ,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW,MAAM;AACjB,YAAY,GAAG,IAAI,MAAM,CAAC;AAC1B,WAAW;AACX,UAAU,GAAG,IAAI,yFAAyF,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AAC/I,SAAS;AACT,QAAQ,GAAG,IAAI,YAAY,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC;AAC9K,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAClH,SAAS;AACT,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACvC,UAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;AAC9O,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC1C,YAAY,GAAG,IAAI,gBAAgB,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,GAAG,IAAI,wBAAwB,CAAC;AAC9C,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AACxF,aAAa;AACb,YAAY,GAAG,IAAI,KAAK,CAAC;AACzB,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACrJ,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,MAAM,CAAC;AACxB,SAAS;AACT,QAAQ,GAAG,IAAI,kFAAkF,CAAC;AAClG,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,IAAI,GAAG,SAAS,CAAC;AAC7B,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,IAAI,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,UAAU,OAAO,EAAE,GAAG,EAAE,EAAE;AAC1B,YAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACzD,cAAc,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACnE,cAAc,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChD,cAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpG,aAAa;AACb,YAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB,CAAC;AAC7D,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC;AACtI,aAAa;AACb,YAAY,GAAG,IAAI,mBAAmB,CAAC;AACvC,YAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AAC3C,cAAc,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC;AAClP,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAC9C,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;AACxC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACpD,kBAAkB,GAAG,IAAI,wBAAwB,CAAC;AAClD,iBAAiB,MAAM;AACvB,kBAAkB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5F,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,KAAK,CAAC;AAC7B,eAAe;AACf,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACzJ,eAAe;AACf,cAAc,GAAG,IAAI,KAAK,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,GAAG,IAAI,MAAM,CAAC;AAC5B,aAAa;AACb,YAAY,GAAG,IAAI,gFAAgF,CAAC;AACpG,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACrC,GAAG,MAAM,IAAI,aAAa,EAAE;AAC5B,IAAI,GAAG,IAAI,cAAc,CAAC;AAC1B,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;AC5QA,eAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACxE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC7D,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,QAAQ,IAAI,YAAY,CAAC,GAAG,gBAAgB,IAAI,YAAY,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,mBAAmB,IAAI,MAAM,CAAC,GAAG,mBAAmB,CAAC;AACtO,KAAK;AACL,IAAI,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,MAAM,CAAC,GAAG,4BAA4B,CAAC;AAC1F,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;AAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,KAAK,YAAY,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAChK,MAAM,GAAG,IAAI,sDAAsD,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,+BAA+B,CAAC;AAC5J,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,wDAAwD,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;AAC1F,MAAM,IAAI,OAAO,GAAG,eAAe,IAAI,YAAY,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAChE,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC;AAC3G,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,GAAG,IAAI,uDAAuD,CAAC;AACvE,OAAO;AACP,MAAM,GAAG,IAAI,iDAAiD,IAAI,MAAM,CAAC,GAAG,qEAAqE,CAAC;AAClJ,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,GAAG,IAAI,OAAO,CAAC;AACrB,KAAK;AACL,IAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC1C,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,4BAA4B,CAAC;AACxM,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,uGAAuG,CAAC;AACvH,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,cAAc,CAAC;AAC9B,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC,CAAC;AACnD,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AAC1G,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;ACnFA;AACA,SAAc,GAAG;AACjB,EAAE,MAAM,EAAEb,GAAgB;AAC1B,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,KAAK,EAAEa,KAAkB;AAC3B,EAAE,UAAU,EAAEC,OAAoB;AAClC,EAAE,KAAK,EAAEC,MAAkB;AAC3B,EAAE,QAAQ,EAAEC,QAAqB;AACjC,EAAE,YAAY,EAAEC,YAAyB;AACzC,EAAE,MAAM,EAAEC,KAAiB;AAC3B,EAAE,MAAM,EAAEC,MAAmB;AAC7B,EAAE,IAAI,EAAEC,GAAe;AACvB,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,OAAO,EAAEC,MAAmB;AAC9B,EAAE,OAAO,EAAEA,MAAmB;AAC9B,EAAE,QAAQ,EAAEC,WAAwB;AACpC,EAAE,QAAQ,EAAEA,WAAwB;AACpC,EAAE,SAAS,EAAEC,YAAyB;AACtC,EAAE,SAAS,EAAEA,YAAyB;AACtC,EAAE,aAAa,EAAEC,gBAA6B;AAC9C,EAAE,aAAa,EAAEA,gBAA6B;AAC9C,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,GAAG,EAAEC,GAAgB;AACvB,EAAE,KAAK,EAAEC,KAAkB;AAC3B,EAAE,OAAO,EAAEC,OAAoB;AAC/B,EAAE,UAAU,EAAEC,UAAuB;AACrC,EAAE,aAAa,EAAEC,aAA0B;AAC3C,EAAE,QAAQ,EAAEC,QAAqB;AACjC,EAAE,WAAW,EAAEC,WAAwB;AACvC,EAAE,QAAQ,EAAEC,QAAqB;AACjC,CAAC;;AC9BD,IACIC,QAAM,GAAGpC,IAAiB,CAAC,MAAM,CAAC;AACtC;AACA,SAAc,GAAG,SAAS,KAAK,GAAG;AAClC,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE;AAClD,eAAe,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;AAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;AAChE,IAAI,EAAE,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;AAC7E,IAAI,EAAE,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe;AAC5F,eAAe,EAAE,YAAY,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE;AAClF,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;AAClF,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACnC,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;AACtD,IAAI,aAAa,EAAE,SAAS,EAAE,aAAa;AAC3C,IAAI,UAAU,EAAE,UAAU,EAAE,WAAW;AACvC,IAAI,kBAAkB,EAAE,iBAAiB;AACzC,IAAI,iBAAiB,EAAE,MAAM,EAAE,MAAM;AACrC,GAAG,CAAC;AACJ,EAAE,IAAI,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACtF,EAAE,KAAK,CAAC,GAAG,GAAGoC,QAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,EAAE,KAAK,CAAC,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACjC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;AACrD,MAAM,IAAI,YAAY,CAAC;AACvB,MAAM,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACtC,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,OAAO,GAAG,GAAG,CAAC;AACtB,QAAQ,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AACtC,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,IAAI,EAAEC,KAAW,CAAC,OAAO,CAAC;AAClC,QAAQ,UAAU,EAAE,YAAY;AAChC,OAAO,CAAC;AACR,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG;AACzB,MAAM,OAAO,EAAE,UAAU;AACzB,MAAM,IAAI,EAAEA,KAAW,CAAC,QAAQ;AAChC,KAAK,CAAC;AACN;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACpD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,KAAK,CAAC,QAAQ,GAAGD,QAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;;AC/DD,IAAI,QAAQ,GAAG;AACf,EAAE,YAAY;AACd,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,iBAAiB;AACnB,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,UAAU;AACZ,EAAE,sBAAsB;AACxB,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,CAAC,CAAC;AACF;AACA,QAAc,GAAG,UAAU,UAAU,EAAE,oBAAoB,EAAE;AAC7D,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC;AAC9B,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC;AACA,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACjC,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG;AACxB,UAAU,KAAK,EAAE;AACjB,YAAY,MAAM;AAClB,YAAY,EAAE,IAAI,EAAE,gFAAgF,EAAE;AACtG,WAAW;AACX,SAAS,CAAC;AACV,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;;AC9CD,IAAIE,iBAAe,GAAGtC,aAA0B,CAAC,UAAU,CAAC;AAC5D;AACA,SAAc,GAAG,YAAY,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9C;AACA;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU;AAChD,IAAI,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC/D;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;AACjC,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,IAAI,IAAI,GAAG,SAAS,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY;AACpD,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7D,IAAI,OAAO,SAAS,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1D,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,CAAC,CAAC,IAAI;AACV,MAAM,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC,MAAM,QAAQ;AACd,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX;AACA;AACA,EAAE,SAAS,gBAAgB,CAAC,GAAG,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC9C,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;AAC9D,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC;AAChC,GAAG;AACH;AACA;AACA,EAAE,SAAS,aAAa,CAAC,SAAS,EAAE;AACpC,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;AAC5C,IAAI,MAAM,CAAC,EAAE;AACb,MAAM,IAAI,CAAC,YAAYsC,iBAAe,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL;AACA;AACA,IAAI,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAClC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC;AAChC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,CAAC,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;AAClH;AACA,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,QAAQ,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/E,QAAQ,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACzD,OAAO;AACP;AACA,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACzB,UAAU,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;AACxD,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACvE,WAAW,CAAC,CAAC;AACb,SAAS;AACT,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW;AACzB,QAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AACxC,OAAO,CAAC,CAAC;AACT;AACA,MAAM,SAAS,aAAa,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACzC,OAAO;AACP;AACA,MAAM,SAAS,KAAK,CAAC,GAAG,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACrD,OAAO;AACP,KAAK;AACL,GAAG;AACH;;ACxFA,UAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClE,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzD,EAAE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC;AACxC,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC9B,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;AACzD,IAAI,YAAY,CAAC;AACjB,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9G,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,YAAY,GAAG,OAAO,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI;AAClB,IAAI,WAAW,GAAG,YAAY,GAAG,IAAI;AACrC,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU;AAC5B,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;AAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAI,aAAa,GAAG,iBAAiB,GAAG,IAAI,CAAC;AAC7C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;AAC/C,IAAI,GAAG,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,oBAAoB,IAAI,QAAQ,CAAC,GAAG,sBAAsB,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,YAAY,CAAC;AACzJ,GAAG,MAAM;AACT,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO;AAC/B,IAAI,YAAY,GAAG,iBAAiB,GAAG,WAAW,CAAC;AACnD,IAAI,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;AACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,aAAa,GAAG,SAAS;AAC3C,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;AACnB,IAAI,QAAQ,GAAG,SAAS,GAAG,IAAI;AAC/B,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC,EAAE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClF,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE;AAC5B,IAAI,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,UAAU,CAAC;AACzC,GAAG;AACH,EAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC;AAC9D,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAI,cAAc,IAAI,GAAG,CAAC;AAC1B,IAAI,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;AAC7F,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,cAAc,IAAI,GAAG,CAAC;AAC5B,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAC1H,KAAK;AACL,GAAG;AACH,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,GAAG,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAClD,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACtE,KAAK;AACL,GAAG,MAAM,IAAI,MAAM,EAAE;AACrB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,IAAI,cAAc,GAAG,EAAE,CAAC;AAC5B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AAChB,IAAI,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACzC,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;AACxC,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;AACzC,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAC7E,IAAI,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;AACzD,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC;AACzB,GAAG,MAAM;AACT,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,IAAI,IAAI,aAAa,CAAC,GAAG,SAAS,CAAC;AAC9C,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAC5C,MAAM,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;AACrG,KAAK;AACL,IAAI,GAAG,IAAI,uBAAuB,CAAC;AACnC,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;AAC9B,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;AAC/E,MAAM,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC;AACvF,IAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,iBAAiB,CAAC;AACrF,IAAI,IAAI,oBAAoB,GAAG,GAAG,CAAC;AACnC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAChC,MAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC;AACpC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,GAAG,IAAI,QAAQ,CAAC;AACxB,OAAO;AACP,MAAM,GAAG,IAAI,EAAE,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;AAC1C,QAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,oBAAoB,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,8CAA8C,IAAI,SAAS,CAAC,GAAG,+BAA+B,CAAC;AAC5O,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAClG,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE;AACvB,IAAI,GAAG,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI,CAAC;AACjH,GAAG;AACH,EAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,CAAC;AAC/B,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,eAAe,CAAC;AAC7B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,GAAG,IAAI,QAAQ,CAAC;AACpB,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;AACnC,MAAM,GAAG,IAAI,IAAI,CAAC;AAClB,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,GAAG,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,IAAI,MAAM,CAAC;AAClB,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,MAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC9O,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACtC,QAAQ,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;AAC3F,OAAO;AACP,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACjJ,OAAO;AACP,MAAM,GAAG,IAAI,KAAK,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;AACpB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC5C;AACA,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;AACpB,QAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC;AACjE,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB,CAAC;AACtE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,eAAe,GAAG,GAAG,CAAC;AAC9B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;AACpC,UAAU,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,OAAO,CAAC;AAC/X,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACtH,WAAW;AACX,UAAU,GAAG,IAAI,KAAK,CAAC;AACvB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AACpC,UAAU,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AAC/C,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,eAAe,CAAC,GAAG,sBAAsB,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,OAAO,CAAC;AACnc,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAY,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACtH,WAAW;AACX,UAAU,GAAG,IAAI,OAAO,CAAC;AACzB,SAAS;AACT,OAAO;AACP,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,GAAG,IAAI,iBAAiB,CAAC;AAC/B,MAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;AACrC,QAAQ,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChP,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACxC,UAAU,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAAC;AAC7F,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;AACnJ,SAAS;AACT,QAAQ,GAAG,IAAI,KAAK,CAAC;AACrB,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,MAAM,CAAC;AACtB,OAAO;AACP,MAAM,GAAG,IAAI,8EAA8E,CAAC;AAC5F,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;AAC9C;AACA,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AACtB,UAAU,GAAG,IAAI,uCAAuC,CAAC;AACzD,SAAS,MAAM;AACf,UAAU,GAAG,IAAI,4CAA4C,CAAC;AAC9D,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,QAAQ,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC;AAC7C,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,qBAAqB,IAAI,SAAS,CAAC,GAAG,uCAAuC,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,SAAS,CAAC,GAAG,wCAAwC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC;AACtf,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,UAAU,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;AACpH,SAAS;AACT,QAAQ,GAAG,IAAI,cAAc,IAAI,eAAe,CAAC,GAAG,KAAK,CAAC;AAC1D,OAAO;AACP,KAAK;AACL,IAAI,GAAG,IAAI,KAAK,CAAC;AACjB,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,IAAI,UAAU,CAAC;AACxB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/NA,qBAAc,GAAG;AACjB,EAAE,GAAG,EAAE,2EAA2E;AAClF,EAAE,WAAW,EAAE;AACf,IAAI,WAAW,EAAEC,UAAU,CAAC,WAAW,CAAC,WAAW;AACnD,GAAG;AACH,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,YAAY,EAAE;AAChB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC;AACxB,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC;AACvB,IAAI,UAAU,EAAE,CAAC,QAAQ,CAAC;AAC1B,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEA,UAAU,CAAC,UAAU,CAAC,IAAI;AACpC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC7B,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AACjC,IAAI,YAAY,EAAE;AAClB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAChC,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5B,IAAI,MAAM,EAAE;AACZ,MAAM,KAAK,EAAE;AACb,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;AACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;AACvB,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AClCD,IAAIC,YAAU,GAAG,wBAAwB,CAAC;AACK;AACO;AACtD;AACA,WAAc,GAAG;AACjB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAE,GAAG,EAAE,UAAU;AACjB,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,QAAQ,EAAE,eAAe;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;AACzC;AACA;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,qBAAqB,CAAC,CAAC;AAClE;AACA,EAAE,IAAI,CAACA,YAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,4BAA4B,CAAC,CAAC;AACzE;AACA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C;AACA,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACjC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;AAC1C,QAAQ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAC3C,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAChD,QAAQ,UAAU,GAAG;AACrB,UAAU,KAAK,EAAE;AACjB,YAAY,UAAU;AACtB,YAAY,EAAE,MAAM,EAAE,gFAAgF,EAAE;AACxG,WAAW;AACX,SAAS,CAAC;AACV,OAAO;AACP,MAAM,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjE,KAAK;AACL,GAAG;AACH;AACA,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACtD;AACA;AACA,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;AACnD,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;AAC/B,QAAQ,SAAS,GAAG,EAAE,CAAC;AACvB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAChD,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG;AACf,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,IAAI,EAAEC,MAAc;AAC1B,MAAM,UAAU,EAAE,UAAU,CAAC,UAAU;AACvC,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;AACxE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;AACvC,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;AACjD,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;AAChC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AACvD,qCAAqC,IAAI,CAAC,OAAO,CAACC,iBAAgB,EAAE,IAAI,CAAC,CAAC;AAC1E;AACA,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI,CAAC;AACjC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACpC,EAAE,IAAI,UAAU;AAChB,IAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3F;AACA,IAAI,OAAO,KAAK,CAAC;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIA,OAAc,GAAG,GAAG,CAAC;AACrB;AACA,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAGjC,UAAQ,CAAC;AAClC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAGkC,SAAO,CAAC;AAChC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;AAC5C,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;AAC9C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;AAC1C,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;AACpC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC;AACA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;AACtC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC;AACA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG3C,KAA0B,CAAC;AACf;AACzC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG4C,OAAa,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC,SAAS,CAAC,UAAU,GAAGA,OAAa,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC,SAAS,CAAC,aAAa,GAAGA,OAAa,CAAC,MAAM,CAAC;AACnD,GAAG,CAAC,SAAS,CAAC,eAAe,GAAGA,OAAa,CAAC,QAAQ,CAAC;AACvD;AACsD;AACtD,GAAG,CAAC,eAAe,GAAGrC,aAAY,CAAC,UAAU,CAAC;AAC9C,GAAG,CAAC,eAAe,GAAGA,aAAY,CAAC,UAAU,CAAC;AAC9C,GAAG,CAAC,eAAe,GAAGsC,IAAe,CAAC;AACtC;AACA,IAAI,cAAc,GAAG,wCAAwC,CAAC;AAC9D;AACA,IAAI,mBAAmB,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACjG,IAAI,iBAAiB,GAAG,CAAC,aAAa,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,CAAC,IAAI,EAAE;AACnB,EAAE,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACnD,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5C,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,QAAQ,GAAGC,SAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAIC,KAAK,CAAC;AACxC,EAAE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;AACpD,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AAC3E,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,IAAI,CAAC,SAAS,GAAGrC,uBAAe,CAAC;AACrE,EAAE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5C,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC9C,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,UAAQ,CAAC,YAAY,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;AACvC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;AAChF,GAAG,MAAM;AACT,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAClD,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChD,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkC,SAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AAChC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5D,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE;AACxD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACrG,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,EAAE,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ;AAC/C,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,EAAE,GAAG,GAAGlG,SAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACvC,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7E,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;AACpD,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AACjD,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,EAAE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ;AACzD,IAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAChD,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACnE,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;AACjC,IAAI,IAAI,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5D,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvE,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ;AAClD,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;AACvD,8BAA8B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC5D,gCAAgC,cAAc;AAC9C,gCAAgC,SAAS,CAAC;AAC1C,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAChC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,EAAE,QAAQ,OAAO,SAAS;AAC1B,IAAI,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzE,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpD,IAAI,KAAK,WAAW,EAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9D,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;AACvC,EAAE,IAAI,GAAG,GAAGA,SAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC3D,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;AAC3B,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI;AACvB,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B,IAAI,IAAI,CAAC,GAAGuG,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI9C,UAAY,CAAC;AAC5C,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,QAAQ,EAAE,CAAC;AACjB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,MAAM,GAAGzD,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACvC,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,YAAY,EAAE;AACpC,EAAE,IAAI,YAAY,YAAY,MAAM,EAAE;AACtC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzD,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,OAAO,YAAY;AAC7B,IAAI,KAAK,WAAW;AACpB,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1B,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACxD,MAAM,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACtC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,MAAM,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AACxE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9B,OAAO;AACP,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;AACjD,EAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC9B,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;AACnE,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AAC7D,IAAI,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC1D,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACvC,EAAE,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACxD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,EAAE,OAAO,MAAM,CAAC;AAC5B;AACA,EAAE,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC;AAC1E;AACA,EAAE,IAAI,EAAE,GAAGA,SAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;AAC5E,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,YAAY,IAAI,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,IAAIA,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxF,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC;AACA,EAAE,IAAI,SAAS,GAAGA,SAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD;AACA,EAAE,IAAI,SAAS,GAAG,IAAIyD,UAAY,CAAC;AACnC,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,IAAI,EAAE,IAAI;AACd,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAClE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC;AACA,EAAE,IAAI,YAAY,IAAI,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvE;AACA,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE;AAC3B,IAAI,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC;AACtC,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;AACnD,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;AACxC,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B;AACA,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE;AACtB,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,EAAE,CAAC,GAAG8C,SAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE;AACpF,EAAE,MAAM,CAAC,EAAE;AACX,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC;AAC9B,IAAI,MAAM,CAAC,CAAC;AACZ,GAAG;AACH,UAAU;AACV,IAAI,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AACjD,GAAG;AACH;AACA,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC9B,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX;AACA;AACA;AACA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,QAAQ,IAAI,CAAC,QAAQ;AACvB,IAAI,KAAK,MAAM,EAAE,OAAO,WAAW,CAAC;AACpC,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM,CAAC;AAC7B,IAAI,SAAS,OAAO,OAAO,CAAC;AAC5B,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACrE,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AACD;AACA;AACA,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAClE,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AACxD,IAAI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACvD,EAAE,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;AACjC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,EAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;AACjC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,WAAW,CAAC;AAClC,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAC7E,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AACzE;AACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;AACtE,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,EAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7D,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC/B,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AACxB,IAAI,WAAW,GAAG,UAA2B,CAAC;AAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,OAAO;AACxC,EAAE,IAAI,UAAU,GAAG,UAA2C,CAAC;AAC/D,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAGH,IAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpF,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,cAAc,CAAC;AAC/D,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACvC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO;AAC3B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC9D,OAAO,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1E,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjC,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACxC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE;AAC/B,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACzC,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;AACzE,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE;AACjD,IAAI,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACjC,EAAE,IAAI,MAAM,KAAK,KAAK,EAAE;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,GAAG,MAAM;AACT,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;AAC/C,IAAI,IAAI,EAAE,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;AACjF,MAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,IAAI,GAAG;;mBCnfO;QAEjBI,KAAG,OAAOC;eAAiB;;;;+BAGED,YAAA;;;;kCAIV;;;;;;;AAKrB,QAAA,yBAAA;;AAED;;;;;;;AASH,MAAM,4DAAN;;;YAIa;;;iBAGJ;;;;;;AAAA;;;;;;;;;;;;;;;;;;;oBAkCG;;;sBAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2CA;;;;;AAON,kBAAQ;;;;;;;;;;;;;;;;;;;;;;sBA0BA;;kBAEF;;;;;;;;;;;;sDC5IF;;;;;AAOR,cAAU,qDAAV;;;;8CAMkB,kBAAA;;;;;;mCAamB;;;;;;;;;;;;;kBAYvB,0GAAA;;;;;AAMV,sCAAA;;;AAKF,QAAA,YAAY,WAAZ;QACA,UAAA,EAAY;;;;aAEL;;;;sBAIc,UAAA,EAExB,SAFwB;;;;;;;;;;;;;;;AC/DzB;;AACA,IAAI,IAAI,GAAA,CAAA,EAAA,aAAA,UAAA,iBAAA,SAAA,UAAR;;IACE;qFACG;WACa;;AACZ,IAAA,YAAA;;;;;;;;;;;;;;YAgBW;;;;QAEb,MAAM;;;AAGR,+CAA2C,WAAA,KAAA,IAA3C;;;;QAKE,aAAaE,wBAAI,CAAC,OAAD;;YAKf,qBAAqB,OAAO,KAAK;yBAAA;;;;;AAenC,4BAAoB,GAAA,CAAA,EAAA,+BAAA,MAA+B,IAA/B,IAA+B,EAAA,KAAA,KAAA,CAA/B,GAA+B,EAA/B,GAAmC,EAAvD;uBACa;;;;;KAhBsB;;;wBAyB3B,IAAI,CAAC,OAAL,CAAa,QAAb,CAAsB,SAAS,IAAI;;;iBAEtC;;;wCAI2B;;8BAEV,YAAA,SAAA,MAAA;;;AACpB;AAEA,YAAA,IAAI,QAAJ,SAAA,OAAA,CAA6B,GAA7B,GAAA,0BAAA;;;;KApCiC;;;2BA4C5B,YAAA;;;;;;+BAKI;;;;uCAM+B;;;;;;;;;;;;;4BAmBhC,GAAG,IAAI,OAAJ,CAAY,OAAZ;gDAGN;;;+BAIY,SAAS;;;gCAKJ;;;;AAKpB,qCAAA;;+EAOM,QAAQ,CAAR,GAAY,WAAZ;;;;;;AAMV;AACA,iCAAA;;OAzGmC;;oBAiH7B,qBAAqB;iBACtB;KAlH8B;;;AAuHrC,0BAAsB,CAAA,mBAAtB;4EAGoB,gBAAA;KA1HiB;;;;AAkIjC,uBAAiB,WAAmC,WAChD,CADJ,EACO,OAAO,IAAI,QAAJ,CAAa,UAApB;KAnI0B;;AAwInC;;;QACA,qDAAU,QAAV;0BACgB;;;;;;;;;;;SAkBf,OAAA;;;;;;;eAOO;AACX;;6CAcO,iBAAW;;kBAEF;;AAIf,kCAAA;kBACY;QACV,IAAI,KAAA,IAAJ,IAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAA,IAAI;;;;;;;;;;;;kDAwBO;;4BAEO;;wCACU;YAC1B;;;;;;;;AAOL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/ainsley.production.js b/dist/ainsley.production.js index be6eaa2..bb83384 100644 --- a/dist/ainsley.production.js +++ b/dist/ainsley.production.js @@ -1,5 +1,5 @@ /*! ainsley MIT @tbjgolden */ -var Ainsley=function(r,e){"use strict";function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var t=a(e);const i=r=>!(null===r||"object"!=typeof r||Array.isArray(r)),n=r=>{let e=[[]],a=0;for(;ae.map(e=>e.concat([r])));return e},o="\\{[a-zA-Z0-9_-]+\\}",s={addVariationToSelector:(r,e)=>e+"-"+r,addPropertyToSelector:(r,e)=>r+e.toLowerCase(),addValueToSelector:(r,e)=>r+e.toUpperCase(),abbreviateProperty:r=>[r.split("-").map(r=>r.charAt(0)).join("").toLowerCase(),r.toLowerCase()]},f=/\{[a-zA-Z0-9_-]+\}/g,u=(r,e)=>{let a="",t=[];for(let i=0;i`${r[0]}:${r[1]}`).join(";")}}`}t=n.t}for(const r of t){r[1].startsWith("@")&&(a+="}")}return a},d=(r,e,a)=>{var t;const i={...a};if(void 0!==r.variables){const e=r.variables;Object.keys(e).map(r=>{var t;const n=h(r),o=n[0],s=n[1];0===o||1===o&&void 0===i[s]?i[s]=e[r]:2===o&&(i[s]={...null!==(t=a[s])&&void 0!==t?t:{},...e[r]})})}const o=void 0===r.children?[]:l(r.children,e,i);return n((null!==(t=r.variations)&&void 0!==t?t:[]).map(r=>[["",""]].concat(r))).flatMap(r=>o.map(e=>({t:[...r,...e.t],i:e.i})))},l=(r,e,a)=>r.flatMap(r=>"string"==typeof r?[{t:[],i:r}]:Array.isArray(r)?Array.isArray(r[1])?v(r,e,a):c(r,e):d(r,e,a)),v=(r,e,a)=>{const t=r[0],i=r[1],o=[];return i.map(r=>{var e,a;const t=null!==(e=r[0].match(f))&&void 0!==e?e:[],i=null!==(a=(""+r[1]).match(f))&&void 0!==a?a:[];t.map(r=>o.push([r,0])),i.map(r=>o.push([r,1]))}),n(o.map(r=>{const e=r[0],t=r[1],i=e.slice(1,-1);return Object.keys(a[i]).map(r=>[e,r,a[i][r],t])})).map(r=>{let a=0,n=r[a];return{t:[],i:[r.reduce((r,a)=>0===a[3]?e.addPropertyToSelector(r,a[1]):e.addValueToSelector(r,a[1]),t),i.map(e=>{const t=e=>{for(;a{const a=r[1],t=e.abbreviateProperty(r[0]),i=t[0],n=t[1];return Object.keys(a).map(r=>({t:[],i:[e.addValueToSelector(e.addPropertyToSelector("",i),r),[[n,a[r]]]]}))},h=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]};var m=Function.prototype.toString,p=Object.create,y=Object.defineProperty,g=Object.getOwnPropertyDescriptor,E=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,w=Object.getPrototypeOf,F=Object.prototype,P=F.hasOwnProperty,$=F.propertyIsEnumerable,j="function"==typeof b,O="function"==typeof WeakMap,x=function(r,e){if(!r.constructor)return p(null);var a=r.constructor,t=r.__proto__||w(r);if(a===e.Object)return t===e.Object.prototype?{}:p(t);if(~m.call(a).indexOf("[native code]"))try{return new a}catch(r){}return p(t)},D=function(r,e,a,t){var i=x(r,e);for(var n in t.set(r,i),r)P.call(r,n)&&(i[n]=a(r[n],t));if(j){var o=b(r),s=o.length;if(s)for(var f=0,u=void 0;f1){e[0]=e[0].slice(0,-1);for(var t=e.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=c-h,O=Math.floor,x=String.fromCharCode;function D(r){throw new RangeError($[r])}function I(r,e){for(var a=[],t=r.length;t--;)a[t]=e(r[t]);return a}function S(r,e){var a=r.split("@"),t="";return a.length>1&&(t=a[0]+"@",r=a[1]),t+I((r=r.replace(P,".")).split("."),e).join(".")}function A(r){for(var e=[],a=0,t=r.length;a=55296&&i<=56319&&a>1,r+=O(r/e);r>j*m>>1;t+=c)r=O(r/j);return O(t+(j+1)*r/(r+p))},R=function(r){var e=[],a=r.length,t=0,i=E,n=g,o=r.lastIndexOf(b);o<0&&(o=0);for(var s=0;s=128&&D("not-basic"),e.push(r.charCodeAt(s));for(var f=o>0?o+1:0;f=a&&D("invalid-input");var p=_(r.charCodeAt(f++));(p>=c||p>O((v-t)/d))&&D("overflow"),t+=p*d;var y=l<=n?h:l>=n+m?m:l-n;if(pO(v/w)&&D("overflow"),d*=w}var F=e.length+1;n=z(t-u,F,0==u),O(t/F)>v-i&&D("overflow"),i+=O(t/F),t%=F,e.splice(t++,0,i)}return String.fromCodePoint.apply(String,e)},N=function(r){var e=[],a=(r=A(r)).length,t=E,i=0,n=g,o=!0,s=!1,f=void 0;try{for(var u,d=r[Symbol.iterator]();!(o=(u=d.next()).done);o=!0){var l=u.value;l<128&&e.push(x(l))}}catch(r){s=!0,f=r}finally{try{!o&&d.return&&d.return()}finally{if(s)throw f}}var p=e.length,y=p;for(p&&e.push(b);y=t&&SO((v-i)/_)&&D("overflow"),i+=(w-t)*_,t=w;var R=!0,N=!1,V=void 0;try{for(var T,q=r[Symbol.iterator]();!(R=(T=q.next()).done);R=!0){var C=T.value;if(Cv&&D("overflow"),C==t){for(var M=i,B=c;;B+=c){var U=B<=n?h:B>=n+m?m:B-n;if(M>6|192).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase():"%"+(e>>12|224).toString(16).toUpperCase()+"%"+(e>>6&63|128).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase()}function B(r){for(var e="",a=0,t=r.length;a=194&&i<224){if(t-a>=6){var n=parseInt(r.substr(a+4,2),16);e+=String.fromCharCode((31&i)<<6|63&n)}else e+=r.substr(a,6);a+=6}else if(i>=224){if(t-a>=9){var o=parseInt(r.substr(a+4,2),16),s=parseInt(r.substr(a+7,2),16);e+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else e+=r.substr(a,9);a+=9}else e+=r.substr(a,3),a+=3}return e}function U(r,e){function a(r){var a=B(r);return a.match(e.UNRESERVED)?a:r}return r.scheme&&(r.scheme=(r.scheme+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_SCHEME,"")),void 0!==r.userinfo&&(r.userinfo=(r.userinfo+"").replace(e.PCT_ENCODED,a).replace(e.NOT_USERINFO,M).replace(e.PCT_ENCODED,i)),void 0!==r.host&&(r.host=(r.host+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_HOST,M).replace(e.PCT_ENCODED,i)),void 0!==r.path&&(r.path=(r.path+"").replace(e.PCT_ENCODED,a).replace(r.scheme?e.NOT_PATH:e.NOT_PATH_NOSCHEME,M).replace(e.PCT_ENCODED,i)),void 0!==r.query&&(r.query=(r.query+"").replace(e.PCT_ENCODED,a).replace(e.NOT_QUERY,M).replace(e.PCT_ENCODED,i)),void 0!==r.fragment&&(r.fragment=(r.fragment+"").replace(e.PCT_ENCODED,a).replace(e.NOT_FRAGMENT,M).replace(e.PCT_ENCODED,i)),r}function L(r){return r.replace(/^0*(.*)/,"$1")||"0"}function H(r,e){var a=r.match(e.IPV4ADDRESS)||[],t=d(a,2)[1];return t?t.split(".").map(L).join("."):r}function J(r,e){var a=r.match(e.IPV6ADDRESS)||[],t=d(a,3),i=t[1],n=t[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=d(o,2),f=s[0],u=s[1],l=u?u.split(":").map(L):[],v=f.split(":").map(L),c=e.IPV4ADDRESS.test(v[v.length-1]),h=c?7:8,m=v.length-h,p=Array(h),y=0;y1){var b=p.slice(0,g.index),w=p.slice(g.index+g.length);E=b.join(":")+"::"+w.join(":")}else E=p.join(":");return n&&(E+="%"+n),E}return r}var K=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Z=void 0==="".match(/(){0}/)[1];function Q(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a={},t=!1!==e.iri?u:f;"suffix"===e.reference&&(r=(e.scheme?e.scheme+":":"")+"//"+r);var i=r.match(K);if(i){Z?(a.scheme=i[1],a.userinfo=i[3],a.host=i[4],a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=i[7],a.fragment=i[8],isNaN(a.port)&&(a.port=i[5])):(a.scheme=i[1]||void 0,a.userinfo=-1!==r.indexOf("@")?i[3]:void 0,a.host=-1!==r.indexOf("//")?i[4]:void 0,a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=-1!==r.indexOf("?")?i[7]:void 0,a.fragment=-1!==r.indexOf("#")?i[8]:void 0,isNaN(a.port)&&(a.port=r.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),a.host&&(a.host=J(H(a.host,t),t)),a.reference=void 0!==a.scheme||void 0!==a.userinfo||void 0!==a.host||void 0!==a.port||a.path||void 0!==a.query?void 0===a.scheme?"relative":void 0===a.fragment?"absolute":"uri":"same-document",e.reference&&"suffix"!==e.reference&&e.reference!==a.reference&&(a.error=a.error||"URI is not a "+e.reference+" reference.");var n=C[(e.scheme||a.scheme||"").toLowerCase()];if(e.unicodeSupport||n&&n.unicodeSupport)U(a,t);else{if(a.host&&(e.domainHost||n&&n.domainHost))try{a.host=q.toASCII(a.host.replace(t.PCT_ENCODED,B).toLowerCase())}catch(r){a.error=a.error||"Host's domain name can not be converted to ASCII via punycode: "+r}U(a,f)}n&&n.parse&&n.parse(a,e)}else a.error=a.error||"URI can not be parsed.";return a}function W(r,e){var a=!1!==e.iri?u:f,t=[];return void 0!==r.userinfo&&(t.push(r.userinfo),t.push("@")),void 0!==r.host&&t.push(J(H(r.host+"",a),a).replace(a.IPV6ADDRESS,(function(r,e,a){return"["+e+(a?"%25"+a:"")+"]"}))),"number"!=typeof r.port&&"string"!=typeof r.port||(t.push(":"),t.push(r.port+"")),t.length?t.join(""):void 0}var G=/^\.\.?\//,Y=/^\/\.(\/|$)/,X=/^\/\.\.(\/|$)/,rr=/^\/?(?:.|\n)*?(?=\/|$)/;function er(r){for(var e=[];r.length;)if(r.match(G))r=r.replace(G,"");else if(r.match(Y))r=r.replace(Y,"/");else if(r.match(X))r=r.replace(X,"/"),e.pop();else if("."===r||".."===r)r="";else{var a=r.match(rr);if(!a)throw Error("Unexpected dot segment condition");var t=a[0];r=r.slice(t.length),e.push(t)}return e.join("")}function ar(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.iri?u:f,t=[],i=C[(e.scheme||r.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(r,e),r.host)if(a.IPV6ADDRESS.test(r.host));else if(e.domainHost||i&&i.domainHost)try{r.host=e.iri?q.toUnicode(r.host):q.toASCII(r.host.replace(a.PCT_ENCODED,B).toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to "+(e.iri?"Unicode":"ASCII")+" via punycode: "+a}U(r,a),"suffix"!==e.reference&&r.scheme&&(t.push(r.scheme),t.push(":"));var n=W(r,e);if(void 0!==n&&("suffix"!==e.reference&&t.push("//"),t.push(n),r.path&&"/"!==r.path.charAt(0)&&t.push("/")),void 0!==r.path){var o=r.path;e.absolutePath||i&&i.absolutePath||(o=er(o)),void 0===n&&(o=o.replace(/^\/\//,"/%2F")),t.push(o)}return void 0!==r.query&&(t.push("?"),t.push(r.query)),void 0!==r.fragment&&(t.push("#"),t.push(r.fragment)),t.join("")}function tr(r,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t={};return arguments[3]||(r=Q(ar(r,a),a),e=Q(ar(e,a),a)),!(a=a||{}).tolerant&&e.scheme?(t.scheme=e.scheme,t.userinfo=e.userinfo,t.host=e.host,t.port=e.port,t.path=er(e.path||""),t.query=e.query):(void 0!==e.userinfo||void 0!==e.host||void 0!==e.port?(t.userinfo=e.userinfo,t.host=e.host,t.port=e.port,t.path=er(e.path||""),t.query=e.query):(e.path?("/"===e.path.charAt(0)?t.path=er(e.path):(t.path=void 0===r.userinfo&&void 0===r.host&&void 0===r.port||r.path?r.path?r.path.slice(0,r.path.lastIndexOf("/")+1)+e.path:e.path:"/"+e.path,t.path=er(t.path)),t.query=e.query):(t.path=r.path,t.query=void 0!==e.query?e.query:r.query),t.userinfo=r.userinfo,t.host=r.host,t.port=r.port),t.scheme=r.scheme),t.fragment=e.fragment,t}function ir(r,e,a){var t=o({scheme:"null"},a);return ar(tr(Q(r,t),Q(e,t),t,!0),t)}function nr(r,e){return"string"==typeof r?r=ar(Q(r,e),e):"object"===t(r)&&(r=Q(ar(r,e),e)),r}function or(r,e,a){return"string"==typeof r?r=ar(Q(r,a),a):"object"===t(r)&&(r=ar(r,a)),"string"==typeof e?e=ar(Q(e,a),a):"object"===t(e)&&(e=ar(e,a)),r===e}function sr(r,e){return r&&(""+r).replace(e&&e.iri?u.ESCAPE:f.ESCAPE,M)}function fr(r,e){return r&&(""+r).replace(e&&e.iri?u.PCT_ENCODED:f.PCT_ENCODED,B)}var ur={scheme:"http",domainHost:!0,parse:function(r,e){return r.host||(r.error=r.error||"HTTP URIs must have a host."),r},serialize:function(r,e){return r.port!==("https"===(r.scheme+"").toLowerCase()?443:80)&&""!==r.port||(r.port=void 0),r.path||(r.path="/"),r}},dr={scheme:"https",domainHost:ur.domainHost,parse:ur.parse,serialize:ur.serialize};function lr(r){return"boolean"==typeof r.secure?r.secure:"wss"===(r.scheme+"").toLowerCase()}var vr={scheme:"ws",domainHost:!0,parse:function(r,e){var a=r;return a.secure=lr(a),a.resourceName=(a.path||"/")+(a.query?"?"+a.query:""),a.path=void 0,a.query=void 0,a},serialize:function(r,e){if(r.port!==(lr(r)?443:80)&&""!==r.port||(r.port=void 0),"boolean"==typeof r.secure&&(r.scheme=r.secure?"wss":"ws",r.secure=void 0),r.resourceName){var a=r.resourceName.split("?"),t=d(a,2),i=t[0],n=t[1];r.path=i&&"/"!==i?i:void 0,r.query=n,r.resourceName=void 0}return r.fragment=void 0,r}},cr={scheme:"wss",domainHost:vr.domainHost,parse:vr.parse,serialize:vr.serialize},hr={},mr="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",pr="[0-9A-Fa-f]",yr=a(a("%[EFef]"+pr+"%"+pr+pr+"%"+pr+pr)+"|"+a("%[89A-Fa-f]"+pr+"%"+pr+pr)+"|"+a("%"+pr+pr)),gr="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Er=e("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),br="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",wr=RegExp(mr,"g"),Fr=RegExp(yr,"g"),Pr=RegExp(e("[^]",gr,"[\\.]",'[\\"]',Er),"g"),$r=RegExp(e("[^]",mr,br),"g"),jr=$r;function Or(r){var e=B(r);return e.match(wr)?e:r}var xr={scheme:"mailto",parse:function(r,e){var a=r,t=a.to=a.path?a.path.split(","):[];if(a.path=void 0,a.query){for(var i=!1,n={},o=a.query.split("&"),s=0,f=o.length;s=55296&&e<=56319&&i=e)throw Error("Cannot access property/index "+t+" levels up, current level is "+e);return a[e-t]}if(t>e)throw Error("Cannot access data "+t+" levels up, current level is "+e);if(n="data"+(e-t||""),!i)return n}for(var s=n,f=i.split("/"),u=0;u=0?{index:t,compiling:!0}:(this._compilations[t=this._compilations.length]={schema:r,root:e,baseId:a},{index:t,compiling:!1})}function $r(r,e,a){var t=jr.call(this,r,e,a);t>=0&&this._compilations.splice(t,1)}function jr(r,e,a){for(var t=0;t%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Tr=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,qr=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Cr=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Mr=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Br=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Ur=Lr;function Lr(r){return T.copy(Lr[r="full"==r?"full":"fast"])}function Hr(r){var e=r.match(_r);if(!e)return!1;var a=+e[2],t=+e[3];return a>=1&&a<=12&&t>=1&&t<=(2==a&&function(r){return r%4==0&&(r%100!=0||r%400==0)}(+e[1])?29:kr[a])}function Jr(r,e){var a=r.match(zr);if(!a)return!1;var t=a[1],i=a[2],n=a[3];return(t<=23&&i<=59&&n<=59||23==t&&59==i&&60==n)&&(!e||a[5])}Lr.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":Vr,url:Tr,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:Rr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Wr,uuid:qr,"json-pointer":Cr,"json-pointer-uri-fragment":Mr,"relative-json-pointer":Br},Lr.full={date:Hr,time:Jr,"date-time":function(r){var e=r.split(Kr);return 2==e.length&&Hr(e[0])&&Jr(e[1],!0)},uri:function(r){return Zr.test(r)&&Nr.test(r)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":Vr,url:Tr,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:Rr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Wr,uuid:qr,"json-pointer":Cr,"json-pointer-uri-fragment":Mr,"relative-json-pointer":Br};var Kr=/t|\s/i;var Zr=/\/|:/;var Qr=/[^\\]\\Z/;function Wr(r){if(Qr.test(r))return!1;try{return RegExp(r),!0}catch(r){return!1}}var Gr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c="maximum"==e,h=c?"exclusiveMaximum":"exclusiveMinimum",m=r.schema[h],p=r.opts.v&&m&&m.v,y=c?"<":">",g=c?">":"<",E=void 0;if(!v&&"number"!=typeof s&&void 0!==s)throw Error(e+" must be number");if(!p&&void 0!==m&&"number"!=typeof m&&"boolean"!=typeof m)throw Error(h+" must be number or boolean");if(p){var b=r.util.getData(m.v,o,r.dataPathArr),w="exclusive"+n,F="exclType"+n,P="exclIsNumber"+n,$="' + "+(x="op"+n)+" + '";i+=" var schemaExcl"+n+" = "+b+"; ";var j;E=h;(j=j||[]).push(i+=" var "+w+"; var "+F+" = typeof "+(b="schemaExcl"+n)+"; if ("+F+" != 'boolean' && "+F+" != 'undefined' && "+F+" != 'number') { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: {} ",!1!==r.opts.messages&&(i+=" , message: '"+h+" should be boolean' "),r.opts.verbose&&(i+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var O=i;i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+F+" == 'number' ? ( ("+w+" = "+t+" === undefined || "+b+" "+y+"= "+t+") ? "+l+" "+g+"= "+b+" : "+l+" "+g+" "+t+" ) : ( ("+w+" = "+b+" === true) ? "+l+" "+g+"= "+t+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { var op"+n+" = "+w+" ? '"+y+"' : '"+y+"='; ",void 0===s&&(E=h,u=r.errSchemaPath+"/"+h,t=b,v=p)}else{$=y;if((P="number"==typeof m)&&v){var x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" ( "+t+" === undefined || "+m+" "+y+"= "+t+" ? "+l+" "+g+"= "+m+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { "}else{P&&void 0===s?(w=!0,E=h,u=r.errSchemaPath+"/"+h,t=m,g+="="):(P&&(t=Math[c?"min":"max"](m,s)),m===(!P||t)?(w=!0,E=h,u=r.errSchemaPath+"/"+h,g+="="):(w=!1,$+="="));x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+l+" "+g+" "+t+" || "+l+" !== "+l+") { "}}E=E||e,(j=j||[]).push(i),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_limit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { comparison: "+x+", limit: "+t+", exclusive: "+w+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be "+$+" ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";O=i;return i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { "),i},Yr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" "+l+".length "+("maxItems"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitItems")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxItems"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" items' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},Xr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=!1===r.opts.unicode?" "+l+".length ":" ucs2length("+l+") ";var c=e,h=h||[];h.push(i+=" "+("maxLength"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitLength")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT be ",i+="maxLength"==e?"longer":"shorter",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" characters' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},re=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" Object.keys("+l+").length "+("maxProperties"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitProperties")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxProperties"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" properties' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},ee={o:function(r,e,a){var t,i,n=" ",o=r.dataLevel,s=r.schema[e],f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(o||""),l="valid"+r.level;if("#"==s||"#/"==s)r.isRoot?(t=r.async,i="validate"):(t=!0===r.root.schema.u,i="root.refVal[0]");else{var v=r.resolveRef(r.baseId,s,r.isRoot);if(void 0===v){var c=r.MissingRefError.message(r.baseId,s);if("fail"==r.opts.missingRefs){r.logger.error(c),(y=y||[]).push(n),n="",!1!==r.createErrors?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { ref: '"+r.util.escapeQuotes(s)+"' } ",!1!==r.opts.messages&&(n+=" , message: 'can\\'t resolve reference "+r.util.escapeQuotes(s)+"' "),r.opts.verbose&&(n+=" , schema: "+r.util.toQuotedString(s)+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;n=y.pop(),n+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(n+=" if (false) { ")}else{if("ignore"!=r.opts.missingRefs)throw new r.MissingRefError(r.baseId,s,c);r.logger.warn(c),u&&(n+=" if (true) { ")}}else if(v.inline){var m=r.util.copy(r);m.level++;var p="valid"+m.level;m.schema=v.schema,m.schemaPath="",m.errSchemaPath=s,n+=" "+r.validate(m).replace(/validate\.schema/g,v.code)+" ",u&&(n+=" if ("+p+") { ")}else t=!0===v.u||r.async&&!1!==v.u,i=v.code}if(i){var y;(y=y||[]).push(n),n="",n+=r.opts.passContext?" "+i+".call(this, ":" "+i+"( ",n+=" "+d+", (dataPath || '')",'""'!=r.errorPath&&(n+=" + "+r.errorPath);var g=n+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?r.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(n=y.pop(),t){if(!r.async)throw Error("async schema referenced by sync schema");u&&(n+=" var "+l+"; "),n+=" try { await "+g+"; ",u&&(n+=" "+l+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(n+=" "+l+" = false; "),n+=" } ",u&&(n+=" if ("+l+") { ")}else n+=" if (!"+g+") { if (vErrors === null) vErrors = "+i+".errors; else vErrors = vErrors.concat("+i+".errors); errors = vErrors.length; } ",u&&(n+=" else { ")}return n},allOf:function(r,e,a){var t=" ",i=r.schema[e],n=r.schemaPath+r.util.getProperty(e),o=r.errSchemaPath+"/"+e,s=!r.opts.allErrors,f=r.util.copy(r),u="";f.level++;var d="valid"+f.level,l=f.baseId,v=!0,c=i;if(c)for(var h,m=-1,p=c.length-1;m0:r.util.schemaHasRules(h,r.RULES.all))&&(v=!1,f.schema=h,f.schemaPath=n+"["+m+"]",f.errSchemaPath=o+"/"+m,t+=" "+r.validate(f)+" ",f.baseId=l,s&&(t+=" if ("+d+") { ",u+="}"));return s&&(t+=v?" if (true) { ":" "+u.slice(0,-1)+" "),t},anyOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level;if(o.every((function(e){return r.opts.strictKeywords?"object"==typeof e&&Object.keys(e).length>0:r.util.schemaHasRules(e,r.RULES.all)}))){var p=c.baseId;t+=" var "+v+" = errors; var "+l+" = false; ";var y=r.compositeRule;r.compositeRule=c.compositeRule=!0;var g=o;if(g)for(var E,b=-1,w=g.length-1;b0:r.util.schemaHasRules(o,r.RULES.all);if(t+="var "+v+" = errors;var "+l+";",E){var b=r.compositeRule;r.compositeRule=c.compositeRule=!0,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+h+" = false; for (var "+m+" = 0; "+m+" < "+d+".length; "+m+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers,!0);var w=d+"["+m+"]";c.dataPathArr[p]=m;var F=r.validate(c);c.baseId=g,r.util.varOccurences(F,y)<2?t+=" "+r.util.varReplace(F,y,w)+" ":t+=" var "+y+" = "+w+"; "+F+" ",t+=" if ("+h+") break; } ",r.compositeRule=c.compositeRule=b,t+=" if (!"+h+") {"}else t+=" if ("+d+".length == 0) {";var P=P||[];P.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should contain a valid item' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;return t=P.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",E&&(t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } "),r.opts.allErrors&&(t+=" } "),t},dependencies:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m={},p={},y=r.opts.ownProperties;for(b in o)if("__proto__"!=b){var g=Array.isArray(R=o[b])?p:m;g[b]=R}t+="var "+l+" = errors;";var E=r.errorPath;for(var b in t+="var missing"+i+";",p)if((g=p[b]).length){if(t+=" if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),u){t+=" && ( ";var w=g;if(w)for(var F=-1,P=w.length-1;F0:r.util.schemaHasRules(R,r.RULES.all))&&(t+=" "+h+" = true; if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),t+=") { ",v.schema=R,v.schemaPath=s+r.util.getProperty(b),v.errSchemaPath=f+"/"+r.util.escapeFragment(b),t+=" "+r.validate(v)+" ",v.baseId=z,t+=" } ",u&&(t+=" if ("+h+") { ",c+="}"))}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t},enum:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v=r.opts.v&&o&&o.v;v&&(t+=" var schema"+i+" = "+r.util.getData(o.v,n,r.dataPathArr)+"; ");var c="i"+i,h="schema"+i;v||(t+=" var "+h+" = validate.schema"+s+";"),t+="var "+l+";",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=l+" = false;for (var "+c+"=0; "+c+"<"+h+".length; "+c+"++) if (equal("+d+", "+h+"["+c+"])) { "+l+" = true; break; }",v&&(t+=" } ");var m=m||[];m.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { allowedValues: schema"+i+" } ",!1!==r.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var p=t;return t=m.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",u&&(t+=" else { "),t},format:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||"");if(!1===r.opts.format)return u&&(t+=" if (true) { "),t;var l,v=r.opts.v&&o&&o.v;v?(t+=" var schema"+i+" = "+r.util.getData(o.v,n,r.dataPathArr)+"; ",l="schema"+i):l=o;var c=r.opts.unknownFormats,h=Array.isArray(c);if(v){t+=" var "+(m="format"+i)+" = formats["+l+"]; var "+(p="isObject"+i)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+i)+" = "+p+" && "+m+".type || 'string'; if ("+p+") { ",r.async&&(t+=" var async"+i+" = "+m+".async; "),t+=" "+m+" = "+m+".validate; } if ( ",v&&(t+=" ("+l+" !== undefined && typeof "+l+" != 'string') || "),t+=" (","ignore"!=c&&(t+=" ("+l+" && !"+m+" ",h&&(t+=" && self._opts.unknownFormats.indexOf("+l+") == -1 "),t+=") || "),t+=" ("+m+" && "+y+" == '"+a+"' && !(typeof "+m+" == 'function' ? ",t+=r.async?" (async"+i+" ? await "+m+"("+d+") : "+m+"("+d+")) ":" "+m+"("+d+") ",t+=" : "+m+".test("+d+"))))) {"}else{var m;if(!(m=r.formats[o])){if("ignore"==c)return r.logger.warn('unknown format "'+o+'" ignored in schema at path "'+r.errSchemaPath+'"'),u&&(t+=" if (true) { "),t;if(h&&c.indexOf(o)>=0)return u&&(t+=" if (true) { "),t;throw Error('unknown format "'+o+'" is used in schema at path "'+r.errSchemaPath+'"')}var p,y=(p="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(p){var g=!0===m.async;m=m.validate}if(y!=a)return u&&(t+=" if (true) { "),t;if(g){if(!r.async)throw Error("async format in sync schema");t+=" if (!(await "+(E="formats"+r.util.getProperty(o)+".validate")+"("+d+"))) { "}else{t+=" if (! ";var E="formats"+r.util.getProperty(o);p&&(E+=".validate"),t+="function"==typeof m?" "+E+"("+d+") ":" "+E+".test("+d+") ",t+=") { "}}var b=b||[];b.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'format' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { format: ",t+=v?""+l:""+r.util.toQuotedString(o),t+=" } ",!1!==r.opts.messages&&(t+=" , message: 'should match format \"",t+=v?"' + "+l+" + '":""+r.util.escapeQuotes(o),t+="\"' "),r.opts.verbose&&(t+=" , schema: ",t+=v?"validate.schema"+s:""+r.util.toQuotedString(o),t+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var w=t;return t=b.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",u&&(t+=" else { "),t},if:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r);c.level++;var h="valid"+c.level,m=r.schema.then,p=r.schema.else,y=void 0!==m&&(r.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:r.util.schemaHasRules(m,r.RULES.all)),g=void 0!==p&&(r.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:r.util.schemaHasRules(p,r.RULES.all)),E=c.baseId;if(y||g){var b;c.createErrors=!1,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+v+" = errors; var "+l+" = true; ";var w=r.compositeRule;r.compositeRule=c.compositeRule=!0,t+=" "+r.validate(c)+" ",c.baseId=E,c.createErrors=!0,t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } ",r.compositeRule=c.compositeRule=w,y?(t+=" if ("+h+") { ",c.schema=r.schema.then,c.schemaPath=r.schemaPath+".then",c.errSchemaPath=r.errSchemaPath+"/then",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'then'; ":b="'then'",t+=" } ",g&&(t+=" else { ")):t+=" if (!"+h+") { ",g&&(c.schema=r.schema.else,c.schemaPath=r.schemaPath+".else",c.errSchemaPath=r.errSchemaPath+"/else",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'else'; ":b="'else'",t+=" } "),t+=" if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { failingKeyword: "+b+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match \"' + "+b+" + '\" schema' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } ",u&&(t+=" else { ")}else u&&(t+=" if (true) { ");return t},items:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p="i"+i,y=c.dataLevel=r.dataLevel+1,g="data"+y,E=r.baseId;if(t+="var "+v+" = errors;var "+l+";",Array.isArray(o)){var b=r.schema.additionalItems;if(!1===b){t+=" "+l+" = "+d+".length <= "+o.length+"; ";var w=f;f=r.errSchemaPath+"/additionalItems";var F=F||[];F.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { limit: "+o.length+" } ",!1!==r.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),r.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var P=t;t=F.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+P+"]); ":" validate.errors = ["+P+"]; return false; ":" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",f=w,u&&(h+="}",t+=" else { ")}var $=o;if($)for(var j,O=-1,x=$.length-1;O0:r.util.schemaHasRules(j,r.RULES.all)){t+=" "+m+" = true; if ("+d+".length > "+O+") { ";var D=d+"["+O+"]";c.schema=j,c.schemaPath=s+"["+O+"]",c.errSchemaPath=f+"/"+O,c.errorPath=r.util.getPathExpr(r.errorPath,O,r.opts.jsonPointers,!0),c.dataPathArr[y]=O;var I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",t+=" } ",u&&(t+=" if ("+m+") { ",h+="}")}if("object"==typeof b&&(r.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:r.util.schemaHasRules(b,r.RULES.all))){c.schema=b,c.schemaPath=r.schemaPath+".additionalItems",c.errSchemaPath=r.errSchemaPath+"/additionalItems",t+=" "+m+" = true; if ("+d+".length > "+o.length+") { for (var "+p+" = "+o.length+"; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",u&&(t+=" if (!"+m+") break; "),t+=" } } ",u&&(t+=" if ("+m+") { ",h+="}")}}else if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" for (var "+p+" = 0; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",u&&(t+=" if (!"+m+") break; "),t+=" }"}return u&&(t+=" "+h+" if ("+v+" == errors) {"),t},maximum:Gr,minimum:Gr,maxItems:Yr,minItems:Yr,maxLength:Xr,minLength:Xr,maxProperties:re,minProperties:re,multipleOf:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="var division"+n+";if (",v&&(i+=" "+t+" !== undefined && ( typeof "+t+" != 'number' || "),i+=" (division"+n+" = "+l+" / "+t+", ",i+=r.opts.multipleOfPrecision?" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+r.opts.multipleOfPrecision+" ":" division"+n+" !== parseInt(division"+n+") ",i+=" ) ",v&&(i+=" ) ");var c=c||[];c.push(i+=" ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { multipleOf: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be multiple of ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var h=i;return i=c.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},not:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f,t+=" var "+l+" = errors; ";var h,m=r.compositeRule;r.compositeRule=v.compositeRule=!0,v.createErrors=!1,v.opts.allErrors&&(h=v.opts.allErrors,v.opts.allErrors=!1),t+=" "+r.validate(v)+" ",v.createErrors=!0,h&&(v.opts.allErrors=h),r.compositeRule=v.compositeRule=m;var p=p||[];p.push(t+=" if ("+c+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var y=t;t=p.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } ")}else t+=" var err = ",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(t+=" if (false) { ");return t},oneOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p=c.baseId,y="prevValid"+i,g="passingSchemas"+i;t+="var "+v+" = errors , "+y+" = false , "+l+" = false , "+g+" = null; ";var E=r.compositeRule;r.compositeRule=c.compositeRule=!0;var b=o;if(b)for(var w,F=-1,P=b.length-1;F0:r.util.schemaHasRules(w,r.RULES.all))?(c.schema=w,c.schemaPath=s+"["+F+"]",c.errSchemaPath=f+"/"+F,t+=" "+r.validate(c)+" ",c.baseId=p):t+=" var "+m+" = true; ",F&&(t+=" if ("+m+" && "+y+") { "+l+" = false; "+g+" = ["+g+", "+F+"]; } else { ",h+="}"),t+=" if ("+m+") { "+l+" = "+y+" = true; "+g+" = "+F+"; }";return r.compositeRule=c.compositeRule=E,t+=h+"if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { passingSchemas: "+g+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else { errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; }",r.opts.allErrors&&(t+=" } "),t},pattern:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c=v?"(new RegExp("+t+"))":r.usePattern(s);i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'string') || ");var h=h||[];h.push(i+=" !"+c+".test("+l+") ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { pattern: ",i+=v?""+t:""+r.util.toQuotedString(s),i+=" } ",!1!==r.opts.messages&&(i+=" , message: 'should match pattern \"",i+=v?"' + "+t+" + '":""+r.util.escapeQuotes(s),i+="\"' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+r.util.toQuotedString(s),i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},properties:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m="key"+i,p="idx"+i,y=v.dataLevel=r.dataLevel+1,g="data"+y,E="dataProperties"+i,b=Object.keys(o||{}).filter(k),w=r.schema.patternProperties||{},F=Object.keys(w).filter(k),P=r.schema.additionalProperties,$=b.length||F.length,j=!1===P,O="object"==typeof P&&Object.keys(P).length,x=r.opts.removeAdditional,D=j||O||x,I=r.opts.ownProperties,S=r.baseId,A=r.schema.required;if(A&&(!r.opts.v||!A.v)&&A.length8)t+=" || validate.schema"+s+".hasOwnProperty("+m+") ";else{var z=b;if(z)for(var R=-1,N=z.length-1;R0:r.util.schemaHasRules(Y,r.RULES.all)){var X=r.util.getProperty(Q),rr=(H=d+X,K&&void 0!==Y.default);v.schema=Y,v.schemaPath=s+X,v.errSchemaPath=f+"/"+r.util.escapeFragment(Q),v.errorPath=r.util.getPath(r.errorPath,Q,r.opts.jsonPointers),v.dataPathArr[y]=r.util.toQuotedString(Q);J=r.validate(v);if(v.baseId=S,r.util.varOccurences(J,g)<2){J=r.util.varReplace(J,g,H);var er=H}else{er=g;t+=" var "+g+" = "+H+"; "}if(rr)t+=" "+J+" ";else{if(_&&_[Q]){t+=" if ( "+er+" === undefined ",I&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=") { "+h+" = false; ";C=r.errorPath,B=f;var ar,tr=r.util.escapeQuotes(Q);r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPath(C,Q,r.opts.jsonPointers)),f=r.errSchemaPath+"/required",(ar=ar||[]).push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+tr+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+tr+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";U=t;t=ar.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+U+"]); ":" validate.errors = ["+U+"]; return false; ":" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f=B,r.errorPath=C,t+=" } else { "}else u?(t+=" if ( "+er+" === undefined ",I&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=") { "+h+" = true; } else { "):(t+=" if ("+er+" !== undefined ",I&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=" ) { ");t+=" "+J+" } "}}u&&(t+=" if ("+h+") { ",c+="}")}}if(F.length){var ir=F;if(ir)for(var nr,or=-1,sr=ir.length-1;or0:r.util.schemaHasRules(Y,r.RULES.all)){v.schema=Y,v.schemaPath=r.schemaPath+".patternProperties"+r.util.getProperty(nr),v.errSchemaPath=r.errSchemaPath+"/patternProperties/"+r.util.escapeFragment(nr),t+=I?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+p+"=0; "+p+"<"+E+".length; "+p+"++) { var "+m+" = "+E+"["+p+"]; ":" for (var "+m+" in "+d+") { ",t+=" if ("+r.usePattern(nr)+".test("+m+")) { ",v.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers);H=d+"["+m+"]";v.dataPathArr[y]=m;J=r.validate(v);v.baseId=S,r.util.varOccurences(J,g)<2?t+=" "+r.util.varReplace(J,g,H)+" ":t+=" var "+g+" = "+H+"; "+J+" ",u&&(t+=" if (!"+h+") break; "),t+=" } ",u&&(t+=" else "+h+" = true; "),t+=" } ",u&&(t+=" if ("+h+") { ",c+="}")}}}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t},propertyNames:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(t+="var "+l+" = errors;",r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f;var h="key"+i,m="idx"+i,p="i"+i,y="' + "+h+" + '",g="data"+(v.dataLevel=r.dataLevel+1),E="dataProperties"+i,b=r.opts.ownProperties,w=r.baseId;b&&(t+=" var "+E+" = undefined; "),t+=b?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+m+"=0; "+m+"<"+E+".length; "+m+"++) { var "+h+" = "+E+"["+m+"]; ":" for (var "+h+" in "+d+") { ",t+=" var startErrs"+i+" = errors; ";var F=h,P=r.compositeRule;r.compositeRule=v.compositeRule=!0;var $=r.validate(v);v.baseId=w,r.util.varOccurences($,g)<2?t+=" "+r.util.varReplace($,g,F)+" ":t+=" var "+g+" = "+F+"; "+$+" ",r.compositeRule=v.compositeRule=P,t+=" if (!"+c+") { for (var "+p+"=startErrs"+i+"; "+p+"0:r.util.schemaHasRules(E,r.RULES.all))||(h[h.length]=p)}}else h=o;if(v||h.length){var b=r.errorPath,w=v||h.length>=r.opts.loopRequired,F=r.opts.ownProperties;if(u)if(t+=" var missing"+i+"; ",w){v||(t+=" var "+c+" = validate.schema"+s+"; ");var P="' + "+(I="schema"+i+"["+(O="i"+i)+"]")+" + '";r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPathExpr(b,I,r.opts.jsonPointers)),t+=" var "+l+" = true; ",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=" for (var "+O+" = 0; "+O+" < "+c+".length; "+O+"++) { "+l+" = "+d+"["+c+"["+O+"]] !== undefined ",F&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", "+c+"["+O+"]) "),t+="; if (!"+l+") break; } ",v&&(t+=" } "),(D=D||[]).push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+P+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+P+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;t=D.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var j=h;if(j)for(var O=-1,x=j.length-1;O 1) { ";var h=r.schema.items&&r.schema.items.type,m=Array.isArray(h);if(!h||"object"==h||"array"==h||m&&(h.indexOf("object")>=0||h.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+l+"[i], "+l+"[j])) { "+v+" = false; break outer; } } } ";else i+=" var itemIndices = {}, item; for (;i--;) { var item = "+l+"[i]; ",i+=" if ("+r.util["checkDataType"+(m?"s":"")](h,"item",r.opts.strictNumbers,!0)+") continue; ",m&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+v+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";i+=" } ",c&&(i+=" } ");var p=p||[];p.push(i+=" if (!"+v+") { "),i="",!1!==r.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { i: i, j: j } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),r.opts.verbose&&(i+=" , schema: ",i+=c?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var y=i;i=p.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { ")}else d&&(i+=" if (true) { ");return i},validate:Er},ae=T.toHash,te=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"],ie=function(r,e){for(var a=0;a{const e=new De({allErrors:!0});if(e.validate(Be,r),null!=e.errors){let r=Infinity,a=[];return e.errors.forEach(e=>{const t=e.schemaPath.split("/").length;t===r?a.push(Me(e)):t`Ainsley${r.dataPath} is invalid`,Be={h:"http://json-schema.org/draft-07/schema#",definitions:{Primitive:{anyOf:[{type:"string"},{type:"number"}]}},properties:{children:{items:{anyOf:[{items:[{type:"string"},{items:{items:[{type:"string"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"},type:"array"}],minItems:2,maxItems:2,type:"array"},{items:[{type:"string"},{anyOf:[{type:"object",additionalProperties:{o:"#/definitions/Primitive"}},{type:"array",items:{anyOf:[{o:"#/definitions/Primitive"},{items:[{o:"#/definitions/Primitive"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"}]}}]}],minItems:2,maxItems:2,type:"array"},{type:"string"},{o:"#"}]},type:"array"},variables:{type:"object",additionalProperties:{type:"object",additionalProperties:{o:"#/definitions/Primitive"}}},variations:{items:{items:{items:[{type:"string"},{type:"string"}],minItems:2,maxItems:2,type:"array"},type:"array"},type:"array"}},type:"object"},Ue=async(r,e=Le)=>{const a=Ce(r);if(a.length>0)throw Error("Invalid input Ainsley:\n"+a.join("\n"));const t=_(r);return Array.isArray(t.children)&&await Promise.all(t.children.map(async(r,a)=>{if("string"==typeof r&&r.startsWith("$")){const i=await He(r.slice(1),e);t.children[a]=i}return r})),t},Le=async r=>{try{return(await import("ainsley-config-"+r)).config}catch(e){try{const e=new URL(r),a=await t.default(e.href);let i=await a.text();try{i=JSON.parse(i)}catch(r){}return i}catch(e){return`/* ${r.trim()} */`}}},He=async(r,e)=>{try{const a=await e(r);return i(a)?await Ue(a,e):a}catch(e){return`/* ${r.trim()} */`}};var Je;let Ke=null===(Je=globalThis)||void 0===Je?void 0:Je.csso;void 0===Ke&&import("csso").then(({default:r})=>{Ke=r}).catch(()=>{});const Ze=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]},Qe=(r,e)=>`${["","?","+"][r]}${e}`,We=r=>{try{return Ke.minify(r).css}catch(e){return(null==Ke?void 0:Ke.minify)?console.error(e):console.warn("`csso` - an optional dependency - is not installed; inline CSS will not be minified"),r}},Ge=/\{[a-z]+\}/gi,Ye=(r,e=new Set)=>(r.forEach(r=>{if(Array.isArray(r))Ye(r,e);else if("string"==typeof r){const a=r.match(Ge);for(let r=0;r<(null!=a?a:[]).length;r++)e.add(a[r].slice(1,-1))}}),e),Xe=(r,e,a)=>{var t,n;const o=null!==(t=r.children)&&void 0!==t?t:[],s=new Map,f={ainsley:r,parent:a,usageCounts:s,definedVariables:e},u=[f];for(let r=0;rZe(r)[1])]),f);new Set(t.map(r=>[...r.usageCounts.keys()]).reduce((r,e)=>[...r,...e],[])).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)}),u.push(...t)}else if(Array.isArray(a)){Ye(a).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)})}else o.splice(r,1,We(a))}return u};return r.DEFAULT_OPTIONS=s,r.ITERATOR_REGEX=o,r.combinations=n,r.defaultGetConfig=Le,r.embed=(r,e)=>{let a=null;void 0!==e&&(a=document.querySelector("style#"+e)),null===a&&(a=document.createElement("style"),a.type="text/css",void 0!==e&&a.setAttribute("id",e),document.head.appendChild(a)),a.innerHTML=r},r.flatten=Ue,r.generate=(r,e={})=>{const a={...s,...e};return u(d(r,a,{}),a)},r.getFlatConfig=He,r.isObject=i,r.minify=r=>{var e,a;const t=Ce(r);if(t.length>0)throw Error("Invalid input Ainsley:\n"+t.join("\n"));const i=Xe(_(r),new Set);for(let r=i.length-1;r>=0;r--){const t=i[r];if(void 0===t.ainsley.children||0===t.ainsley.children.length){if(void 0!==t.parent){const r=null!==(e=t.parent.ainsley.children)&&void 0!==e?e:[];r.splice(r.findIndex(r=>r===t.ainsley),1)}continue}for(let r=0;r0){const a=t.ainsley.children[r-1];"string"==typeof a&&t.ainsley.children.splice(--r,2,`${a}${e}`)}}const n=null!==(a=t.ainsley.variables)&&void 0!==a?a:{};if(Object.keys(n).forEach(r=>{var e,a,i;const[o,s]=Ze(r);if(t.usageCounts.has(s)){if(void 0!==t.parent){if(1===o&&t.parent.definedVariables.has(s))return void delete n[r];if((null!==(e=t.parent.usageCounts.get(s))&&void 0!==e?e:0)<2){"variables"in t.parent.ainsley||(t.parent.ainsley.variables={});const e=t.parent.ainsley.variables,f=null!==(a=Object.keys(e).find(r=>r.endsWith(s)))&&void 0!==a?a:Qe(o,""),[u]=Ze(f),d=null!==(i=e[f])&&void 0!==i?i:{},l=n[r];void 0!==e[f]&&delete e[f],delete n[r],e[Qe(2===o?u:0,s)]={...2===o?d:{},...l}}}}else delete n[r]}),0===Object.keys(n).length&&delete t.ainsley.variables,Array.isArray(t.ainsley.variations)&&(t.ainsley.variations=t.ainsley.variations.filter(r=>0!==r.length)),Array.isArray(t.ainsley.variations)&&0===t.ainsley.variations.length&&delete t.ainsley.variations,!("variations"in t.ainsley)&&!("variables"in t.ainsley)&&void 0!==t.parent){const r=t.parent.ainsley.children,e=r.findIndex(r=>r===t.ainsley);-1!==e&&r.splice(e,1,...t.ainsley.children)}}return i[0].ainsley},r.schema=Be,r.validate=Ce,r}({},fetch); +var Ainsley=function(r,e){"use strict";function a(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var t=a(e);const i=r=>!(null===r||"object"!=typeof r||Array.isArray(r)),n=r=>{let e=[[]],a=0;for(;ae.map(e=>e.concat([r])));return e},o="\\{[a-zA-Z0-9_-]+\\}",s={addVariationToSelector:(r,e)=>e+"_"+r,addPropertyToSelector:(r,e)=>r+"-"+e,addValueToSelector:(r,e)=>r+"-"+e,abbreviateProperty:r=>[r.split("-").map(r=>r[0]).join(""),r]},f=/\{[a-zA-Z0-9_-]+\}/g,u=(r,e)=>{let a="",t=[];for(let i=0;i`${r[0]}:${r[1]}`).join(";")}}`}t=n.t}for(const r of t){r[1].startsWith("@")&&(a+="}")}return a},d=(r,e,a)=>{var t;const i={...a};if(void 0!==r.variables){const e=r.variables;Object.keys(e).map(r=>{var t;const n=h(r),o=n[0],s=n[1];0===o||1===o&&void 0===i[s]?i[s]=e[r]:2===o&&(i[s]={...null!==(t=a[s])&&void 0!==t?t:{},...e[r]})})}const o=void 0===r.children?[]:l(r.children,e,i);return n((null!==(t=r.variations)&&void 0!==t?t:[]).map(r=>[["",""]].concat(r))).flatMap(r=>o.map(e=>({t:[...r,...e.t],i:e.i})))},l=(r,e,a)=>r.flatMap(r=>"string"==typeof r?[{t:[],i:r}]:Array.isArray(r)?Array.isArray(r[1])?v(r,e,a):c(r,e):d(r,e,a)),v=(r,e,a)=>{const t=r[0],i=r[1],o=[];return i.map(r=>{var e,a;const t=null!==(e=r[0].match(f))&&void 0!==e?e:[],i=null!==(a=(""+r[1]).match(f))&&void 0!==a?a:[];t.map(r=>o.push([r,0])),i.map(r=>o.push([r,1]))}),n(o.map(r=>{const e=r[0],t=r[1],i=e.slice(1,-1);return Object.keys(a[i]).map(r=>[e,r,a[i][r],t])})).map(r=>{let a=0,n=r[a];return{t:[],i:[r.reduce((r,a)=>0===a[3]?e.addPropertyToSelector(r,a[1]):e.addValueToSelector(r,a[1]),t),i.map(e=>{const t=e=>{for(;a{const a=r[1],t=e.abbreviateProperty(r[0]),i=t[0],n=t[1];return Object.keys(a).map(r=>({t:[],i:[e.addValueToSelector(e.addPropertyToSelector("",i),r),[[n,a[r]]]]}))},h=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]};var m=Function.prototype.toString,p=Object.create,y=Object.defineProperty,g=Object.getOwnPropertyDescriptor,E=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,w=Object.getPrototypeOf,F=Object.prototype,P=F.hasOwnProperty,$=F.propertyIsEnumerable,j="function"==typeof b,O="function"==typeof WeakMap,x=function(r,e){if(!r.constructor)return p(null);var a=r.constructor,t=r.__proto__||w(r);if(a===e.Object)return t===e.Object.prototype?{}:p(t);if(~m.call(a).indexOf("[native code]"))try{return new a}catch(r){}return p(t)},D=function(r,e,a,t){var i=x(r,e);for(var n in t.set(r,i),r)P.call(r,n)&&(i[n]=a(r[n],t));if(j){var o=b(r),s=o.length;if(s)for(var f=0,u=void 0;f1){e[0]=e[0].slice(0,-1);for(var t=e.length-1,i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=c-h,O=Math.floor,x=String.fromCharCode;function D(r){throw new RangeError($[r])}function I(r,e){for(var a=[],t=r.length;t--;)a[t]=e(r[t]);return a}function S(r,e){var a=r.split("@"),t="";return a.length>1&&(t=a[0]+"@",r=a[1]),t+I((r=r.replace(P,".")).split("."),e).join(".")}function A(r){for(var e=[],a=0,t=r.length;a=55296&&i<=56319&&a>1,r+=O(r/e);r>j*m>>1;t+=c)r=O(r/j);return O(t+(j+1)*r/(r+p))},R=function(r){var e=[],a=r.length,t=0,i=E,n=g,o=r.lastIndexOf(b);o<0&&(o=0);for(var s=0;s=128&&D("not-basic"),e.push(r.charCodeAt(s));for(var f=o>0?o+1:0;f=a&&D("invalid-input");var p=_(r.charCodeAt(f++));(p>=c||p>O((v-t)/d))&&D("overflow"),t+=p*d;var y=l<=n?h:l>=n+m?m:l-n;if(pO(v/w)&&D("overflow"),d*=w}var F=e.length+1;n=z(t-u,F,0==u),O(t/F)>v-i&&D("overflow"),i+=O(t/F),t%=F,e.splice(t++,0,i)}return String.fromCodePoint.apply(String,e)},N=function(r){var e=[],a=(r=A(r)).length,t=E,i=0,n=g,o=!0,s=!1,f=void 0;try{for(var u,d=r[Symbol.iterator]();!(o=(u=d.next()).done);o=!0){var l=u.value;l<128&&e.push(x(l))}}catch(r){s=!0,f=r}finally{try{!o&&d.return&&d.return()}finally{if(s)throw f}}var p=e.length,y=p;for(p&&e.push(b);y=t&&SO((v-i)/_)&&D("overflow"),i+=(w-t)*_,t=w;var R=!0,N=!1,V=void 0;try{for(var T,q=r[Symbol.iterator]();!(R=(T=q.next()).done);R=!0){var C=T.value;if(Cv&&D("overflow"),C==t){for(var M=i,B=c;;B+=c){var U=B<=n?h:B>=n+m?m:B-n;if(M>6|192).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase():"%"+(e>>12|224).toString(16).toUpperCase()+"%"+(e>>6&63|128).toString(16).toUpperCase()+"%"+(63&e|128).toString(16).toUpperCase()}function B(r){for(var e="",a=0,t=r.length;a=194&&i<224){if(t-a>=6){var n=parseInt(r.substr(a+4,2),16);e+=String.fromCharCode((31&i)<<6|63&n)}else e+=r.substr(a,6);a+=6}else if(i>=224){if(t-a>=9){var o=parseInt(r.substr(a+4,2),16),s=parseInt(r.substr(a+7,2),16);e+=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}else e+=r.substr(a,9);a+=9}else e+=r.substr(a,3),a+=3}return e}function U(r,e){function a(r){var a=B(r);return a.match(e.UNRESERVED)?a:r}return r.scheme&&(r.scheme=(r.scheme+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_SCHEME,"")),void 0!==r.userinfo&&(r.userinfo=(r.userinfo+"").replace(e.PCT_ENCODED,a).replace(e.NOT_USERINFO,M).replace(e.PCT_ENCODED,i)),void 0!==r.host&&(r.host=(r.host+"").replace(e.PCT_ENCODED,a).toLowerCase().replace(e.NOT_HOST,M).replace(e.PCT_ENCODED,i)),void 0!==r.path&&(r.path=(r.path+"").replace(e.PCT_ENCODED,a).replace(r.scheme?e.NOT_PATH:e.NOT_PATH_NOSCHEME,M).replace(e.PCT_ENCODED,i)),void 0!==r.query&&(r.query=(r.query+"").replace(e.PCT_ENCODED,a).replace(e.NOT_QUERY,M).replace(e.PCT_ENCODED,i)),void 0!==r.fragment&&(r.fragment=(r.fragment+"").replace(e.PCT_ENCODED,a).replace(e.NOT_FRAGMENT,M).replace(e.PCT_ENCODED,i)),r}function L(r){return r.replace(/^0*(.*)/,"$1")||"0"}function H(r,e){var a=r.match(e.IPV4ADDRESS)||[],t=d(a,2)[1];return t?t.split(".").map(L).join("."):r}function J(r,e){var a=r.match(e.IPV6ADDRESS)||[],t=d(a,3),i=t[1],n=t[2];if(i){for(var o=i.toLowerCase().split("::").reverse(),s=d(o,2),f=s[0],u=s[1],l=u?u.split(":").map(L):[],v=f.split(":").map(L),c=e.IPV4ADDRESS.test(v[v.length-1]),h=c?7:8,m=v.length-h,p=Array(h),y=0;y1){var b=p.slice(0,g.index),w=p.slice(g.index+g.length);E=b.join(":")+"::"+w.join(":")}else E=p.join(":");return n&&(E+="%"+n),E}return r}var K=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Z=void 0==="".match(/(){0}/)[1];function Q(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a={},t=!1!==e.iri?u:f;"suffix"===e.reference&&(r=(e.scheme?e.scheme+":":"")+"//"+r);var i=r.match(K);if(i){Z?(a.scheme=i[1],a.userinfo=i[3],a.host=i[4],a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=i[7],a.fragment=i[8],isNaN(a.port)&&(a.port=i[5])):(a.scheme=i[1]||void 0,a.userinfo=-1!==r.indexOf("@")?i[3]:void 0,a.host=-1!==r.indexOf("//")?i[4]:void 0,a.port=parseInt(i[5],10),a.path=i[6]||"",a.query=-1!==r.indexOf("?")?i[7]:void 0,a.fragment=-1!==r.indexOf("#")?i[8]:void 0,isNaN(a.port)&&(a.port=r.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?i[4]:void 0)),a.host&&(a.host=J(H(a.host,t),t)),a.reference=void 0!==a.scheme||void 0!==a.userinfo||void 0!==a.host||void 0!==a.port||a.path||void 0!==a.query?void 0===a.scheme?"relative":void 0===a.fragment?"absolute":"uri":"same-document",e.reference&&"suffix"!==e.reference&&e.reference!==a.reference&&(a.error=a.error||"URI is not a "+e.reference+" reference.");var n=C[(e.scheme||a.scheme||"").toLowerCase()];if(e.unicodeSupport||n&&n.unicodeSupport)U(a,t);else{if(a.host&&(e.domainHost||n&&n.domainHost))try{a.host=q.toASCII(a.host.replace(t.PCT_ENCODED,B).toLowerCase())}catch(r){a.error=a.error||"Host's domain name can not be converted to ASCII via punycode: "+r}U(a,f)}n&&n.parse&&n.parse(a,e)}else a.error=a.error||"URI can not be parsed.";return a}function W(r,e){var a=!1!==e.iri?u:f,t=[];return void 0!==r.userinfo&&(t.push(r.userinfo),t.push("@")),void 0!==r.host&&t.push(J(H(r.host+"",a),a).replace(a.IPV6ADDRESS,(function(r,e,a){return"["+e+(a?"%25"+a:"")+"]"}))),"number"!=typeof r.port&&"string"!=typeof r.port||(t.push(":"),t.push(r.port+"")),t.length?t.join(""):void 0}var G=/^\.\.?\//,Y=/^\/\.(\/|$)/,X=/^\/\.\.(\/|$)/,rr=/^\/?(?:.|\n)*?(?=\/|$)/;function er(r){for(var e=[];r.length;)if(r.match(G))r=r.replace(G,"");else if(r.match(Y))r=r.replace(Y,"/");else if(r.match(X))r=r.replace(X,"/"),e.pop();else if("."===r||".."===r)r="";else{var a=r.match(rr);if(!a)throw Error("Unexpected dot segment condition");var t=a[0];r=r.slice(t.length),e.push(t)}return e.join("")}function ar(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.iri?u:f,t=[],i=C[(e.scheme||r.scheme||"").toLowerCase()];if(i&&i.serialize&&i.serialize(r,e),r.host)if(a.IPV6ADDRESS.test(r.host));else if(e.domainHost||i&&i.domainHost)try{r.host=e.iri?q.toUnicode(r.host):q.toASCII(r.host.replace(a.PCT_ENCODED,B).toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to "+(e.iri?"Unicode":"ASCII")+" via punycode: "+a}U(r,a),"suffix"!==e.reference&&r.scheme&&(t.push(r.scheme),t.push(":"));var n=W(r,e);if(void 0!==n&&("suffix"!==e.reference&&t.push("//"),t.push(n),r.path&&"/"!==r.path.charAt(0)&&t.push("/")),void 0!==r.path){var o=r.path;e.absolutePath||i&&i.absolutePath||(o=er(o)),void 0===n&&(o=o.replace(/^\/\//,"/%2F")),t.push(o)}return void 0!==r.query&&(t.push("?"),t.push(r.query)),void 0!==r.fragment&&(t.push("#"),t.push(r.fragment)),t.join("")}function tr(r,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},t={};return arguments[3]||(r=Q(ar(r,a),a),e=Q(ar(e,a),a)),!(a=a||{}).tolerant&&e.scheme?(t.scheme=e.scheme,t.userinfo=e.userinfo,t.host=e.host,t.port=e.port,t.path=er(e.path||""),t.query=e.query):(void 0!==e.userinfo||void 0!==e.host||void 0!==e.port?(t.userinfo=e.userinfo,t.host=e.host,t.port=e.port,t.path=er(e.path||""),t.query=e.query):(e.path?("/"===e.path.charAt(0)?t.path=er(e.path):(t.path=void 0===r.userinfo&&void 0===r.host&&void 0===r.port||r.path?r.path?r.path.slice(0,r.path.lastIndexOf("/")+1)+e.path:e.path:"/"+e.path,t.path=er(t.path)),t.query=e.query):(t.path=r.path,t.query=void 0!==e.query?e.query:r.query),t.userinfo=r.userinfo,t.host=r.host,t.port=r.port),t.scheme=r.scheme),t.fragment=e.fragment,t}function ir(r,e,a){var t=o({scheme:"null"},a);return ar(tr(Q(r,t),Q(e,t),t,!0),t)}function nr(r,e){return"string"==typeof r?r=ar(Q(r,e),e):"object"===t(r)&&(r=Q(ar(r,e),e)),r}function or(r,e,a){return"string"==typeof r?r=ar(Q(r,a),a):"object"===t(r)&&(r=ar(r,a)),"string"==typeof e?e=ar(Q(e,a),a):"object"===t(e)&&(e=ar(e,a)),r===e}function sr(r,e){return r&&(""+r).replace(e&&e.iri?u.ESCAPE:f.ESCAPE,M)}function fr(r,e){return r&&(""+r).replace(e&&e.iri?u.PCT_ENCODED:f.PCT_ENCODED,B)}var ur={scheme:"http",domainHost:!0,parse:function(r,e){return r.host||(r.error=r.error||"HTTP URIs must have a host."),r},serialize:function(r,e){return r.port!==("https"===(r.scheme+"").toLowerCase()?443:80)&&""!==r.port||(r.port=void 0),r.path||(r.path="/"),r}},dr={scheme:"https",domainHost:ur.domainHost,parse:ur.parse,serialize:ur.serialize};function lr(r){return"boolean"==typeof r.secure?r.secure:"wss"===(r.scheme+"").toLowerCase()}var vr={scheme:"ws",domainHost:!0,parse:function(r,e){var a=r;return a.secure=lr(a),a.resourceName=(a.path||"/")+(a.query?"?"+a.query:""),a.path=void 0,a.query=void 0,a},serialize:function(r,e){if(r.port!==(lr(r)?443:80)&&""!==r.port||(r.port=void 0),"boolean"==typeof r.secure&&(r.scheme=r.secure?"wss":"ws",r.secure=void 0),r.resourceName){var a=r.resourceName.split("?"),t=d(a,2),i=t[0],n=t[1];r.path=i&&"/"!==i?i:void 0,r.query=n,r.resourceName=void 0}return r.fragment=void 0,r}},cr={scheme:"wss",domainHost:vr.domainHost,parse:vr.parse,serialize:vr.serialize},hr={},mr="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",pr="[0-9A-Fa-f]",yr=a(a("%[EFef]"+pr+"%"+pr+pr+"%"+pr+pr)+"|"+a("%[89A-Fa-f]"+pr+"%"+pr+pr)+"|"+a("%"+pr+pr)),gr="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Er=e("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),br="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",wr=RegExp(mr,"g"),Fr=RegExp(yr,"g"),Pr=RegExp(e("[^]",gr,"[\\.]",'[\\"]',Er),"g"),$r=RegExp(e("[^]",mr,br),"g"),jr=$r;function Or(r){var e=B(r);return e.match(wr)?e:r}var xr={scheme:"mailto",parse:function(r,e){var a=r,t=a.to=a.path?a.path.split(","):[];if(a.path=void 0,a.query){for(var i=!1,n={},o=a.query.split("&"),s=0,f=o.length;s=55296&&e<=56319&&i=e)throw Error("Cannot access property/index "+t+" levels up, current level is "+e);return a[e-t]}if(t>e)throw Error("Cannot access data "+t+" levels up, current level is "+e);if(n="data"+(e-t||""),!i)return n}for(var s=n,f=i.split("/"),u=0;u=0?{index:t,compiling:!0}:(this._compilations[t=this._compilations.length]={schema:r,root:e,baseId:a},{index:t,compiling:!1})}function $r(r,e,a){var t=jr.call(this,r,e,a);t>=0&&this._compilations.splice(t,1)}function jr(r,e,a){for(var t=0;t%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Tr=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,qr=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Cr=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Mr=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Br=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,Ur=Lr;function Lr(r){return T.copy(Lr[r="full"==r?"full":"fast"])}function Hr(r){var e=r.match(_r);if(!e)return!1;var a=+e[2],t=+e[3];return a>=1&&a<=12&&t>=1&&t<=(2==a&&function(r){return r%4==0&&(r%100!=0||r%400==0)}(+e[1])?29:kr[a])}function Jr(r,e){var a=r.match(zr);if(!a)return!1;var t=a[1],i=a[2],n=a[3];return(t<=23&&i<=59&&n<=59||23==t&&59==i&&60==n)&&(!e||a[5])}Lr.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":Vr,url:Tr,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:Rr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Wr,uuid:qr,"json-pointer":Cr,"json-pointer-uri-fragment":Mr,"relative-json-pointer":Br},Lr.full={date:Hr,time:Jr,"date-time":function(r){var e=r.split(Kr);return 2==e.length&&Hr(e[0])&&Jr(e[1],!0)},uri:function(r){return Zr.test(r)&&Nr.test(r)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":Vr,url:Tr,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:Rr,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Wr,uuid:qr,"json-pointer":Cr,"json-pointer-uri-fragment":Mr,"relative-json-pointer":Br};var Kr=/t|\s/i;var Zr=/\/|:/;var Qr=/[^\\]\\Z/;function Wr(r){if(Qr.test(r))return!1;try{return RegExp(r),!0}catch(r){return!1}}var Gr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c="maximum"==e,h=c?"exclusiveMaximum":"exclusiveMinimum",m=r.schema[h],p=r.opts.v&&m&&m.v,y=c?"<":">",g=c?">":"<",E=void 0;if(!v&&"number"!=typeof s&&void 0!==s)throw Error(e+" must be number");if(!p&&void 0!==m&&"number"!=typeof m&&"boolean"!=typeof m)throw Error(h+" must be number or boolean");if(p){var b=r.util.getData(m.v,o,r.dataPathArr),w="exclusive"+n,F="exclType"+n,P="exclIsNumber"+n,$="' + "+(x="op"+n)+" + '";i+=" var schemaExcl"+n+" = "+b+"; ";var j;E=h;(j=j||[]).push(i+=" var "+w+"; var "+F+" = typeof "+(b="schemaExcl"+n)+"; if ("+F+" != 'boolean' && "+F+" != 'undefined' && "+F+" != 'number') { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: {} ",!1!==r.opts.messages&&(i+=" , message: '"+h+" should be boolean' "),r.opts.verbose&&(i+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var O=i;i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+F+" == 'number' ? ( ("+w+" = "+t+" === undefined || "+b+" "+y+"= "+t+") ? "+l+" "+g+"= "+b+" : "+l+" "+g+" "+t+" ) : ( ("+w+" = "+b+" === true) ? "+l+" "+g+"= "+t+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { var op"+n+" = "+w+" ? '"+y+"' : '"+y+"='; ",void 0===s&&(E=h,u=r.errSchemaPath+"/"+h,t=b,v=p)}else{$=y;if((P="number"==typeof m)&&v){var x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" ( "+t+" === undefined || "+m+" "+y+"= "+t+" ? "+l+" "+g+"= "+m+" : "+l+" "+g+" "+t+" ) || "+l+" !== "+l+") { "}else{P&&void 0===s?(w=!0,E=h,u=r.errSchemaPath+"/"+h,t=m,g+="="):(P&&(t=Math[c?"min":"max"](m,s)),m===(!P||t)?(w=!0,E=h,u=r.errSchemaPath+"/"+h,g+="="):(w=!1,$+="="));x="'"+$+"'";i+=" if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=" "+l+" "+g+" "+t+" || "+l+" !== "+l+") { "}}E=E||e,(j=j||[]).push(i),i="",!1!==r.createErrors?(i+=" { keyword: '"+(E||"_limit")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { comparison: "+x+", limit: "+t+", exclusive: "+w+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be "+$+" ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";O=i;return i=j.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { "),i},Yr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" "+l+".length "+("maxItems"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitItems")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxItems"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" items' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},Xr=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),i+=!1===r.opts.unicode?" "+l+".length ":" ucs2length("+l+") ";var c=e,h=h||[];h.push(i+=" "+("maxLength"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitLength")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT be ",i+="maxLength"==e?"longer":"shorter",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" characters' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},re=function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var c=e,h=h||[];h.push(i+=" Object.keys("+l+").length "+("maxProperties"==e?">":"<")+" "+t+") { "),i="",!1!==r.createErrors?(i+=" { keyword: '"+(c||"_limitProperties")+"' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { limit: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxProperties"==e?"more":"fewer",i+=" than ",i+=v?"' + "+t+" + '":""+s,i+=" properties' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},ee={o:function(r,e,a){var t,i,n=" ",o=r.dataLevel,s=r.schema[e],f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(o||""),l="valid"+r.level;if("#"==s||"#/"==s)r.isRoot?(t=r.async,i="validate"):(t=!0===r.root.schema.u,i="root.refVal[0]");else{var v=r.resolveRef(r.baseId,s,r.isRoot);if(void 0===v){var c=r.MissingRefError.message(r.baseId,s);if("fail"==r.opts.missingRefs){r.logger.error(c),(y=y||[]).push(n),n="",!1!==r.createErrors?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { ref: '"+r.util.escapeQuotes(s)+"' } ",!1!==r.opts.messages&&(n+=" , message: 'can\\'t resolve reference "+r.util.escapeQuotes(s)+"' "),r.opts.verbose&&(n+=" , schema: "+r.util.toQuotedString(s)+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var h=n;n=y.pop(),n+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(n+=" if (false) { ")}else{if("ignore"!=r.opts.missingRefs)throw new r.MissingRefError(r.baseId,s,c);r.logger.warn(c),u&&(n+=" if (true) { ")}}else if(v.inline){var m=r.util.copy(r);m.level++;var p="valid"+m.level;m.schema=v.schema,m.schemaPath="",m.errSchemaPath=s,n+=" "+r.validate(m).replace(/validate\.schema/g,v.code)+" ",u&&(n+=" if ("+p+") { ")}else t=!0===v.u||r.async&&!1!==v.u,i=v.code}if(i){var y;(y=y||[]).push(n),n="",n+=r.opts.passContext?" "+i+".call(this, ":" "+i+"( ",n+=" "+d+", (dataPath || '')",'""'!=r.errorPath&&(n+=" + "+r.errorPath);var g=n+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?r.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(n=y.pop(),t){if(!r.async)throw Error("async schema referenced by sync schema");u&&(n+=" var "+l+"; "),n+=" try { await "+g+"; ",u&&(n+=" "+l+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(n+=" "+l+" = false; "),n+=" } ",u&&(n+=" if ("+l+") { ")}else n+=" if (!"+g+") { if (vErrors === null) vErrors = "+i+".errors; else vErrors = vErrors.concat("+i+".errors); errors = vErrors.length; } ",u&&(n+=" else { ")}return n},allOf:function(r,e,a){var t=" ",i=r.schema[e],n=r.schemaPath+r.util.getProperty(e),o=r.errSchemaPath+"/"+e,s=!r.opts.allErrors,f=r.util.copy(r),u="";f.level++;var d="valid"+f.level,l=f.baseId,v=!0,c=i;if(c)for(var h,m=-1,p=c.length-1;m0:r.util.schemaHasRules(h,r.RULES.all))&&(v=!1,f.schema=h,f.schemaPath=n+"["+m+"]",f.errSchemaPath=o+"/"+m,t+=" "+r.validate(f)+" ",f.baseId=l,s&&(t+=" if ("+d+") { ",u+="}"));return s&&(t+=v?" if (true) { ":" "+u.slice(0,-1)+" "),t},anyOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level;if(o.every((function(e){return r.opts.strictKeywords?"object"==typeof e&&Object.keys(e).length>0:r.util.schemaHasRules(e,r.RULES.all)}))){var p=c.baseId;t+=" var "+v+" = errors; var "+l+" = false; ";var y=r.compositeRule;r.compositeRule=c.compositeRule=!0;var g=o;if(g)for(var E,b=-1,w=g.length-1;b0:r.util.schemaHasRules(o,r.RULES.all);if(t+="var "+v+" = errors;var "+l+";",E){var b=r.compositeRule;r.compositeRule=c.compositeRule=!0,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+h+" = false; for (var "+m+" = 0; "+m+" < "+d+".length; "+m+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers,!0);var w=d+"["+m+"]";c.dataPathArr[p]=m;var F=r.validate(c);c.baseId=g,r.util.varOccurences(F,y)<2?t+=" "+r.util.varReplace(F,y,w)+" ":t+=" var "+y+" = "+w+"; "+F+" ",t+=" if ("+h+") break; } ",r.compositeRule=c.compositeRule=b,t+=" if (!"+h+") {"}else t+=" if ("+d+".length == 0) {";var P=P||[];P.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should contain a valid item' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;return t=P.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",E&&(t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } "),r.opts.allErrors&&(t+=" } "),t},dependencies:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m={},p={},y=r.opts.ownProperties;for(b in o)if("__proto__"!=b){var g=Array.isArray(R=o[b])?p:m;g[b]=R}t+="var "+l+" = errors;";var E=r.errorPath;for(var b in t+="var missing"+i+";",p)if((g=p[b]).length){if(t+=" if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),u){t+=" && ( ";var w=g;if(w)for(var F=-1,P=w.length-1;F0:r.util.schemaHasRules(R,r.RULES.all))&&(t+=" "+h+" = true; if ( "+d+r.util.getProperty(b)+" !== undefined ",y&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(b)+"') "),t+=") { ",v.schema=R,v.schemaPath=s+r.util.getProperty(b),v.errSchemaPath=f+"/"+r.util.escapeFragment(b),t+=" "+r.validate(v)+" ",v.baseId=z,t+=" } ",u&&(t+=" if ("+h+") { ",c+="}"))}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t},enum:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v=r.opts.v&&o&&o.v;v&&(t+=" var schema"+i+" = "+r.util.getData(o.v,n,r.dataPathArr)+"; ");var c="i"+i,h="schema"+i;v||(t+=" var "+h+" = validate.schema"+s+";"),t+="var "+l+";",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=l+" = false;for (var "+c+"=0; "+c+"<"+h+".length; "+c+"++) if (equal("+d+", "+h+"["+c+"])) { "+l+" = true; break; }",v&&(t+=" } ");var m=m||[];m.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { allowedValues: schema"+i+" } ",!1!==r.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var p=t;return t=m.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",u&&(t+=" else { "),t},format:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||"");if(!1===r.opts.format)return u&&(t+=" if (true) { "),t;var l,v=r.opts.v&&o&&o.v;v?(t+=" var schema"+i+" = "+r.util.getData(o.v,n,r.dataPathArr)+"; ",l="schema"+i):l=o;var c=r.opts.unknownFormats,h=Array.isArray(c);if(v){t+=" var "+(m="format"+i)+" = formats["+l+"]; var "+(p="isObject"+i)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+i)+" = "+p+" && "+m+".type || 'string'; if ("+p+") { ",r.async&&(t+=" var async"+i+" = "+m+".async; "),t+=" "+m+" = "+m+".validate; } if ( ",v&&(t+=" ("+l+" !== undefined && typeof "+l+" != 'string') || "),t+=" (","ignore"!=c&&(t+=" ("+l+" && !"+m+" ",h&&(t+=" && self._opts.unknownFormats.indexOf("+l+") == -1 "),t+=") || "),t+=" ("+m+" && "+y+" == '"+a+"' && !(typeof "+m+" == 'function' ? ",t+=r.async?" (async"+i+" ? await "+m+"("+d+") : "+m+"("+d+")) ":" "+m+"("+d+") ",t+=" : "+m+".test("+d+"))))) {"}else{var m;if(!(m=r.formats[o])){if("ignore"==c)return r.logger.warn('unknown format "'+o+'" ignored in schema at path "'+r.errSchemaPath+'"'),u&&(t+=" if (true) { "),t;if(h&&c.indexOf(o)>=0)return u&&(t+=" if (true) { "),t;throw Error('unknown format "'+o+'" is used in schema at path "'+r.errSchemaPath+'"')}var p,y=(p="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(p){var g=!0===m.async;m=m.validate}if(y!=a)return u&&(t+=" if (true) { "),t;if(g){if(!r.async)throw Error("async format in sync schema");t+=" if (!(await "+(E="formats"+r.util.getProperty(o)+".validate")+"("+d+"))) { "}else{t+=" if (! ";var E="formats"+r.util.getProperty(o);p&&(E+=".validate"),t+="function"==typeof m?" "+E+"("+d+") ":" "+E+".test("+d+") ",t+=") { "}}var b=b||[];b.push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'format' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { format: ",t+=v?""+l:""+r.util.toQuotedString(o),t+=" } ",!1!==r.opts.messages&&(t+=" , message: 'should match format \"",t+=v?"' + "+l+" + '":""+r.util.escapeQuotes(o),t+="\"' "),r.opts.verbose&&(t+=" , schema: ",t+=v?"validate.schema"+s:""+r.util.toQuotedString(o),t+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var w=t;return t=b.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",u&&(t+=" else { "),t},if:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r);c.level++;var h="valid"+c.level,m=r.schema.then,p=r.schema.else,y=void 0!==m&&(r.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:r.util.schemaHasRules(m,r.RULES.all)),g=void 0!==p&&(r.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:r.util.schemaHasRules(p,r.RULES.all)),E=c.baseId;if(y||g){var b;c.createErrors=!1,c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" var "+v+" = errors; var "+l+" = true; ";var w=r.compositeRule;r.compositeRule=c.compositeRule=!0,t+=" "+r.validate(c)+" ",c.baseId=E,c.createErrors=!0,t+=" errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; } ",r.compositeRule=c.compositeRule=w,y?(t+=" if ("+h+") { ",c.schema=r.schema.then,c.schemaPath=r.schemaPath+".then",c.errSchemaPath=r.errSchemaPath+"/then",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'then'; ":b="'then'",t+=" } ",g&&(t+=" else { ")):t+=" if (!"+h+") { ",g&&(c.schema=r.schema.else,c.schemaPath=r.schemaPath+".else",c.errSchemaPath=r.errSchemaPath+"/else",t+=" "+r.validate(c)+" ",c.baseId=E,t+=" "+l+" = "+h+"; ",y&&g?t+=" var "+(b="ifClause"+i)+" = 'else'; ":b="'else'",t+=" } "),t+=" if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { failingKeyword: "+b+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match \"' + "+b+" + '\" schema' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } ",u&&(t+=" else { ")}else u&&(t+=" if (true) { ");return t},items:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p="i"+i,y=c.dataLevel=r.dataLevel+1,g="data"+y,E=r.baseId;if(t+="var "+v+" = errors;var "+l+";",Array.isArray(o)){var b=r.schema.additionalItems;if(!1===b){t+=" "+l+" = "+d+".length <= "+o.length+"; ";var w=f;f=r.errSchemaPath+"/additionalItems";var F=F||[];F.push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { limit: "+o.length+" } ",!1!==r.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),r.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var P=t;t=F.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+P+"]); ":" validate.errors = ["+P+"]; return false; ":" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",f=w,u&&(h+="}",t+=" else { ")}var $=o;if($)for(var j,O=-1,x=$.length-1;O0:r.util.schemaHasRules(j,r.RULES.all)){t+=" "+m+" = true; if ("+d+".length > "+O+") { ";var D=d+"["+O+"]";c.schema=j,c.schemaPath=s+"["+O+"]",c.errSchemaPath=f+"/"+O,c.errorPath=r.util.getPathExpr(r.errorPath,O,r.opts.jsonPointers,!0),c.dataPathArr[y]=O;var I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",t+=" } ",u&&(t+=" if ("+m+") { ",h+="}")}if("object"==typeof b&&(r.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:r.util.schemaHasRules(b,r.RULES.all))){c.schema=b,c.schemaPath=r.schemaPath+".additionalItems",c.errSchemaPath=r.errSchemaPath+"/additionalItems",t+=" "+m+" = true; if ("+d+".length > "+o.length+") { for (var "+p+" = "+o.length+"; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",u&&(t+=" if (!"+m+") break; "),t+=" } } ",u&&(t+=" if ("+m+") { ",h+="}")}}else if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){c.schema=o,c.schemaPath=s,c.errSchemaPath=f,t+=" for (var "+p+" = 0; "+p+" < "+d+".length; "+p+"++) { ",c.errorPath=r.util.getPathExpr(r.errorPath,p,r.opts.jsonPointers,!0);D=d+"["+p+"]";c.dataPathArr[y]=p;I=r.validate(c);c.baseId=E,r.util.varOccurences(I,g)<2?t+=" "+r.util.varReplace(I,g,D)+" ":t+=" var "+g+" = "+D+"; "+I+" ",u&&(t+=" if (!"+m+") break; "),t+=" }"}return u&&(t+=" "+h+" if ("+v+" == errors) {"),t},maximum:Gr,minimum:Gr,maxItems:Yr,minItems:Yr,maxLength:Xr,minLength:Xr,maxProperties:re,minProperties:re,multipleOf:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;if(v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s,!v&&"number"!=typeof s)throw Error(e+" must be number");i+="var division"+n+";if (",v&&(i+=" "+t+" !== undefined && ( typeof "+t+" != 'number' || "),i+=" (division"+n+" = "+l+" / "+t+", ",i+=r.opts.multipleOfPrecision?" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+r.opts.multipleOfPrecision+" ":" division"+n+" !== parseInt(division"+n+") ",i+=" ) ",v&&(i+=" ) ");var c=c||[];c.push(i+=" ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { multipleOf: "+t+" } ",!1!==r.opts.messages&&(i+=" , message: 'should be multiple of ",i+=v?"' + "+t:t+"'"),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var h=i;return i=c.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+h+"]); ":" validate.errors = ["+h+"]; return false; ":" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},not:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f,t+=" var "+l+" = errors; ";var h,m=r.compositeRule;r.compositeRule=v.compositeRule=!0,v.createErrors=!1,v.opts.allErrors&&(h=v.opts.allErrors,v.opts.allErrors=!1),t+=" "+r.validate(v)+" ",v.createErrors=!0,h&&(v.opts.allErrors=h),r.compositeRule=v.compositeRule=m;var p=p||[];p.push(t+=" if ("+c+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var y=t;t=p.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } ")}else t+=" var err = ",!1!==r.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should NOT be valid' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(t+=" if (false) { ");return t},oneOf:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="valid"+i,v="errs__"+i,c=r.util.copy(r),h="";c.level++;var m="valid"+c.level,p=c.baseId,y="prevValid"+i,g="passingSchemas"+i;t+="var "+v+" = errors , "+y+" = false , "+l+" = false , "+g+" = null; ";var E=r.compositeRule;r.compositeRule=c.compositeRule=!0;var b=o;if(b)for(var w,F=-1,P=b.length-1;F0:r.util.schemaHasRules(w,r.RULES.all))?(c.schema=w,c.schemaPath=s+"["+F+"]",c.errSchemaPath=f+"/"+F,t+=" "+r.validate(c)+" ",c.baseId=p):t+=" var "+m+" = true; ",F&&(t+=" if ("+m+" && "+y+") { "+l+" = false; "+g+" = ["+g+", "+F+"]; } else { ",h+="}"),t+=" if ("+m+") { "+l+" = "+y+" = true; "+g+" = "+F+"; }";return r.compositeRule=c.compositeRule=E,t+=h+"if (!"+l+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { passingSchemas: "+g+" } ",!1!==r.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&u&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else { errors = "+v+"; if (vErrors !== null) { if ("+v+") vErrors.length = "+v+"; else vErrors = null; }",r.opts.allErrors&&(t+=" } "),t},pattern:function(r,e,a){var t,i=" ",n=r.level,o=r.dataLevel,s=r.schema[e],f=r.schemaPath+r.util.getProperty(e),u=r.errSchemaPath+"/"+e,d=!r.opts.allErrors,l="data"+(o||""),v=r.opts.v&&s&&s.v;v?(i+=" var schema"+n+" = "+r.util.getData(s.v,o,r.dataPathArr)+"; ",t="schema"+n):t=s;var c=v?"(new RegExp("+t+"))":r.usePattern(s);i+="if ( ",v&&(i+=" ("+t+" !== undefined && typeof "+t+" != 'string') || ");var h=h||[];h.push(i+=" !"+c+".test("+l+") ) { "),i="",!1!==r.createErrors?(i+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { pattern: ",i+=v?""+t:""+r.util.toQuotedString(s),i+=" } ",!1!==r.opts.messages&&(i+=" , message: 'should match pattern \"",i+=v?"' + "+t+" + '":""+r.util.escapeQuotes(s),i+="\"' "),r.opts.verbose&&(i+=" , schema: ",i+=v?"validate.schema"+f:""+r.util.toQuotedString(s),i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",d&&(i+=" else { "),i},properties:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r),c="";v.level++;var h="valid"+v.level,m="key"+i,p="idx"+i,y=v.dataLevel=r.dataLevel+1,g="data"+y,E="dataProperties"+i,b=Object.keys(o||{}).filter(k),w=r.schema.patternProperties||{},F=Object.keys(w).filter(k),P=r.schema.additionalProperties,$=b.length||F.length,j=!1===P,O="object"==typeof P&&Object.keys(P).length,x=r.opts.removeAdditional,D=j||O||x,I=r.opts.ownProperties,S=r.baseId,A=r.schema.required;if(A&&(!r.opts.v||!A.v)&&A.length8)t+=" || validate.schema"+s+".hasOwnProperty("+m+") ";else{var z=b;if(z)for(var R=-1,N=z.length-1;R0:r.util.schemaHasRules(Y,r.RULES.all)){var X=r.util.getProperty(Q),rr=(H=d+X,K&&void 0!==Y.default);v.schema=Y,v.schemaPath=s+X,v.errSchemaPath=f+"/"+r.util.escapeFragment(Q),v.errorPath=r.util.getPath(r.errorPath,Q,r.opts.jsonPointers),v.dataPathArr[y]=r.util.toQuotedString(Q);J=r.validate(v);if(v.baseId=S,r.util.varOccurences(J,g)<2){J=r.util.varReplace(J,g,H);var er=H}else{er=g;t+=" var "+g+" = "+H+"; "}if(rr)t+=" "+J+" ";else{if(_&&_[Q]){t+=" if ( "+er+" === undefined ",I&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=") { "+h+" = false; ";C=r.errorPath,B=f;var ar,tr=r.util.escapeQuotes(Q);r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPath(C,Q,r.opts.jsonPointers)),f=r.errSchemaPath+"/required",(ar=ar||[]).push(t),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+tr+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+tr+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";U=t;t=ar.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+U+"]); ":" validate.errors = ["+U+"]; return false; ":" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f=B,r.errorPath=C,t+=" } else { "}else u?(t+=" if ( "+er+" === undefined ",I&&(t+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=") { "+h+" = true; } else { "):(t+=" if ("+er+" !== undefined ",I&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", '"+r.util.escapeQuotes(Q)+"') "),t+=" ) { ");t+=" "+J+" } "}}u&&(t+=" if ("+h+") { ",c+="}")}}if(F.length){var ir=F;if(ir)for(var nr,or=-1,sr=ir.length-1;or0:r.util.schemaHasRules(Y,r.RULES.all)){v.schema=Y,v.schemaPath=r.schemaPath+".patternProperties"+r.util.getProperty(nr),v.errSchemaPath=r.errSchemaPath+"/patternProperties/"+r.util.escapeFragment(nr),t+=I?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+p+"=0; "+p+"<"+E+".length; "+p+"++) { var "+m+" = "+E+"["+p+"]; ":" for (var "+m+" in "+d+") { ",t+=" if ("+r.usePattern(nr)+".test("+m+")) { ",v.errorPath=r.util.getPathExpr(r.errorPath,m,r.opts.jsonPointers);H=d+"["+m+"]";v.dataPathArr[y]=m;J=r.validate(v);v.baseId=S,r.util.varOccurences(J,g)<2?t+=" "+r.util.varReplace(J,g,H)+" ":t+=" var "+g+" = "+H+"; "+J+" ",u&&(t+=" if (!"+h+") break; "),t+=" } ",u&&(t+=" else "+h+" = true; "),t+=" } ",u&&(t+=" if ("+h+") { ",c+="}")}}}return u&&(t+=" "+c+" if ("+l+" == errors) {"),t},propertyNames:function(r,e,a){var t=" ",i=r.level,n=r.dataLevel,o=r.schema[e],s=r.schemaPath+r.util.getProperty(e),f=r.errSchemaPath+"/"+e,u=!r.opts.allErrors,d="data"+(n||""),l="errs__"+i,v=r.util.copy(r);v.level++;var c="valid"+v.level;if(t+="var "+l+" = errors;",r.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:r.util.schemaHasRules(o,r.RULES.all)){v.schema=o,v.schemaPath=s,v.errSchemaPath=f;var h="key"+i,m="idx"+i,p="i"+i,y="' + "+h+" + '",g="data"+(v.dataLevel=r.dataLevel+1),E="dataProperties"+i,b=r.opts.ownProperties,w=r.baseId;b&&(t+=" var "+E+" = undefined; "),t+=b?" "+E+" = "+E+" || Object.keys("+d+"); for (var "+m+"=0; "+m+"<"+E+".length; "+m+"++) { var "+h+" = "+E+"["+m+"]; ":" for (var "+h+" in "+d+") { ",t+=" var startErrs"+i+" = errors; ";var F=h,P=r.compositeRule;r.compositeRule=v.compositeRule=!0;var $=r.validate(v);v.baseId=w,r.util.varOccurences($,g)<2?t+=" "+r.util.varReplace($,g,F)+" ":t+=" var "+g+" = "+F+"; "+$+" ",r.compositeRule=v.compositeRule=P,t+=" if (!"+c+") { for (var "+p+"=startErrs"+i+"; "+p+"0:r.util.schemaHasRules(E,r.RULES.all))||(h[h.length]=p)}}else h=o;if(v||h.length){var b=r.errorPath,w=v||h.length>=r.opts.loopRequired,F=r.opts.ownProperties;if(u)if(t+=" var missing"+i+"; ",w){v||(t+=" var "+c+" = validate.schema"+s+"; ");var P="' + "+(I="schema"+i+"["+(O="i"+i)+"]")+" + '";r.opts._errorDataPathProperty&&(r.errorPath=r.util.getPathExpr(b,I,r.opts.jsonPointers)),t+=" var "+l+" = true; ",v&&(t+=" if (schema"+i+" === undefined) "+l+" = true; else if (!Array.isArray(schema"+i+")) "+l+" = false; else {"),t+=" for (var "+O+" = 0; "+O+" < "+c+".length; "+O+"++) { "+l+" = "+d+"["+c+"["+O+"]] !== undefined ",F&&(t+=" && Object.prototype.hasOwnProperty.call("+d+", "+c+"["+O+"]) "),t+="; if (!"+l+") break; } ",v&&(t+=" } "),(D=D||[]).push(t+=" if (!"+l+") { "),t="",!1!==r.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(f)+" , params: { missingProperty: '"+P+"' } ",!1!==r.opts.messages&&(t+=" , message: '",t+=r.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+P+"\\'",t+="' "),r.opts.verbose&&(t+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var $=t;t=D.pop(),t+=!r.compositeRule&&u?r.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var j=h;if(j)for(var O=-1,x=j.length-1;O 1) { ";var h=r.schema.items&&r.schema.items.type,m=Array.isArray(h);if(!h||"object"==h||"array"==h||m&&(h.indexOf("object")>=0||h.indexOf("array")>=0))i+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+l+"[i], "+l+"[j])) { "+v+" = false; break outer; } } } ";else i+=" var itemIndices = {}, item; for (;i--;) { var item = "+l+"[i]; ",i+=" if ("+r.util["checkDataType"+(m?"s":"")](h,"item",r.opts.strictNumbers,!0)+") continue; ",m&&(i+=" if (typeof item == 'string') item = '\"' + item; "),i+=" if (typeof itemIndices[item] == 'number') { "+v+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";i+=" } ",c&&(i+=" } ");var p=p||[];p.push(i+=" if (!"+v+") { "),i="",!1!==r.createErrors?(i+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(u)+" , params: { i: i, j: j } ",!1!==r.opts.messages&&(i+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),r.opts.verbose&&(i+=" , schema: ",i+=c?"validate.schema"+f:""+s,i+=" , parentSchema: validate.schema"+r.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var y=i;i=p.pop(),i+=!r.compositeRule&&d?r.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",d&&(i+=" else { ")}else d&&(i+=" if (true) { ");return i},validate:Er},ae=T.toHash,te=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"],ie=function(r,e){for(var a=0;a{const e=new De({allErrors:!0});if(e.validate(Be,r),null!=e.errors){let r=Infinity,a=[];return e.errors.forEach(e=>{const t=e.schemaPath.split("/").length;t===r?a.push(Me(e)):t`Ainsley${r.dataPath} is invalid`,Be={h:"http://json-schema.org/draft-07/schema#",definitions:{Primitive:{anyOf:[{type:"string"},{type:"number"}]}},properties:{children:{items:{anyOf:[{items:[{type:"string"},{items:{items:[{type:"string"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"},type:"array"}],minItems:2,maxItems:2,type:"array"},{items:[{type:"string"},{anyOf:[{type:"object",additionalProperties:{o:"#/definitions/Primitive"}},{type:"array",items:{anyOf:[{o:"#/definitions/Primitive"},{items:[{o:"#/definitions/Primitive"},{o:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"}]}}]}],minItems:2,maxItems:2,type:"array"},{type:"string"},{o:"#"}]},type:"array"},variables:{type:"object",additionalProperties:{type:"object",additionalProperties:{o:"#/definitions/Primitive"}}},variations:{items:{items:{items:[{type:"string"},{type:"string"}],minItems:2,maxItems:2,type:"array"},type:"array"},type:"array"}},type:"object"},Ue=async(r,e=Le)=>{const a=Ce(r);if(a.length>0)throw Error("Invalid input Ainsley:\n"+a.join("\n"));const t=_(r);return Array.isArray(t.children)&&await Promise.all(t.children.map(async(r,a)=>{if("string"==typeof r&&r.startsWith("$")){const i=await He(r.slice(1),e);t.children[a]=i}return r})),t},Le=async r=>{try{return(await import("ainsley-config-"+r)).config}catch(e){try{const e=new URL(r),a=await t.default(e.href);let i=await a.text();try{i=JSON.parse(i)}catch(r){}return i}catch(e){return`/* ${r.trim()} */`}}},He=async(r,e)=>{try{const a=await e(r);return i(a)?await Ue(a,e):a}catch(e){return`/* ${r.trim()} */`}};var Je;let Ke=null===(Je=globalThis)||void 0===Je?void 0:Je.csso;void 0===Ke&&import("csso").then(({default:r})=>{Ke=r}).catch(()=>{});const Ze=r=>{const e="?+".indexOf(r[0])+1;return[e,e>0?r.slice(1):r]},Qe=(r,e)=>`${["","?","+"][r]}${e}`,We=r=>{try{return Ke.minify(r).css}catch(e){return(null==Ke?void 0:Ke.minify)?console.error(e):console.warn("`csso` - an optional dependency - is not installed; inline CSS will not be minified"),r}},Ge=/\{[a-z]+\}/gi,Ye=(r,e=new Set)=>(r.forEach(r=>{if(Array.isArray(r))Ye(r,e);else if("string"==typeof r){const a=r.match(Ge);for(let r=0;r<(null!=a?a:[]).length;r++)e.add(a[r].slice(1,-1))}}),e),Xe=(r,e,a)=>{var t,n;const o=null!==(t=r.children)&&void 0!==t?t:[],s=new Map,f={ainsley:r,parent:a,usageCounts:s,definedVariables:e},u=[f];for(let r=0;rZe(r)[1])]),f);new Set(t.map(r=>[...r.usageCounts.keys()]).reduce((r,e)=>[...r,...e],[])).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)}),u.push(...t)}else if(Array.isArray(a)){Ye(a).forEach(r=>{var e;s.set(r,(null!==(e=s.get(r))&&void 0!==e?e:0)+1)})}else o.splice(r,1,We(a))}return u};return r.DEFAULT_OPTIONS=s,r.ITERATOR_REGEX=o,r.combinations=n,r.defaultGetConfig=Le,r.embed=(r,e)=>{let a=null;void 0!==e&&(a=document.querySelector("style#"+e)),null===a&&(a=document.createElement("style"),a.type="text/css",void 0!==e&&a.setAttribute("id",e),document.head.appendChild(a)),a.innerHTML=r},r.flatten=Ue,r.generate=(r,e={})=>{const a={...s,...e};return u(d(r,a,{}),a)},r.getFlatConfig=He,r.isObject=i,r.minify=r=>{var e,a;const t=Ce(r);if(t.length>0)throw Error("Invalid input Ainsley:\n"+t.join("\n"));const i=Xe(_(r),new Set);for(let r=i.length-1;r>=0;r--){const t=i[r];if(void 0===t.ainsley.children||0===t.ainsley.children.length){if(void 0!==t.parent){const r=null!==(e=t.parent.ainsley.children)&&void 0!==e?e:[];r.splice(r.findIndex(r=>r===t.ainsley),1)}continue}for(let r=0;r0){const a=t.ainsley.children[r-1];"string"==typeof a&&t.ainsley.children.splice(--r,2,`${a}${e}`)}}const n=null!==(a=t.ainsley.variables)&&void 0!==a?a:{};if(Object.keys(n).forEach(r=>{var e,a,i;const[o,s]=Ze(r);if(t.usageCounts.has(s)){if(void 0!==t.parent){if(1===o&&t.parent.definedVariables.has(s))return void delete n[r];if((null!==(e=t.parent.usageCounts.get(s))&&void 0!==e?e:0)<2){"variables"in t.parent.ainsley||(t.parent.ainsley.variables={});const e=t.parent.ainsley.variables,f=null!==(a=Object.keys(e).find(r=>r.endsWith(s)))&&void 0!==a?a:Qe(o,""),[u]=Ze(f),d=null!==(i=e[f])&&void 0!==i?i:{},l=n[r];void 0!==e[f]&&delete e[f],delete n[r],e[Qe(2===o?u:0,s)]={...2===o?d:{},...l}}}}else delete n[r]}),0===Object.keys(n).length&&delete t.ainsley.variables,Array.isArray(t.ainsley.variations)&&(t.ainsley.variations=t.ainsley.variations.filter(r=>0!==r.length)),Array.isArray(t.ainsley.variations)&&0===t.ainsley.variations.length&&delete t.ainsley.variations,!("variations"in t.ainsley)&&!("variables"in t.ainsley)&&void 0!==t.parent){const r=t.parent.ainsley.children,e=r.findIndex(r=>r===t.ainsley);-1!==e&&r.splice(e,1,...t.ainsley.children)}}return i[0].ainsley},r.schema=Be,r.validate=Ce,r}({},fetch); //# sourceMappingURL=ainsley.production.js.map diff --git a/dist/ainsley.production.js.map b/dist/ainsley.production.js.map index fc8181f..5254231 100644 --- a/dist/ainsley.production.js.map +++ b/dist/ainsley.production.js.map @@ -1 +1 @@ -{"version":3,"file":"ainsley.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '-' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + propertyAbbreviation.toLowerCase(),\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + valueAbbreviation.toUpperCase(),\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word.charAt(0))\n .join('')\n .toLowerCase(),\n propertyName.toLowerCase()\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // blobs\n if (realm.Blob && object instanceof realm.Blob) {\n clone = new Blob([object], { type: object.type });\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["isObject","val","combinations","list","mods","index","addVariationToSelector","word","propertyName","toLowerCase","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","rulesListWithoutVariations","isArray","options","ainsleyRule","map","toStringFunction","Function","prototype","create","Object","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","hasOwnProperty","propertyIsEnumerable","SUPPORTS","WeakMap","getCleanClone","object","realm","constructor","Constructor","__proto__","call","indexOf","getObjectCloneLoose","handleCopy","cache","clone","key","set","symbols","length_1","symbol","getObjectCloneStrict","properties","concat","property","descriptor","get","value","error","Array","GLOBAL_THIS","self","window","global","console","copy","isStrict","getObjectClone","has","regExp","flags","Date","getTime","RegExp","source","ignoreCase","multiline","unicode","sticky","lastIndex","Map","forEach","Set","add","Blob","type","Buffer","isBuffer","allocUnsafe","ArrayBuffer","isView","buffer","slice","then","Error","WeakSet","_keys","push","_values","createCache","strict","merge","sets","xl","x","join","subexp","str","typeOf","o","undefined","toString","split","pop","shift","toUpperCase","toArray","obj","setInterval","assign","target","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","DEC_OCTET_RELAXED$","UNRESERVED$$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","IPRIVATE$$","IPV6ADDRESS$","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","RangeError","array","fn","result","mapDomain","string","parts","replace","ucs2decode","output","counter","charCodeAt","extra","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","oldi","w","t","baseMinusT","out","splice","fromCodePoint","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","reduce","acc","field","lastLongest","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","e","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","serialize","authority","charAt","absolutePath","resolveComponents","relative","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","http","isSecure","wsComponents","secure","resourceName","ws","O","ATEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","keys","valueOf","checkDataType","checkDataTypes","dataTypes","data","strictNumbers","code","types","toHash","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","require$$0","ucs2length","len","pos","varOccurences","dataVar","varReplace","expr","schemaHasRules","schema","rules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","toQuotedString","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","dataType","negate","EQUAL","AND","OK","NOT","arr","hash","IDENTIFIER","SINGLE_QUOTE","util","this","traverse","module","opts","cb","_traverse","pre","post","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","arrayKeywords","propsKeywords","keywords","allKeys","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","patternProperties","dependencies","default","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","format","maxItems","minItems","uniqueItems","maxProperties","minProperties","compile","root","ref","refVal","_refs","_schemas","SchemaObject","inlineRef","_opts","inlineRefs","validate","_compile","v","baseId","res","resolveSchema","p","URI","refPath","_getFullPath","getFullPath","_getId","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","fullPath","url","ids","schemaId","baseIds","fullPaths","localRefs","PREVENT_SCOPE_CHANGE","part","$ref","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","count","Infinity","TRAILING_SLASH_HASH","Validation","errorSubclass","message","ajv","validation","MissingRef","MissingRefError","missingRef","missingSchema","Subclass","cmp","f","cycles","node","seen","stringify","toJSON","isFinite","JSON","TypeError","seenIndex","it","$keyword","$ruleType","$async","$refKeywords","RULES","all","$id","strictKeywords","$unknownKwd","$keywordsMsg","logger","warn","isTop","async","sourceCode","processCode","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$valid","$$outStack","createErrors","messages","verbose","__err","compositeRule","$top","rootId","dataPathArr","useDefaults","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","nullable","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","arr1","$type","$i","l1","$parentData","arr2","i2","l2","arr3","$propertyKey","i3","l3","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","keyword","implements","impl","$ruleImplementsSomeKeyword","ValidationError","errorClasses","refs","patterns","patternsHash","defaults","defaultsHash","customRules","checkCompiling","compilation","_compilations","compiling","callValidate","apply","arguments","formats","_formats","localCompile","cv","endCompiling","_schema","_root","isRoot","validateGenerator","errorPath","resolveRef","usePattern","useCustomRule","vars","refValCode","patternCode","defaultCode","customRuleCode","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","replaceLocalRef","removeLocalRef","refId","inline","u","regexStr","valueStr","stableStringify","rule","validateSchema","deps","definition","every","errorsText","macro","compIndex","statement","Cache","_cache","put","del","clear","DATE","DAYS","TIME","HOSTNAME","URITEMPLATE","URL","JSON_POINTER_URI_FRAGMENT","mode","date","month","day","year","isLeapYear","time","full","hour","minute","second","fast","date-time","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","$schemaValue","$isData","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","$wasComposite","l","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$additionalItems","$currErrSchemaPath","require$$11","require$$12","require$$13","require$$14","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$regexp","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","$hasDefault","i4","$invalidName","$propertySch","$loopRequired","$itemType","require$$23","KEYWORDS","metaSchema","keywordsJsonPointers","compileAsync","meta","callback","loadSchema","loadMetaSchemaOf","schemaObj","_addSchema","_compileAsync","getSchema","Promise","added","schemaPromise","_loadingSchemas","removePromise","addSchema","loadMissingSchema","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","simpleTypes","validateKeyword","_addRule","ruleGroup","rg","custom","throwError","_validateKeyword","definitionSchema","Ajv","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","compileSchema","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","addKeyword","customKeyword","getKeyword","removeKeyword","$dataMetaSchema","META_IGNORE_OPTIONS","META_SUPPORT_DATA","ALL","log","noop","setLogger","group","implKeywords","ruleModules","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","require$$1","require$$2","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","maybeAinsley","lowestLength","formatError","defaultGetConfig","getFlatConfig","import","getConfig","csso","rawCSS","styleEl","children","child","definedVariables","thisVars","variable","parentVariable","mod","parentValue","variation","variations"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ainsley.production.js","sources":["../src/utils/index.ts","../src/generate/index.ts","../node_modules/fast-copy/src/utils.ts","../node_modules/fast-copy/src/index.ts","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/fast-deep-equal/index.js","../node_modules/ajv/lib/compile/util.js","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/compile/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/ajv.js","../src/validate/index.ts","../src/flatten/index.ts","../src/minify/index.ts","../src/embed/index.ts"],"sourcesContent":["export const isObject = (val: unknown): boolean =>\n !!(val !== null && typeof val === 'object' && !Array.isArray(val))\n\nexport const combinations = (mods: T[][]): T[][] => {\n let list: T[][] = [[]]\n let index = 0\n while (index < mods.length) {\n list = mods[index++].flatMap((option) =>\n list.map((prev) => prev.concat([option]))\n )\n }\n return list\n}\n","import {\n Ainsley,\n AinsleyRule,\n AinsleyPropertyOrPlaceholder,\n AinsleyVariableMap,\n AinsleyChild,\n AinsleyChildren,\n AinsleyGenerateOptions\n} from '../types'\nimport { combinations } from '../utils'\n\ninterface AinsleyASTNode {\n $variations: Array<[string, string]>\n $content: string | AinsleyRule\n}\ntype AinsleyAST = AinsleyASTNode[]\n\nexport const ITERATOR_REGEX = '\\\\{[a-zA-Z0-9_-]+\\\\}'\nexport const DEFAULT_OPTIONS: AinsleyGenerateOptions = {\n addVariationToSelector: (selector, variationAbbreviation) =>\n variationAbbreviation + '_' + selector,\n addPropertyToSelector: (selector, propertyAbbreviation) =>\n selector + '-' + propertyAbbreviation,\n addValueToSelector: (selector, valueAbbreviation) =>\n selector + '-' + valueAbbreviation,\n abbreviateProperty: (propertyName) => [\n propertyName\n .split('-')\n .map((word) => word[0])\n .join(''),\n propertyName\n ]\n}\n\nconst ITERATOR_SEARCH = new RegExp(ITERATOR_REGEX, 'g')\n\nexport const generate = (\n ainsley: Ainsley,\n options: Partial = {}\n): string => {\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\n return generateFromAst(\n ainsleyToAst(ainsley, mergedOptions, {}),\n mergedOptions\n )\n}\n\n// next step:\n// get variations to append to nested variations by passing them down;\n// kinda like variables. this allows us to merge nested variations in the output\n// which is kinda fun. but mostly because I don't know another way to do it\n\n// next next step:\n// get combinations to return a read only array - avoiding the need to\n// recursively clone and concat - also means comparisons for this flattening\n// business is made much simpler\n\nconst generateFromAst = (\n ainsleyRules: AinsleyAST,\n options: AinsleyGenerateOptions\n): string => {\n let css = ''\n let lastVariations: Array<[string, string]> = []\n for (let i = 0; i < ainsleyRules.length; i++) {\n const ainsleyRule = ainsleyRules[i]\n\n let firstChange = 0\n while (\n firstChange < lastVariations.length &&\n lastVariations[firstChange] === ainsleyRule.$variations[firstChange]\n ) {\n firstChange += 1\n }\n\n const variationsToClose = lastVariations.slice(firstChange)\n for (const variationToClose of variationsToClose) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n const variationsToOpen = ainsleyRule.$variations.slice(firstChange)\n for (const variationToOpen of variationsToOpen) {\n const variationInstruction = variationToOpen[1]\n if (variationInstruction.startsWith('@'))\n css += `${variationInstruction}{`\n }\n\n if (typeof ainsleyRule.$content === 'string') {\n css += ainsleyRule.$content\n } else {\n let selector = ainsleyRule.$content[0]\n let selectorSuffix = ''\n\n for (let i = 0; i < ainsleyRule.$variations.length; i++) {\n const variationAbbreviation = ainsleyRule.$variations[i][0]\n const variationInstruction = ainsleyRule.$variations[i][1]\n if (variationInstruction === '') continue\n if (!variationInstruction.startsWith('@')) {\n selectorSuffix += `${variationInstruction}`\n }\n selector = options.addVariationToSelector(\n selector,\n variationAbbreviation\n )\n }\n css += `.${selector}${selectorSuffix}{${ainsleyRule.$content[1]\n .map((declaration) => `${declaration[0]}:${declaration[1]}`)\n .join(';')}}`\n }\n lastVariations = ainsleyRule.$variations\n }\n for (const variationToClose of lastVariations) {\n const variationInstruction = variationToClose[1]\n if (variationInstruction.startsWith('@')) css += '}'\n }\n return css\n}\n\nconst ainsleyToAst = (\n ainsley: Ainsley,\n options: AinsleyGenerateOptions,\n inheritedVariables: AinsleyVariableMap\n): AinsleyAST => {\n // first, compute variables\n const newVariables = { ...inheritedVariables }\n if (ainsley.variables !== undefined) {\n const variables = ainsley.variables\n Object.keys(variables).map((variable: string) => {\n const modAndBase = parseVariable(variable)\n const mod = modAndBase[0]\n const base = modAndBase[1]\n if (mod === 0 || (mod === 1 && newVariables[base] === undefined)) {\n newVariables[base] = variables[variable]\n } else if (mod === 2) {\n newVariables[base] = {\n ...(inheritedVariables[base] ?? {}),\n ...variables[variable]\n }\n }\n })\n }\n\n // then, flatten children into ast\n const rulesListWithoutVariations =\n ainsley.children === undefined\n ? []\n : ainsleyChildrenToAst(ainsley.children, options, newVariables)\n\n // lastly, multiply ast with variations\n const rulesList = combinations(\n (ainsley.variations ?? []).map((variationSet) =>\n [['', ''] as [string, string]].concat(variationSet)\n )\n ).flatMap((variations) =>\n rulesListWithoutVariations.map((ainsleyASTNode) => ({\n $variations: [...variations, ...ainsleyASTNode.$variations],\n $content: ainsleyASTNode.$content\n }))\n )\n\n return rulesList\n}\n\nconst ainsleyChildrenToAst = (\n ainsleyChildren: AinsleyChildren,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST =>\n ainsleyChildren.flatMap((child: AinsleyChild) => {\n if (typeof child === 'string') {\n return [\n {\n $variations: [],\n $content: child\n }\n ]\n } else if (Array.isArray(child)) {\n if (Array.isArray(child[1])) {\n return ainsleyRuleToAst(child as AinsleyRule, options, variables)\n } else {\n return ainsleyPropertyToAst(\n child as AinsleyPropertyOrPlaceholder,\n options\n )\n }\n } else {\n return ainsleyToAst(child, options, variables)\n }\n })\n\ntype AinsleyGenerateIteratorContext = [string, string, string | number, number]\n\nconst ainsleyRuleToAst = (\n ainsleyRule: AinsleyRule,\n options: AinsleyGenerateOptions,\n variables: AinsleyVariableMap\n): AinsleyAST => {\n const selector = ainsleyRule[0]\n const declarations = ainsleyRule[1]\n const variablesFound: Array<[string, number]> = []\n declarations.map((declaration) => {\n const propertyMatches = declaration[0].match(ITERATOR_SEARCH) ?? []\n const valueMatches = `${declaration[1]}`.match(ITERATOR_SEARCH) ?? []\n propertyMatches.map((match) => variablesFound.push([match, 0]))\n valueMatches.map((match) => variablesFound.push([match, 1]))\n })\n\n return combinations(\n variablesFound.map((iteratorAndType: [string, number]) => {\n const iterator = iteratorAndType[0]\n const location = iteratorAndType[1]\n const variableName = iterator.slice(1, -1)\n\n return Object.keys(variables[variableName]).map(\n (abbreviation: string): AinsleyGenerateIteratorContext => [\n iterator,\n abbreviation,\n variables[variableName][abbreviation],\n location\n ]\n )\n })\n ).map((combination) => {\n let combinationIndex = 0\n let current: AinsleyGenerateIteratorContext = combination[combinationIndex]\n\n return {\n $variations: [],\n $content: [\n combination.reduce(\n (selector: string, part: AinsleyGenerateIteratorContext) => {\n if (part[3] === 0) {\n return options.addPropertyToSelector(selector, part[1])\n } /* if (part[3] === 1) */ else {\n return options.addValueToSelector(selector, part[1])\n }\n },\n selector\n ),\n declarations.map((declaration) => {\n const replacePart = (declarationPart: string): string => {\n while (\n combinationIndex < combination.length &&\n declarationPart.includes(current[0])\n ) {\n declarationPart = declarationPart.replace(\n current[0],\n `${current[2]}`\n )\n current = combination[++combinationIndex]\n }\n return declarationPart\n }\n return [replacePart(declaration[0]), replacePart(`${declaration[1]}`)]\n })\n ]\n }\n })\n}\n\nconst ainsleyPropertyToAst = (\n ainsleyProperty: AinsleyPropertyOrPlaceholder,\n options: AinsleyGenerateOptions\n): AinsleyAST => {\n const propertyInput = ainsleyProperty[0]\n const propertyValues = ainsleyProperty[1]\n\n const propertyData: [string, string] = options.abbreviateProperty(\n propertyInput\n )\n const propertyAbbreviation = propertyData[0]\n const propertyName = propertyData[1]\n\n return Object.keys(propertyValues).map((valueAbbreviation: string) => ({\n $variations: [],\n $content: [\n options.addValueToSelector(\n options.addPropertyToSelector('', propertyAbbreviation),\n valueAbbreviation\n ),\n [[propertyName, propertyValues[valueAbbreviation]]]\n ]\n }))\n}\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = '?+'.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n","const { toString: toStringFunction } = Function.prototype;\nconst {\n create,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\nconst { hasOwnProperty, propertyIsEnumerable } = Object.prototype;\n\n/**\n * @enum\n *\n * @const {Object} SUPPORTS\n *\n * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported\n * @property {boolean} WEAKMAP is WeakMap supported\n */\nexport const SUPPORTS = {\n SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',\n WEAKMAP: typeof WeakMap === 'function',\n};\n\n/**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const createCache = (): FastCopy.Cache => {\n if (SUPPORTS.WEAKMAP) {\n return new WeakMap();\n }\n\n // tiny implementation of WeakMap\n const object = create({\n has: (key: any) => !!~object._keys.indexOf(key),\n set: (key: any, value: any) => {\n object._keys.push(key);\n object._values.push(value);\n },\n get: (key: any) => object._values[object._keys.indexOf(key)],\n });\n\n object._keys = [];\n object._values = [];\n\n return object;\n};\n\n/**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\nexport const getCleanClone = (object: any, realm: FastCopy.Realm): any => {\n if (!object.constructor) {\n return create(null);\n }\n\n const { constructor: Constructor } = object;\n const prototype = object.__proto__ || getPrototypeOf(object);\n\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch {}\n }\n\n return create(prototype);\n};\n\n/**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneLoose: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n\n if (SUPPORTS.SYMBOL_PROPERTIES) {\n const symbols: symbol[] = getOwnPropertySymbols(object);\n\n const { length } = symbols;\n\n if (length) {\n for (let index = 0, symbol; index < length; index++) {\n symbol = symbols[index];\n\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\nexport const getObjectCloneStrict: FastCopy.ObjectCloner = (\n object: any,\n realm: FastCopy.Realm,\n handleCopy: FastCopy.Copier,\n cache: FastCopy.Cache,\n): any => {\n const clone: any = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n\n const properties: (string | symbol)[] = SUPPORTS.SYMBOL_PROPERTIES\n ? getOwnPropertyNames(object).concat((getOwnPropertySymbols(object) as unknown) as string[])\n : getOwnPropertyNames(object);\n\n const { length } = properties;\n\n if (length) {\n for (let index = 0, property, descriptor; index < length; index++) {\n property = properties[index];\n\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n }\n\n return clone;\n};\n\n/**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\nexport const getRegExpFlags = (regExp: RegExp): string => {\n let flags = '';\n\n if (regExp.global) {\n flags += 'g';\n }\n\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n\n if (regExp.multiline) {\n flags += 'm';\n }\n\n if (regExp.unicode) {\n flags += 'u';\n }\n\n if (regExp.sticky) {\n flags += 'y';\n }\n\n return flags;\n};\n","// utils\nimport { createCache, getObjectCloneLoose, getObjectCloneStrict, getRegExpFlags } from './utils';\n\nconst { isArray } = Array;\n\nconst GLOBAL_THIS = (() => {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n})();\n\n/**\n * @function copy\n *\n * @description\n * copy an object deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The object is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\nfunction copy(object: T, options?: FastCopy.Options): T {\n // manually coalesced instead of default parameters for performance\n const isStrict: boolean = !!(options && options.isStrict);\n const realm: FastCopy.Realm = (options && options.realm) || GLOBAL_THIS;\n\n const getObjectClone: FastCopy.ObjectCloner = isStrict\n ? getObjectCloneStrict\n : getObjectCloneLoose;\n\n /**\n * @function handleCopy\n *\n * @description\n * copy the object recursively based on its type\n *\n * @param object the object to copy\n * @returns the copied object\n */\n const handleCopy: FastCopy.Copier = (object: any, cache: FastCopy.Cache): any => {\n if (!object || typeof object !== 'object') {\n return object;\n } if (cache.has(object)) {\n return cache.get(object);\n }\n\n const { constructor: Constructor } = object;\n\n // plain objects\n if (Constructor === realm.Object) {\n return getObjectClone(object, realm, handleCopy, cache);\n }\n\n let clone: any;\n // arrays\n if (isArray(object)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(object, realm, handleCopy, cache);\n }\n\n const { length } = object;\n\n clone = new Constructor();\n cache.set(object, clone);\n\n for (let index: number = 0; index < length; index++) {\n clone[index] = handleCopy(object[index], cache);\n }\n\n return clone;\n }\n\n // dates\n if (object instanceof realm.Date) {\n return new Constructor(object.getTime());\n }\n\n // regexps\n if (object instanceof realm.RegExp) {\n clone = new Constructor(object.source, object.flags || getRegExpFlags(object));\n\n clone.lastIndex = object.lastIndex;\n\n return clone;\n }\n\n // maps\n if (realm.Map && object instanceof realm.Map) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any, key: any) => {\n clone.set(key, handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // sets\n if (realm.Set && object instanceof realm.Set) {\n clone = new Constructor();\n cache.set(object, clone);\n\n object.forEach((value: any) => {\n clone.add(handleCopy(value, cache));\n });\n\n return clone;\n }\n\n // blobs\n if (realm.Blob && object instanceof realm.Blob) {\n clone = new Blob([object], { type: object.type });\n return clone;\n }\n\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(object)) {\n clone = realm.Buffer.allocUnsafe\n ? realm.Buffer.allocUnsafe(object.length)\n : new Constructor(object.length);\n\n cache.set(object, clone);\n object.copy(clone);\n\n return clone;\n }\n\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(object)) {\n clone = new Constructor(object.buffer.slice(0));\n cache.set(object, clone);\n return clone;\n }\n\n // arraybuffers\n if (object instanceof realm.ArrayBuffer) {\n clone = object.slice(0);\n cache.set(object, clone);\n return clone;\n }\n }\n\n // if the object cannot / should not be cloned, don't\n if (\n // promise-like\n typeof object.then === 'function' ||\n // errors\n object instanceof Error ||\n // weakmaps\n (realm.WeakMap && object instanceof realm.WeakMap) ||\n // weaksets\n (realm.WeakSet && object instanceof realm.WeakSet)\n ) {\n return object;\n }\n\n // assume anything left is a custom constructor\n return getObjectClone(object, realm, handleCopy, cache);\n };\n\n return handleCopy(object, createCache());\n}\n\n/**\n * @function strictCopy\n *\n * @description\n * copy the object with `strict` option pre-applied\n *\n * @param object the object to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) object the object is copied from\n * @returns the copied object\n */\ncopy.strict = function strictCopy(object: any, options?: FastCopy.Options) {\n return copy(object, {\n isStrict: true,\n realm: options ? options.realm : void 0,\n });\n};\n\nexport default copy;\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-?)*(?:[0-9KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[KSa-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0 : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i {\n const ajv = new Ajv({ allErrors: true })\n ajv.validate(schema, maybeAinsley)\n\n if (ajv.errors !== null && ajv.errors !== undefined) {\n // find lowest error and show that\n let lowestLength = Infinity\n let lowestErrors: string[] = []\n ajv.errors.forEach((error) => {\n const pathLength = error.schemaPath.split('/').length\n if (pathLength === lowestLength) {\n lowestErrors.push(formatError(error))\n } else if (pathLength < lowestLength) {\n lowestErrors = [formatError(error)]\n lowestLength = pathLength\n }\n })\n return lowestErrors\n } else {\n return []\n }\n}\n\nconst formatError = (error: ErrorObject): string =>\n `Ainsley${error.dataPath} is invalid`\n\n// prettier-ignore\nexport const schema = {\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"definitions\": {\n \"Primitive\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"properties\": {\n \"children\": {\n \"items\": {\n \"anyOf\": [\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"items\": [\n {\n \"$ref\": \"#/definitions/Primitive\"\n },\n {\n \"$ref\": \"#/definitions/Primitive\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n }\n ]\n }\n }\n ]\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#\"\n }\n ]\n },\n \"type\": \"array\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/Primitive\"\n }\n }\n },\n \"variations\": {\n \"items\": {\n \"items\": {\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n }\n ],\n \"minItems\": 2,\n \"maxItems\": 2,\n \"type\": \"array\"\n },\n \"type\": \"array\"\n },\n \"type\": \"array\"\n }\n },\n \"type\": \"object\"\n};\n","import fetch from 'isomorphic-unfetch'\nimport copy from 'fast-copy'\nimport { Ainsley, AinsleyChild, AinsleyChildren } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n/* config with external dependencies => flat config */\nexport const flatten = async (\n configWithPlugins: Ainsley,\n getConfig = defaultGetConfig\n): Promise => {\n // validate\n const errors = validate(configWithPlugins)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // deep clone as we'll be mutating\n const flatAinsley = copy(configWithPlugins)\n\n // check for configs and inject them\n if (Array.isArray(flatAinsley.children)) {\n await Promise.all(\n flatAinsley.children.map(\n async (child: AinsleyChild, i: number): Promise => {\n if (typeof child === 'string') {\n if (child.startsWith('$')) {\n const flatConfig = await getFlatConfig(child.slice(1), getConfig)\n ;(flatAinsley.children as AinsleyChildren)[i] = flatConfig\n }\n }\n return child\n }\n )\n )\n }\n\n return flatAinsley\n}\n\nexport const defaultGetConfig = async (ref: string): Promise => {\n try {\n return (await import(`ainsley-config-${ref}`)).config\n } catch (err) {\n try {\n const url = new URL(ref)\n const response = await fetch(url.href)\n let body = await response.text()\n try {\n body = JSON.parse(body)\n } catch (err) {}\n return body\n } catch (err) {\n return `/* ${ref.trim()} */`\n }\n }\n}\n\nexport const getFlatConfig = async (\n ref: string,\n getConfig: (config: string) => Promise\n): Promise => {\n try {\n const config = await getConfig(ref)\n if (isObject(config)) {\n return await flatten(config as Ainsley, getConfig)\n } else {\n return config\n }\n } catch (e) {\n return `/* ${ref.trim()} */`\n }\n}\n","import copy from 'fast-copy'\nimport { Ainsley, AinsleyChildren, AinsleyVariableMap } from '../types'\nimport { validate } from '../validate'\nimport { isObject } from '../utils'\n\n// Using any as csso doesn't expose its types\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet csso: any = (globalThis as { csso?: any })?.csso\nif (csso === undefined) {\n import('csso')\n .then(({ default: _csso }) => {\n csso = _csso\n })\n .catch(() => {\n //\n })\n}\n\n/*\nTODOs:\n- mangle variable names\n- if a variable is an empty object, remove all uses of it\n- check if strings can be turnt into numbers\n*/\n\n/* flat config => minified (and still flat) config */\nexport const minify = (ainsley: Ainsley): Ainsley => {\n // validate input\n const errors = validate(ainsley)\n if (errors.length > 0) {\n throw new Error(`Invalid input Ainsley:\\n${errors.join('\\n')}`)\n }\n\n // clone and build ast list (mutates input)\n const list = toAST(copy(ainsley), new Set())\n\n // collapse ast from bottom up\n for (let i = list.length - 1; i >= 0; i--) {\n const node = list[i]\n\n // if no children\n if (\n node.ainsley.children === undefined ||\n node.ainsley.children.length === 0\n ) {\n // remove it from its parent\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children ?? []\n parentChildren.splice(\n parentChildren.findIndex((child) => child === node.ainsley),\n 1\n )\n }\n // skip rest of the checks\n continue\n }\n\n // merge strings, and delete any empty ones\n for (let i = 0; i < node.ainsley.children.length; i++) {\n const child = node.ainsley.children[i]\n if (typeof child === 'string') {\n if (child.length === 0) {\n // remove empty string\n node.ainsley.children.splice(i--, 1)\n } else if (i > 0) {\n const prevSibling = node.ainsley.children[i - 1]\n if (typeof prevSibling === 'string') {\n // merge non-empty strings\n node.ainsley.children.splice(--i, 2, `${prevSibling}${child}`)\n }\n }\n }\n }\n\n // lift variables up if possible\n const thisVars = node.ainsley.variables ?? {}\n Object.keys(thisVars).forEach((variable) => {\n const [mod, base] = parseVariable(variable)\n\n if (node.usageCounts.has(base)) {\n // used, see if we can lift it\n\n if (node.parent !== undefined) {\n // remove default variables that are already defined\n if (mod === 1 && node.parent.definedVariables.has(base)) {\n delete thisVars[variable]\n return\n }\n\n // check how many siblings use this variable\n // 1 implies that this is the only child that uses it\n // so it can be lifted\n if ((node.parent.usageCounts.get(base) ?? 0) < 2) {\n if (!('variables' in node.parent.ainsley)) {\n node.parent.ainsley.variables = {}\n }\n\n const parentVars = node.parent.ainsley\n .variables as AinsleyVariableMap\n const parentVariable =\n Object.keys(parentVars).find((variable) =>\n variable.endsWith(base)\n ) ?? buildVariable(mod, '')\n const [parentMod] = parseVariable(parentVariable)\n const parentValue = parentVars[parentVariable] ?? {}\n const childValue = thisVars[variable]\n\n // remove old parent variable\n if (parentVars[parentVariable] !== undefined) {\n delete parentVars[parentVariable]\n }\n\n // remove old child variable\n delete thisVars[variable]\n\n // add new variable to parent\n parentVars[buildVariable(mod === 2 ? parentMod : 0, base)] = {\n ...(mod === 2 ? parentValue : {}),\n ...childValue\n }\n }\n }\n } else {\n // Remove unused variable\n delete thisVars[variable]\n }\n })\n\n // delete variables object if empty\n if (Object.keys(thisVars).length === 0) {\n delete node.ainsley.variables\n }\n\n // delete any empty variation\n if (Array.isArray(node.ainsley.variations)) {\n node.ainsley.variations = node.ainsley.variations.filter(\n (variation) => variation.length !== 0\n )\n }\n\n // delete variations array if empty\n if (Array.isArray(node.ainsley.variations)) {\n if (node.ainsley.variations.length === 0) delete node.ainsley.variations\n }\n\n // if node does nothing, merge it into its parent\n // (this only works with variables because by now each variable is at its\n // highest scope)\n if (!('variations' in node.ainsley || 'variables' in node.ainsley)) {\n if (node.parent !== undefined) {\n const parentChildren = node.parent.ainsley.children as AinsleyChildren\n const indexInParent = parentChildren.findIndex(\n (child) => child === node.ainsley\n )\n\n if (indexInParent !== -1) {\n parentChildren.splice(indexInParent, 1, ...node.ainsley.children)\n }\n }\n }\n }\n\n return list[0].ainsley\n}\n\nconst MODIFIERS = '?+'\n\nconst parseVariable = (variable: string): [number, string] => {\n const mod = MODIFIERS.indexOf(variable[0]) + 1\n const base = mod > 0 ? variable.slice(1) : variable\n return [mod, base]\n}\n\nconst buildVariable = (mod: number, base: string): string =>\n `${['', '?', '+'][mod]}${base}`\n\nconst minifyRaw = (rawCSS: string) => {\n try {\n return csso.minify(rawCSS).css\n } catch (error) {\n if (csso?.minify) {\n console.error(error)\n } else {\n console.warn(\n '`csso` - an optional dependency - is not installed; inline CSS will not be minified'\n )\n }\n return rawCSS\n }\n}\n\nconst iteratorRegex = /\\{[a-z]+\\}/gi\nconst searchForUsages = (\n arr: Array>,\n set: Set = new Set()\n): Set => {\n arr.forEach((val) => {\n if (Array.isArray(val)) {\n searchForUsages(val, set)\n } else if (typeof val === 'string') {\n const match = val.match(iteratorRegex)\n for (let i = 0; i < (match ?? []).length; i++) {\n set.add((match as string[])[i].slice(1, -1))\n }\n }\n })\n return set\n}\n\ninterface ASTNode {\n parent: ASTNode | undefined\n ainsley: Ainsley\n usageCounts: Map\n definedVariables: Set\n}\n\nconst toAST = (\n ainsley: Ainsley,\n definedVariables: Set,\n parent?: ASTNode\n): ASTNode[] => {\n const children = ainsley.children ?? []\n const usageCounts: Map = new Map()\n const node = { ainsley, parent, usageCounts, definedVariables }\n\n const topologicalList = [node]\n\n for (let i = 0; i < children.length; i++) {\n const next = children[i]\n if (isObject(next)) {\n const ainsley = next as Ainsley\n const variables = ainsley.variables ?? {}\n\n const childNodes = toAST(\n ainsley,\n new Set([\n ...definedVariables,\n ...Object.keys(variables).map(\n (variable: string) => parseVariable(variable)[1]\n )\n ]),\n node\n )\n\n new Set(\n childNodes\n .map((node) => [...node.usageCounts.keys()])\n .reduce((arr, keys) => [...arr, ...keys], [])\n ).forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n\n topologicalList.push(...childNodes)\n } else if (Array.isArray(next)) {\n const usages = searchForUsages(next)\n usages.forEach((variable) => {\n usageCounts.set(variable, (usageCounts.get(variable) ?? 0) + 1)\n })\n } else {\n children.splice(i, 1, minifyRaw(next as string))\n }\n }\n\n return topologicalList as ASTNode[]\n}\n","// singleton embed pattern, using id as the unique identifier\nexport const embed = (css: string, id?: string): void => {\n let styleEl: HTMLStyleElement | null = null\n if (id !== undefined) styleEl = document.querySelector(`style#${id}`)\n\n if (styleEl === null) {\n styleEl = document.createElement('style')\n styleEl.type = 'text/css'\n if (id !== undefined) styleEl.setAttribute('id', id)\n document.head.appendChild(styleEl)\n }\n\n styleEl.innerHTML = css\n}\n"],"names":["isObject","val","combinations","list","mods","index","propertyName","length","css","$content","$variations","variationAbbreviation","base","_a","ainsley","ainsleyChildrenToAst","rulesListWithoutVariations","isArray","options","ainsleyRule","map","toStringFunction","Function","prototype","create","Object","defineProperty","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","hasOwnProperty","propertyIsEnumerable","SUPPORTS","WeakMap","getCleanClone","object","realm","constructor","Constructor","__proto__","call","indexOf","getObjectCloneLoose","handleCopy","cache","clone","key","set","symbols","length_1","symbol","getObjectCloneStrict","properties","concat","property","descriptor","get","value","error","Array","GLOBAL_THIS","self","window","global","console","copy","isStrict","getObjectClone","has","regExp","flags","Date","getTime","RegExp","source","ignoreCase","multiline","unicode","sticky","lastIndex","Map","forEach","Set","add","Blob","type","Buffer","isBuffer","allocUnsafe","ArrayBuffer","isView","buffer","slice","then","Error","WeakSet","_keys","push","_values","createCache","strict","merge","sets","xl","x","join","subexp","str","typeOf","o","undefined","toString","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","setInterval","assign","target","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","DEC_OCTET_RELAXED$","UNRESERVED$$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","PCHAR$","IPRIVATE$$","IPV6ADDRESS$","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","RangeError","array","fn","result","mapDomain","string","parts","replace","ucs2decode","output","counter","charCodeAt","extra","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","oldi","w","t","baseMinusT","out","splice","fromCodePoint","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","reduce","acc","field","lastLongest","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","e","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","serialize","authority","charAt","absolutePath","resolveComponents","relative","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","http","isSecure","wsComponents","secure","resourceName","ws","O","ATEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","keys","valueOf","checkDataType","checkDataTypes","dataTypes","data","strictNumbers","code","types","toHash","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","require$$0","ucs2length","len","pos","varOccurences","dataVar","varReplace","expr","schemaHasRules","schema","rules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","toQuotedString","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","dataType","negate","EQUAL","AND","OK","NOT","arr","hash","IDENTIFIER","SINGLE_QUOTE","util","this","traverse","module","opts","cb","_traverse","pre","post","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","arrayKeywords","propsKeywords","keywords","allKeys","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","patternProperties","dependencies","default","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","format","maxItems","minItems","uniqueItems","maxProperties","minProperties","compile","root","ref","refVal","_refs","_schemas","SchemaObject","inlineRef","_opts","inlineRefs","validate","_compile","v","baseId","res","resolveSchema","p","URI","refPath","_getFullPath","getFullPath","_getId","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","fullPath","url","ids","schemaId","baseIds","fullPaths","localRefs","PREVENT_SCOPE_CHANGE","part","$ref","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","count","Infinity","TRAILING_SLASH_HASH","Validation","errorSubclass","message","ajv","validation","MissingRef","MissingRefError","missingRef","missingSchema","Subclass","cmp","f","cycles","node","seen","stringify","toJSON","isFinite","JSON","TypeError","seenIndex","it","$keyword","$ruleType","$async","$refKeywords","RULES","all","$id","strictKeywords","$unknownKwd","$keywordsMsg","logger","warn","isTop","async","sourceCode","processCode","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$valid","$$outStack","createErrors","messages","verbose","__err","compositeRule","$top","rootId","dataPathArr","useDefaults","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","nullable","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","arr1","$type","$i","l1","$parentData","arr2","i2","l2","arr3","$propertyKey","i3","l3","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","keyword","implements","impl","$ruleImplementsSomeKeyword","ValidationError","errorClasses","refs","patterns","patternsHash","defaults","defaultsHash","customRules","checkCompiling","compilation","_compilations","compiling","callValidate","apply","arguments","formats","_formats","localCompile","cv","endCompiling","_schema","_root","isRoot","validateGenerator","errorPath","resolveRef","usePattern","useCustomRule","vars","refValCode","patternCode","defaultCode","customRuleCode","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","replaceLocalRef","removeLocalRef","refId","inline","u","regexStr","valueStr","stableStringify","rule","validateSchema","deps","definition","every","errorsText","macro","compIndex","statement","Cache","_cache","put","del","clear","DATE","DAYS","TIME","HOSTNAME","URITEMPLATE","URL","JSON_POINTER_URI_FRAGMENT","mode","date","month","day","year","isLeapYear","time","full","hour","minute","second","fast","date-time","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","$schemaValue","$isData","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","$wasComposite","l","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$additionalItems","$currErrSchemaPath","require$$11","require$$12","require$$13","require$$14","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$regexp","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","$hasDefault","i4","$invalidName","$propertySch","$loopRequired","$itemType","require$$23","KEYWORDS","metaSchema","keywordsJsonPointers","compileAsync","meta","callback","loadSchema","loadMetaSchemaOf","schemaObj","_addSchema","_compileAsync","getSchema","Promise","added","schemaPromise","_loadingSchemas","removePromise","addSchema","loadMissingSchema","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","simpleTypes","validateKeyword","_addRule","ruleGroup","rg","custom","throwError","_validateKeyword","definitionSchema","Ajv","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","compileSchema","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","addKeyword","customKeyword","getKeyword","removeKeyword","$dataMetaSchema","META_IGNORE_OPTIONS","META_SUPPORT_DATA","ALL","log","noop","setLogger","group","implKeywords","ruleModules","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","require$$1","require$$2","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","maybeAinsley","lowestLength","formatError","defaultGetConfig","getFlatConfig","import","getConfig","csso","rawCSS","styleEl","children","child","definedVariables","thisVars","variable","parentVariable","mod","parentValue","variation","variations"],"mappings":"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"} \ No newline at end of file diff --git a/examples/basic-html/index.html b/examples/basic-html/index.html deleted file mode 100644 index 2f6fd70..0000000 --- a/examples/basic-html/index.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - Basic HTML - - - -

Lorem ipsum

-

This very simple example shows some basic principles along with an - example of responsive class names, combining variables and using inline - CSS. -

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id aliquet - tortor. Quisque blandit semper lobortis. Curabitur urna ex, fermentum ut - vestibulum sed, rutrum vitae nisi. Quisque imperdiet euismod scelerisque. - Pellentesque facilisis augue mi, vel ultricies diam scelerisque egestas. - Nunc dolor metus, pharetra at sodales nec, molestie feugiat urna. - Vestibulum facilisis risus eget ligula ornare bibendum. Nulla mollis - vulputate risus, ac auctor dolor vulputate non. Praesent at rutrum ipsum. - Duis vestibulum tincidunt odio, ac bibendum sem ultricies aliquam.

-

Aliquam erat volutpat. Vivamus non urna congue, pellentesque nisi sit - amet, interdum tortor. Cras in convallis lorem. Aliquam in erat laoreet - ipsum semper tempus. In eget magna lorem. Nunc gravida, nisi convallis - egestas dignissim, est mi rutrum urna, vitae consequat erat diam nec quam. - Donec et pellentesque urna, sit amet interdum elit. Nulla eget orci - scelerisque, pharetra ante ut, elementum ligula. In sit amet lorem diam. - Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere - cubilia curae;

-

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere - cubilia curae; Integer nec nisl eget massa commodo interdum ut ut eros. - Nam sed orci tristique, iaculis sapien volutpat, accumsan est. Donec eu - volutpat dui, nec ultrices lorem. Cras in imperdiet urna, eu vehicula - lorem. Suspendisse lacinia ornare lorem, non volutpat justo vehicula eu. - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse dui - purus, lobortis ut diam volutpat, tristique ultrices mauris. Ut sed quam - at orci feugiat facilisis sit amet nec justo. Cras non consequat massa, - tincidunt molestie orci. Nam venenatis a ex sit amet maximus. Curabitur - suscipit congue lorem et accumsan. In hac habitasse platea dictumst. - Aenean tortor ex, dapibus a imperdiet quis, lobortis vitae urna. Ut eget - malesuada mi, vitae porta felis. Suspendisse in sapien commodo, malesuada - ligula sed, semper neque.

-

Nullam consectetur non est vel gravida. Curabitur iaculis mattis ante ac - bibendum. Duis risus dui, efficitur quis ullamcorper eu, elementum ut - tortor. Phasellus ornare tortor sed fringilla sodales. Nam blandit - tincidunt ullamcorper. Praesent sollicitudin nisi id dignissim gravida. Ut - ornare eros vitae felis fringilla, vel fringilla ligula cursus. Nam eget - bibendum tortor. Sed nisl felis, aliquet eget eleifend quis, convallis et - velit. Nullam sed est erat. Pellentesque habitant morbi tristique senectus - et netus et malesuada fames ac turpis egestas. In hac habitasse platea - dictumst. Aliquam tempor elit ac orci efficitur, quis egestas libero - dapibus. Sed eget eleifend erat, a varius sem. Ut finibus accumsan tellus, - quis rhoncus arcu tempor ac. Integer quis fringilla tortor.

-

Sed id magna et urna ornare bibendum eu sit amet felis. Fusce tristique - urna diam, et vulputate arcu condimentum vitae. Maecenas ipsum purus, - viverra eu mauris nec, eleifend porta turpis. Aenean et metus id velit - dictum rutrum. Pellentesque tristique egestas varius. Praesent quis elit - non mi consectetur vehicula. Etiam luctus tincidunt sagittis. Mauris et - eros elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. - Donec tempor quam sed massa iaculis efficitur. Ut mauris magna, - sollicitudin id leo quis, eleifend venenatis turpis. Praesent ultrices - dictum odio, ac scelerisque sem consequat id. Praesent sit amet massa - dolor. Praesent et enim in sem euismod ullamcorper. Quisque tristique - dapibus orci eget sollicitudin.

- - - - diff --git a/examples/basic-webpack/dist/main.js b/examples/basic-webpack/dist/main.js deleted file mode 100644 index 7ba4ce5..0000000 --- a/examples/basic-webpack/dist/main.js +++ /dev/null @@ -1,23 +0,0 @@ -!function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=29)}([function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t){var r,n,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var l,c=[],d=!1,u=-1;function p(){d&&l&&(d=!1,l.length?c=l.concat(c):u=-1,c.length&&h())}function h(){if(!d){var e=s(p);d=!0;for(var t=c.length;t;){for(l=c,c=[];++u1)for(var r=1;r - * @license MIT - */ -var n=r(30),a=r(31),i=r(13);function o(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(l.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return M(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return F(e).length;default:if(n)return M(e).length;t=(""+t).toLowerCase(),n=!0}}function m(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,r);case"utf8":case"utf-8":return E(this,t,r);case"ascii":return T(this,t,r);case"latin1":case"binary":return O(this,t,r);case"base64":return C(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,t,r,n,a){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=a?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(a)return-1;r=e.length-1}else if(r<0){if(!a)return-1;r=0}if("string"==typeof t&&(t=l.from(t,n)),l.isBuffer(t))return 0===t.length?-1:b(e,t,r,n,a);if("number"==typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):b(e,[t],r,n,a);throw new TypeError("val must be string, number or Buffer")}function b(e,t,r,n,a){var i,o=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(a){var d=-1;for(i=r;is&&(r=s-l),i=r;i>=0;i--){for(var u=!0,p=0;pa&&(n=a):n=a;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var o=0;o>8,a=r%256,i.push(a),i.push(n);return i}(t,e.length-r),e,r,n)}function C(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function E(e,t,r){r=Math.min(e.length,r);for(var n=[],a=t;a239?4:c>223?3:c>191?2:1;if(a+u<=r)switch(u){case 1:c<128&&(d=c);break;case 2:128==(192&(i=e[a+1]))&&(l=(31&c)<<6|63&i)>127&&(d=l);break;case 3:i=e[a+1],o=e[a+2],128==(192&i)&&128==(192&o)&&(l=(15&c)<<12|(63&i)<<6|63&o)>2047&&(l<55296||l>57343)&&(d=l);break;case 4:i=e[a+1],o=e[a+2],s=e[a+3],128==(192&i)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&i)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(d=l)}null===d?(d=65533,u=1):d>65535&&(d-=65536,n.push(d>>>10&1023|55296),d=56320|1023&d),n.push(d),a+=u}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},l.prototype.compare=function(e,t,r,n,a){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===a&&(a=this.length),t<0||r>e.length||n<0||a>this.length)throw new RangeError("out of range index");if(n>=a&&t>=r)return 0;if(n>=a)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(a>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),s=Math.min(i,o),c=this.slice(n,a),d=e.slice(t,r),u=0;ua)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return v(this,e,t,r);case"utf8":case"utf-8":return S(this,e,t,r);case"ascii":return w(this,e,t,r);case"latin1":case"binary":return x(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,r){var n="";r=Math.min(e.length,r);for(var a=t;an)&&(r=n);for(var a="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,r,n,a,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||te.length)throw new RangeError("Index out of range")}function L(e,t,r,n){t<0&&(t=65535+t+1);for(var a=0,i=Math.min(e.length-r,2);a>>8*(n?a:1-a)}function B(e,t,r,n){t<0&&(t=4294967295+t+1);for(var a=0,i=Math.min(e.length-r,4);a>>8*(n?a:3-a)&255}function W(e,t,r,n,a,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function I(e,t,r,n,i){return i||W(e,0,r,4),a.write(e,t,r,n,23,4),r+4}function q(e,t,r,n,i){return i||W(e,0,r,8),a.write(e,t,r,n,52,8),r+8}l.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(a*=256);)n+=this[e+--t]*a;return n},l.prototype.readUInt8=function(e,t){return t||z(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||z(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||z(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||z(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||z(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||z(e,t,this.length);for(var n=this[e],a=1,i=0;++i=(a*=128)&&(n-=Math.pow(2,8*t)),n},l.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||z(e,t,this.length);for(var n=t,a=1,i=this[e+--n];n>0&&(a*=256);)i+=this[e+--n]*a;return i>=(a*=128)&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return t||z(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||z(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){t||z(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return t||z(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||z(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||z(e,4,this.length),a.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||z(e,4,this.length),a.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||z(e,8,this.length),a.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||z(e,8,this.length),a.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||R(this,e,t,r,Math.pow(2,8*r)-1,0);var a=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+a]=e/i&255;return t+r},l.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);R(this,e,t,r,a-1,-a)}var i=0,o=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},l.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);R(this,e,t,r,a-1,-a)}var i=r-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,r){return I(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return q(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return q(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--a)e[a+t]=this[a+r];else if(i<1e3||!l.TYPED_ARRAY_SUPPORT)for(a=0;a>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&i.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&i.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function F(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(D,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function N(e,t,r,n){for(var a=0;a=t.length||a>=e.length);++a)t[a+r]=e[a];return a}}).call(this,r(0))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},function(e,t,r){"use strict";var n=r(7),a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=u;var i=Object.create(r(6));i.inherits=r(3);var o=r(17),s=r(11);i.inherits(u,o);for(var l=a(s.prototype),c=0;c0&&o.length>a&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,s=l,console&&console.warn&&console.warn(s)}return e}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},a=p.bind(n);return a.listener=r,n.wrapFn=a,a}function f(e,t,r){var n=e._events;if(void 0===n)return[];var a=n[t];return void 0===a?[]:"function"==typeof a?r?[a.listener||a]:[a]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[e];if(void 0===l)return!1;if("function"==typeof l)i(l,this,t);else{var c=l.length,d=g(l,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){o=r[i].listener,a=i;break}if(a<0)return this;0===a?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){var n=r(2),a=n.Buffer;function i(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return a(e,t,r)}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?e.exports=n:(i(n,t),t.Buffer=o),i(a,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return a(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=a(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return a(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(t,n,a){var i=r(7);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var a=n.callback;t.pendingcb--,a(r),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,l=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?n:i.nextTick;b.WritableState=y;var c=Object.create(r(6));c.inherits=r(3);var d={deprecate:r(38)},u=r(18),p=r(10).Buffer,h=a.Uint8Array||function(){};var f,m=r(19);function g(){}function y(e,t){s=s||r(4),e=e||{};var n=t instanceof s;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var a=e.highWaterMark,c=e.writableHighWaterMark,d=this.objectMode?16:16384;this.highWaterMark=a||0===a?a:n&&(c||0===c)?c:d,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var u=!1===e.decodeStrings;this.decodeStrings=!u,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,a=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,a){--t.pendingcb,r?(i.nextTick(a,n),i.nextTick(_,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(a(n),e._writableState.errorEmitted=!0,e.emit("error",n),_(e,t))}(e,r,n,t,a);else{var o=x(r);o||r.corked||r.bufferProcessing||!r.bufferedRequest||w(e,r),n?l(S,e,r,o,a):S(e,r,o,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function b(e){if(s=s||r(4),!(f.call(b,this)||this instanceof s))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function v(e,t,r,n,a,i,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(a,t.onwrite):e._write(a,i,t.onwrite),t.sync=!1}function S(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),_(e,t)}function w(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,a=new Array(n),i=t.corkedRequestsFree;i.entry=r;for(var s=0,l=!0;r;)a[s]=r,r.isBuf||(l=!1),r=r.next,s+=1;a.allBuffers=l,v(e,t,!0,t.length,a,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,d=r.encoding,u=r.callback;if(v(e,t,!1,t.objectMode?1:c.length,c,d,u),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function k(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),_(e,t)}))}function _(e,t){var r=x(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(k,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}c.inherits(b,u),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:d.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!f.call(this,e)||this===b&&(e&&e._writableState instanceof y)}})):f=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,r){var n,a=this._writableState,o=!1,s=!a.objectMode&&(n=e,p.isBuffer(n)||n instanceof h);return s&&!p.isBuffer(e)&&(e=function(e){return p.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof r&&(r=g),a.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),i.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var a=!0,o=!1;return null===r?o=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),i.nextTick(n,o),a=!1),a}(this,a,e,r))&&(a.pendingcb++,o=function(e,t,r,n,a,i){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=p.from(t,r));return t}(t,n,a);n!==o&&(r=!0,a="buffer",n=o)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,_(e,t),r&&(t.finished?i.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=m.destroy,b.prototype._undestroy=m.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,r(1),r(36).setImmediate,r(0))},function(e,t,r){(function(e,n,a){(function(t,i,o,s,l){"use strict";i=i&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,l=l&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l;var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{};function d(e,t){return e(t={exports:{}},t.exports),t.exports}function u(e){return e&&e.default||e}var p=d((function(e,t){!function(r){var n=t&&!t.nodeType&&t,a=e&&!e.nodeType&&e,i="object"==typeof c&&c;i.global!==i&&i.window!==i&&i.self!==i||(r=i);var o,s,l=2147483647,d=/^xn--/,u=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,m=String.fromCharCode;function g(e){throw RangeError(h[e])}function y(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function b(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+y((e=e.replace(p,".")).split("."),t).join(".")}function v(e){for(var t,r,n=[],a=0,i=e.length;a=55296&&t<=56319&&a65535&&(t+=m((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=m(e)})).join("")}function w(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function x(e,t,r){var n=0;for(e=r?f(e/700):e>>1,e+=f(e/t);e>455;n+=36)e=f(e/35);return f(n+36*e/(e+38))}function k(e){var t,r,n,a,i,o,s,c,d,u,p,h=[],m=e.length,y=0,b=128,v=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&g("not-basic"),h.push(e.charCodeAt(n));for(a=r>0?r+1:0;a=m&&g("invalid-input"),((c=(p=e.charCodeAt(a++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||c>f((l-y)/o))&&g("overflow"),y+=c*o,!(c<(d=s<=v?1:s>=v+26?26:s-v));s+=36)o>f(l/(u=36-d))&&g("overflow"),o*=u;v=x(y-i,t=h.length+1,0==i),f(y/t)>l-b&&g("overflow"),b+=f(y/t),y%=t,h.splice(y++,0,b)}return S(h)}function _(e){var t,r,n,a,i,o,s,c,d,u,p,h,y,b,S,k=[];for(h=(e=v(e)).length,t=128,r=0,i=72,o=0;o=t&&pf((l-r)/(y=n+1))&&g("overflow"),r+=(s-t)*y,t=s,o=0;ol&&g("overflow"),p==t){for(c=r,d=36;!(c<(u=d<=i?1:d>=i+26?26:d-i));d+=36)S=c-u,b=36-u,k.push(m(w(u+S%b,0))),c=f(S/b);k.push(m(w(c,0))),i=x(r,y,n==a),r=0,++n}++r,++t}return k.join("")}if(o={version:"1.3.2",ucs2:{decode:v,encode:S},decode:k,encode:_,toASCII:function(e){return b(e,(function(e){return u.test(e)?"xn--"+_(e):e}))},toUnicode:function(e){return b(e,(function(e){return d.test(e)?k(e.slice(4).toLowerCase()):e}))}},n&&a)if(e.exports==n)a.exports=o;else for(s in o)o.hasOwnProperty(s)&&(n[s]=o[s]);else r.punycode=o}(c)})),h=function(e){return"string"==typeof e},f=function(e){return"object"==typeof e&&null!==e},m=function(e){return null===e},g=function(e){return null==e};function y(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var b=function(e,t,r,n){t=t||"&",r=r||"=";var a={};if("string"!=typeof e||0===e.length)return a;var i=/\+/g;e=e.split(t);var o=1e3;n&&"number"==typeof n.maxKeys&&(o=n.maxKeys);var s=e.length;o>0&&s>o&&(s=o);for(var l=0;l=0?(c=h.substr(0,f),d=h.substr(f+1)):(c=h,d=""),u=decodeURIComponent(c),p=decodeURIComponent(d),y(a,u)?Array.isArray(a[u])?a[u].push(p):a[u]=[a[u],p]:a[u]=p}return a},v=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},S=function(e,t,r,n){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(n){var a=encodeURIComponent(v(n))+r;return Array.isArray(e[n])?e[n].map((function(e){return a+encodeURIComponent(v(e))})).join(t):a+encodeURIComponent(v(e[n]))})).join(t):n?encodeURIComponent(v(n))+r+encodeURIComponent(v(e)):""},w=d((function(e,t){t.decode=t.parse=b,t.encode=t.stringify=S})),x=(w.decode,w.parse,w.encode,w.stringify,M),k=function(e,t){return M(e,!1,!0).resolve(t)},_=function(e,t){return e?M(e,!1,!0).resolveObject(t):t},C=function(e){return h(e)&&(e=M(e)),e instanceof T?e.format():T.prototype.format.call(e)},E=T;function T(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var O=/^([a-z0-9.+-]+:)/i,A=/:[0-9]*$/,P=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,z=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),R=["'"].concat(z),L=["%","/","?",";","#"].concat(R),B=["/","?","#"],W=/^[+a-z0-9A-Z_-]{0,63}$/,I=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,q={javascript:!0,"javascript:":!0},D={javascript:!0,"javascript:":!0},j={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function M(e,t,r){if(e&&f(e)&&e instanceof T)return e;var n=new T;return n.parse(e,t,r),n}T.prototype.parse=function(e,t,r){if(!h(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),a=-1!==n&&n127?k+="x":k+=x[_];if(!k.match(W)){var E=v.slice(0,g),T=v.slice(g+1),A=x.match(I);A&&(E.push(A[1]),T.unshift(A[2])),T.length&&(o="/"+T.join(".")+o),this.hostname=E.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),b||(this.hostname=p.toASCII(this.hostname));var z=this.port?":"+this.port:"",M=this.hostname||"";this.host=M+z,this.href+=this.host,b&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==o[0]&&(o="/"+o))}if(!q[c])for(g=0,S=R.length;g0)&&r.host.split("@"))&&(r.auth=A.shift(),r.host=r.hostname=A.shift())),r.search=e.search,r.query=e.query,m(r.pathname)&&m(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var _=x.slice(-1)[0],C=(r.host||e.host||x.length>1)&&("."===_||".."===_)||""===_,E=0,O=x.length;O>=0;O--)"."===(_=x[O])?x.splice(O,1):".."===_?(x.splice(O,1),E++):E&&(x.splice(O,1),E--);if(!S&&!w)for(;E--;E)x.unshift("..");!S||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),C&&"/"!==x.join("/").substr(-1)&&x.push("");var A,P=""===x[0]||x[0]&&"/"===x[0].charAt(0);return k&&(r.hostname=r.host=P?"":x.length?x.shift():"",(A=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=A.shift(),r.host=r.hostname=A.shift())),(S=S||r.host&&x.length)&&!P&&x.unshift(""),x.length?r.pathname=x.join("/"):(r.pathname=null,r.path=null),m(r.pathname)&&m(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},T.prototype.parseHost=function(){var e=this.host,t=A.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};for(var F={parse:x,resolve:k,resolveObject:_,format:C,Url:E},N=function(e){var t=Q(e),r=t[0],n=t[1];return 3*(r+n)/4-n},U=function(e){var t,r,n=Q(e),a=n[0],i=n[1],o=new H(function(e,t,r){return 3*(t+r)/4-r}(0,a,i)),s=0,l=i>0?a-4:a;for(r=0;r>16&255,o[s++]=t>>8&255,o[s++]=255&t;return 2===i&&(t=V[e.charCodeAt(r)]<<2|V[e.charCodeAt(r+1)]>>4,o[s++]=255&t),1===i&&(t=V[e.charCodeAt(r)]<<10|V[e.charCodeAt(r+1)]<<4|V[e.charCodeAt(r+2)]>>2,o[s++]=t>>8&255,o[s++]=255&t),o},$=function(e){for(var t,r=e.length,n=r%3,a=[],i=0,o=r-n;io?o:i+16383));return 1===n?(t=e[r-1],a.push(G[t>>2]+G[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],a.push(G[t>>10]+G[t>>4&63]+G[t<<2&63]+"=")),a.join("")},G=[],V=[],H="undefined"!=typeof Uint8Array?Uint8Array:Array,Z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Y=0,K=Z.length;Y0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function X(e,t,r){for(var n,a,i=[],o=t;o>18&63]+G[a>>12&63]+G[a>>6&63]+G[63&a]);return i.join("")}V["-".charCodeAt(0)]=62,V["_".charCodeAt(0)]=63;var J,ee={byteLength:N,toByteArray:U,fromByteArray:$},te=function(e,t,r,n,a){var i,o,s=8*a-n-1,l=(1<>1,d=-7,u=r?a-1:0,p=r?-1:1,h=e[t+u];for(u+=p,i=h&(1<<-d)-1,h>>=-d,d+=s;d>0;i=256*i+e[t+u],u+=p,d-=8);for(o=i&(1<<-d)-1,i>>=-d,d+=n;d>0;o=256*o+e[t+u],u+=p,d-=8);if(0===i)i=1-c;else{if(i===l)return o?NaN:1/0*(h?-1:1);o+=Math.pow(2,n),i-=c}return(h?-1:1)*o*Math.pow(2,i-n)},re=function(e,t,r,n,a,i){var o,s,l,c=8*i-a-1,d=(1<>1,p=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=d):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),(t+=o+u>=1?p/l:p*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=d?(s=0,o=d):o+u>=1?(s=(t*l-1)*Math.pow(2,a),o+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,a),o=0));a>=8;e[r+h]=255&s,h+=f,s/=256,a-=8);for(o=o<0;e[r+h]=255&o,h+=f,o/=256,c-=8);e[r+h-f]|=128*m},ne={}.toString,ae=Array.isArray||function(e){return"[object Array]"==ne.call(e)},ie=d((function(e,t){function r(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function n(e,t){if(r()=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function u(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return I(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(e).length;default:if(n)return I(e).length;t=(""+t).toLowerCase(),n=!0}}function p(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return E(this,t,r);case"utf8":case"utf-8":return k(this,t,r);case"ascii":return _(this,t,r);case"latin1":case"binary":return C(this,t,r);case"base64":return x(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function h(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function f(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:m(e,t,r,n,i);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):m(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(e,t,r,n,a){var i,o=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(a){var d=-1;for(i=r;is&&(r=s-l),i=r;i>=0;i--){for(var u=!0,p=0;pa&&(n=a):n=a;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var o=0;o>8,a=r%256,i.push(a),i.push(n);return i}(t,e.length-r),e,r,n)}function x(e,t,r){return 0===t&&r===e.length?ee.fromByteArray(e):ee.fromByteArray(e.slice(t,r))}function k(e,t,r){r=Math.min(e.length,r);for(var n=[],a=t;a239?4:c>223?3:c>191?2:1;if(a+u<=r)switch(u){case 1:c<128&&(d=c);break;case 2:128==(192&(i=e[a+1]))&&(l=(31&c)<<6|63&i)>127&&(d=l);break;case 3:i=e[a+1],o=e[a+2],128==(192&i)&&128==(192&o)&&(l=(15&c)<<12|(63&i)<<6|63&o)>2047&&(l<55296||l>57343)&&(d=l);break;case 4:i=e[a+1],o=e[a+2],s=e[a+3],128==(192&i)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&i)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(d=l)}null===d?(d=65533,u=1):d>65535&&(d-=65536,n.push(d>>>10&1023|55296),d=56320|1023&d),n.push(d),a+=u}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var r="",n=0;na)&&(r=a);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,r,n,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function P(e,t,r,n){t<0&&(t=65535+t+1);for(var a=0,i=Math.min(e.length-r,2);a>>8*(n?a:1-a)}function z(e,t,r,n){t<0&&(t=4294967295+t+1);for(var a=0,i=Math.min(e.length-r,4);a>>8*(n?a:3-a)&255}function R(e,t,r,n,a,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,r,n,a){return a||R(e,0,r,4),re(e,t,r,n,23,4),r+4}function B(e,t,r,n,a){return a||R(e,0,r,8),re(e,t,r,n,52,8),r+8}t.Buffer=a,t.SlowBuffer=function(e){return+e!=e&&(e=0),a.alloc(+e)},t.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==c.TYPED_ARRAY_SUPPORT?c.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=r(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,r){return i(null,e,t,r)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,r){return function(e,t,r,a){return o(t),t<=0?n(e,t):void 0!==r?"string"==typeof a?n(e,t).fill(r,a):n(e,t).fill(r):n(e,t)}(null,e,t,r)},a.allocUnsafe=function(e){return s(null,e)},a.allocUnsafeSlow=function(e){return s(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},a.prototype.compare=function(e,t,r,n,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0),l=Math.min(o,s),c=this.slice(n,i),d=e.slice(t,r),u=0;ua)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return g(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":return b(this,e,t,r);case"latin1":case"binary":return v(this,e,t,r);case"base64":return S(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},a.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(a*=256);)n+=this[e+--t]*a;return n},a.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],a=1,i=0;++i=(a*=128)&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,a=1,i=this[e+--n];n>0&&(a*=256);)i+=this[e+--n]*a;return i>=(a*=128)&&(i-=Math.pow(2,8*t)),i},a.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),te(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),te(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),te(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),te(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||A(this,e,t,r,Math.pow(2,8*r)-1,0);var a=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+a]=e/i&255;return t+r},a.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):z(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):z(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);A(this,e,t,r,a-1,-a)}var i=0,o=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+r},a.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);A(this,e,t,r,a-1,-a)}var i=r-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r},a.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):z(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):z(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},a.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},a.prototype.writeDoubleLE=function(e,t,r){return B(this,e,t,!0,r)},a.prototype.writeDoubleBE=function(e,t,r){return B(this,e,t,!1,r)},a.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&i.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&i.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function q(e){return ee.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function D(e,t,r,n){for(var a=0;a=t.length||a>=e.length);++a)t[a+r]=e[a];return a}})),oe=(ie.Buffer,ie.SlowBuffer,ie.INSPECT_MAX_BYTES,ie.kMaxLength,ie.Buffer),se={};for(J in ie)ie.hasOwnProperty(J)&&"SlowBuffer"!==J&&"Buffer"!==J&&(se[J]=ie[J]);var le=se.Buffer={};for(J in oe)oe.hasOwnProperty(J)&&"allocUnsafe"!==J&&"allocUnsafeSlow"!==J&&(le[J]=oe[J]);if(se.Buffer.prototype=oe.prototype,le.from&&le.from!==Uint8Array.from||(le.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return oe(e,t,r)}),le.alloc||(le.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=oe(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!se.kStringMaxLength)try{se.kStringMaxLength=n.binding("buffer").kStringMaxLength}catch(e){}se.constants||(se.constants={MAX_LENGTH:se.kMaxLength},se.kStringMaxLength&&(se.constants.MAX_STRING_LENGTH=se.kStringMaxLength));var ce=se,de=ue;function ue(e,t){this.encoder=e,this.addBOM=!0}ue.prototype.write=function(e){return this.addBOM&&(e="\ufeff"+e,this.addBOM=!1),this.encoder.write(e)},ue.prototype.end=function(){return this.encoder.end()};var pe=he;function he(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}he.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||("\ufeff"===t[0]&&(t=t.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),t},he.prototype.end=function(){return this.decoder.end()};var fe={PrependBOM:de,StripBOM:pe},me=d((function(e,t){var r=ie.Buffer;function n(e,t){for(var r in e)t[r]=e[r]}function a(e,t,n){return r(e,t,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=ie:(n(ie,t),t.Buffer=a),a.prototype=Object.create(r.prototype),n(r,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return r(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var a=r(e);return void 0!==t?"string"==typeof n?a.fill(t,n):a.fill(t):a.fill(0),a},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return ie.SlowBuffer(e)}})),ge=(me.Buffer,me.Buffer),ye=ge.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},be=ve;function ve(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(ge.isEncoding===ye||!ye(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=xe,this.end=ke,t=4;break;case"utf8":this.fillLast=we,t=4;break;case"base64":this.text=_e,this.end=Ce,t=3;break;default:return this.write=Ee,void(this.end=Te)}this.lastNeed=0,this.lastTotal=0,this.lastChar=ge.allocUnsafe(t)}function Se(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function we(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function xe(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function ke(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function _e(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function Ce(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Ee(e){return e.toString(this.encoding)}function Te(e){return e&&e.length?this.write(e):""}ve.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(a>0&&(e.lastNeed=a-1),a):--n=0?(a>0&&(e.lastNeed=a-2),a):--n=0?(a>0&&(2===a?a=0:e.lastNeed=a-3),a):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},ve.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};var Oe={StringDecoder:be},Ae=ce.Buffer,Pe={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:ze};function ze(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,"base64"===this.enc?this.encoder=We:"cesu8"===this.enc&&(this.enc="utf8",this.encoder=Ie,"💩"!==Ae.from("eda0bdedb2a9","hex").toString()&&(this.decoder=qe,this.defaultCharUnicode=t.defaultCharUnicode))}ze.prototype.encoder=Be,ze.prototype.decoder=Le;var Re=Oe.StringDecoder;function Le(e,t){Re.call(this,t.enc)}function Be(e,t){this.enc=t.enc}function We(e,t){this.prevStr=""}function Ie(e,t){}function qe(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}Re.prototype.end||(Re.prototype.end=function(){}),Le.prototype=Re.prototype,Be.prototype.write=function(e){return Ae.from(e,this.enc)},Be.prototype.end=function(){},We.prototype.write=function(e){var t=(e=this.prevStr+e).length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),Ae.from(e,"base64")},We.prototype.end=function(){return Ae.from(this.prevStr,"base64")},Ie.prototype.write=function(e){for(var t=Ae.alloc(3*e.length),r=0,n=0;n>>6),t[r++]=128+(63&a)):(t[r++]=224+(a>>>12),t[r++]=128+(a>>>6&63),t[r++]=128+(63&a))}return t.slice(0,r)},Ie.prototype.end=function(){},qe.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,a="",i=0;i0&&(a+=this.defaultCharUnicode,r=0),o<128?a+=String.fromCharCode(o):o<224?(t=31&o,r=1,n=1):o<240?(t=15&o,r=2,n=1):a+=this.defaultCharUnicode):r>0?(t=t<<6|63&o,n++,0==--r&&(a+=2===n&&t<128&&t>0||3===n&&t<2048?this.defaultCharUnicode:String.fromCharCode(t))):a+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,a},qe.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e};var De=ce.Buffer,je=Me;function Me(){}function Fe(){}function Ne(){this.overflowByte=-1}Me.prototype.encoder=Fe,Me.prototype.decoder=Ne,Me.prototype.bomAware=!0,Fe.prototype.write=function(e){for(var t=De.from(e,"ucs2"),r=0;r=2)if(254==e[0]&&255==e[1])r="utf-16be";else if(255==e[0]&&254==e[1])r="utf-16le";else{for(var n=0,a=0,i=Math.min(e.length-e.length%2,64),o=0;on?r="utf-16be":a0&&(e=this.iconv.decode(Ye.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};var st=lt;function lt(e,t){this.iconv=t}function ct(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=Ye.alloc(6),this.base64AccumIdx=0}function dt(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}lt.prototype.encoder=ct,lt.prototype.decoder=dt,lt.prototype.bomAware=!0,ct.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,a=Ye.alloc(5*e.length+10),i=0,o=0;o0&&(i+=a.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),i),n=0),a[i++]=it,t=!1),t||(a[i++]=s,s===ot&&(a[i++]=it))):(t||(a[i++]=ot,t=!0),t&&(r[n++]=s>>8,r[n++]=255&s,n==r.length&&(i+=a.write(r.toString("base64").replace(/\//g,","),i),n=0)))}return this.inBase64=t,this.base64AccumIdx=n,a.slice(0,i)},ct.prototype.end=function(){var e=Ye.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=it,this.inBase64=!1),e.slice(0,t)};var ut=rt.slice();ut[",".charCodeAt(0)]=!0,dt.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,i=0;i0&&(e=this.iconv.decode(Ye.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};var pt={utf7:Ke,unicode11utf7:"utf7",utf7imap:st},ht=ce.Buffer,ft=mt;function mt(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||128!==e.chars.length&&256!==e.chars.length)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(128===e.chars.length){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);e.chars=r+e.chars}this.decodeBuf=ht.from(e.chars,"ucs2");var a=ht.alloc(65536,t.defaultCharSingleByte.charCodeAt(0));for(n=0;n?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"},maccyrillic:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},macgreek:{type:"_sbcs",chars:"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"},maciceland:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macroman:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macromania:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macthai:{type:"_sbcs",chars:"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู\ufeff​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"},macturkish:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"},macukraine:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},koi8r:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8u:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8ru:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8t:{type:"_sbcs",chars:"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},armscii8:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"},rk1048:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},tcvn:{type:"_sbcs",chars:"\0ÚỤỪỬỮ\b\t\n\v\f\rỨỰỲỶỸÝỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"},georgianacademy:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},georgianps:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},pt154:{type:"_sbcs",chars:"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},viscii:{type:"_sbcs",chars:"\0ẲẴẪ\b\t\n\v\f\rỶỸỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"},iso646cn:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},iso646jp:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},hproman8:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"},macintosh:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},ascii:{type:"_sbcs",chars:"��������������������������������������������������������������������������������������������������������������������������������"},tis620:{type:"_sbcs",chars:"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"}},wt=ce.Buffer,xt=Ct,kt=new Array(256),_t=0;_t<256;_t++)kt[_t]=-1;function Ct(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=kt.slice(0),this.decodeTableSeq=[];for(var n=0;nt)return-1;for(var r=0,n=e.length;r0;e>>=8)t.push(255&e);0==t.length&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var a=r[t[n]];if(-1==a)r[t[n]]=-1e3-this.decodeTables.length,this.decodeTables.push(r=kt.slice(0));else{if(!(a<=-1e3))throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16));r=this.decodeTables[-1e3-a]}}return r},Ct.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t&=255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)},Ct.prototype._getEncodeBucket=function(e){var t=e>>8;return void 0===this.encodeTable[t]&&(this.encodeTable[t]=kt.slice(0)),this.encodeTable[t]},Ct.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=255&e;r[n]<=-10?this.encodeTableSeq[-10-r[n]][-1]=t:-1==r[n]&&(r[n]=t)},Ct.prototype._setEncodeSequence=function(e,t){var r,n=e[0],a=this._getEncodeBucket(n),i=255&n;a[i]<=-10?r=this.encodeTableSeq[-10-a[i]]:(r={},-1!==a[i]&&(r[-1]=a[i]),a[i]=-10-this.encodeTableSeq.length,this.encodeTableSeq.push(r));for(var o=1;o=0?this._setEncodeChar(i,o):i<=-1e3?this._fillEncodeTable(-1e3-i,o<<8,r):i<=-10&&this._setEncodeSequence(this.decodeTableSeq[-10-i],o))}},Et.prototype.write=function(e){for(var t=wt.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,a=-1,i=0,o=0;;){if(-1===a){if(i==e.length)break;var s=e.charCodeAt(i++)}else s=a,a=-1;if(55296<=s&&s<57344)if(s<56320){if(-1===r){r=s;continue}r=s,s=-1}else-1!==r?(s=65536+1024*(r-55296)+(s-56320),r=-1):s=-1;else-1!==r&&(a=s,s=-1,r=-1);var l=-1;if(void 0!==n&&-1!=s){var c=n[s];if("object"==typeof c){n=c;continue}"number"==typeof c?l=c:null==c&&void 0!==(c=n[-1])&&(l=c,a=s),n=void 0}else if(s>=0){var d=this.encodeTable[s>>8];if(void 0!==d&&(l=d[255&s]),l<=-10){n=this.encodeTableSeq[-10-l];continue}if(-1==l&&this.gb18030){var u=Ot(this.gb18030.uChars,s);if(-1!=u){l=this.gb18030.gbChars[u]+(s-this.gb18030.uChars[u]),t[o++]=129+Math.floor(l/12600),l%=12600,t[o++]=48+Math.floor(l/1260),l%=1260,t[o++]=129+Math.floor(l/10),l%=10,t[o++]=48+l;continue}}}-1===l&&(l=this.defaultCharSingleByte),l<256?t[o++]=l:l<65536?(t[o++]=l>>8,t[o++]=255&l):(t[o++]=l>>16,t[o++]=l>>8&255,t[o++]=255&l)}return this.seqObj=n,this.leadSurrogate=r,t.slice(0,o)},Et.prototype.end=function(){if(-1!==this.leadSurrogate||void 0!==this.seqObj){var e=wt.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[-1];void 0!==r&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=255&r)),this.seqObj=void 0}return-1!==this.leadSurrogate&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}},Et.prototype.findIdx=Ot,Tt.prototype.write=function(e){var t=wt.alloc(2*e.length),r=this.nodeIdx,n=this.prevBuf,a=this.prevBuf.length,i=-this.prevBuf.length;a>0&&(n=wt.concat([n,e.slice(0,10)]));for(var o=0,s=0;o=0?e[o]:n[o+a];if((l=this.decodeTables[r][c])>=0);else if(-1===l)o=i,l=this.defaultCharUnicode.charCodeAt(0);else if(-2===l){var d=i>=0?e.slice(i,o+1):n.slice(i+a,o+1+a),u=12600*(d[0]-129)+1260*(d[1]-48)+10*(d[2]-129)+(d[3]-48),p=Ot(this.gb18030.gbChars,u);l=this.gb18030.uChars[p]+u-this.gb18030.gbChars[p]}else{if(l<=-1e3){r=-1e3-l;continue}if(!(l<=-10))throw new Error("iconv-lite internal error: invalid decoding table value "+l+" at "+r+"/"+c);for(var h=this.decodeTableSeq[-10-l],f=0;f>8;l=h[h.length-1]}if(l>65535){l-=65536;var m=55296+Math.floor(l/1024);t[s++]=255&m,t[s++]=m>>8,l=56320+l%1024}t[s++]=255&l,t[s++]=l>>8,r=0,i=o+1}return this.nodeIdx=r,this.prevBuf=i>=0?e.slice(i):n.slice(i+a),t.slice(0,s).toString("ucs2")},Tt.prototype.end=function(){for(var e="";this.prevBuf.length>0;){e+=this.defaultCharUnicode;var t=this.prevBuf.slice(1);this.prevBuf=wt.alloc(0),this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.nodeIdx=0,e};var At={_dbcs:xt},Pt=Object.freeze({__proto__:null,default:[["0","\0",128],["a1","。",62],["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"],["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨¬⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","ʼn♯♭♪†‡¶"],["81fc","◯"],["824f","0",9],["8260","A",25],["8281","a",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"¬¦'""],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]]}),zt=Object.freeze({__proto__:null,default:[["0","\0",127],["8ea1","。",62],["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨¬⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","ʼn♯♭♪†‡¶"],["a2fe","◯"],["a3b0","0",9],["a3c1","A",25],["a3e1","a",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"¬¦'""],["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","IJ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]]}),Rt=Object.freeze({__proto__:null,default:[["0","\0",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","!"#¥%",88," ̄"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]}),Lt=Object.freeze({__proto__:null,default:[["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31," "],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]}),Bt=[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],Wt=[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3],It={uChars:Bt,gbChars:Wt},qt=Object.freeze({__proto__:null,uChars:Bt,gbChars:Wt,default:It}),Dt=Object.freeze({__proto__:null,default:[["0","\0",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆЪĦ"],["a8a6","IJ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]]}),jt=Object.freeze({__proto__:null,default:[["0","\0",127],["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"],["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21],["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]}),Mt=Object.freeze({__proto__:null,default:[["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","■"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]]}),Ft=u(Pt),Nt=u(zt),Ut=u(Rt),$t=u(Lt),Gt=u(qt),Vt=u(Dt),Ht=u(jt),Zt=u(Mt),Yt={shiftjis:{type:"_dbcs",table:function(){return Ft},encodeAdd:{"¥":92,"‾":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Nt},encodeAdd:{"¥":92,"‾":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return Ut}},gbk:{type:"_dbcs",table:function(){return Ut.concat($t)}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return Ut.concat($t)},gb18030:function(){return Gt},encodeSkipVals:[128],encodeAdd:{"€":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return Vt}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return Ht}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return Ht.concat(Zt)},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"},Kt=d((function(e,t){for(var r=[Pe,Ze,pt,bt,vt,St,At,Yt],n=0;n0?t.concat([o,s]):o},r.decode=function(e,n,a){"string"==typeof e&&(r.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),r.skipDecodeWarning=!0),e=t.from(""+(e||""),"binary"));var i=r.getDecoder(n,a),o=i.write(e),s=i.end();return s?o+s:o},r.encodingExists=function(e){try{return r.getCodec(e),!0}catch(e){return!1}},r.toEncoding=r.encode,r.fromEncoding=r.decode,r._codecDataCache={},r.getCodec=function(e){r.encodings||(r.encodings=Kt);for(var t=r._canonicalizeEncoding(e),n={};;){var a=r._codecDataCache[t];if(a)return a;var i=r.encodings[t];switch(typeof i){case"string":t=i;break;case"object":for(var o in i)n[o]=i[o];n.encodingName||(n.encodingName=t),t=i.type;break;case"function":return n.encodingName||(n.encodingName=t),a=new i(n,r),r._codecDataCache[n.encodingName]=a,a;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+t+"')")}}},r._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")},r.getEncoder=function(e,t){var n=r.getCodec(e),a=new n.encoder(t,n);return n.bomAware&&t&&t.addBOM&&(a=new fe.PrependBOM(a,t)),a},r.getDecoder=function(e,t){var n=r.getCodec(e),a=new n.decoder(t,n);return!n.bomAware||t&&!1===t.stripBOM||(a=new fe.StripBOM(a,t)),a};var a=void 0!==n&&n.versions&&n.versions.node;if(a){var i=a.split(".").map(Number);(i[0]>0||i[1]>=10)&&function(e){e.encodeStream=function(t,r){return new Jt(e.getEncoder(t,r),r)},e.decodeStream=function(t,r){return new er(e.getDecoder(t,r),r)},e.supportsStreams=!0,e.IconvLiteEncoderStream=Jt,e.IconvLiteDecoderStream=er,e._collect=er.prototype.collect}(r),function(e){var t=void 0;e.supportsNodeEncodingsExtension=!(rr.from||new rr(0)instanceof Uint8Array),e.extendNodeEncodings=function(){if(!t){if(t={},!e.supportsNodeEncodingsExtension)return console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),void console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");var r={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};rr.isNativeEncoding=function(e){return e&&r[e.toLowerCase()]};var n=ie.SlowBuffer;if(t.SlowBufferToString=n.prototype.toString,n.prototype.toString=function(r,n,a){return r=String(r||"utf8").toLowerCase(),rr.isNativeEncoding(r)?t.SlowBufferToString.call(this,r,n,a):(void 0===n&&(n=0),void 0===a&&(a=this.length),e.decode(this.slice(n,a),r))},t.SlowBufferWrite=n.prototype.write,n.prototype.write=function(r,n,a,i){if(isFinite(n))isFinite(a)||(i=a,a=void 0);else{var o=i;i=n,n=a,a=o}n=+n||0;var s=this.length-n;if(a?(a=+a)>s&&(a=s):a=s,i=String(i||"utf8").toLowerCase(),rr.isNativeEncoding(i))return t.SlowBufferWrite.call(this,r,n,a,i);if(r.length>0&&(a<0||n<0))throw new RangeError("attempt to write beyond buffer bounds");var l=e.encode(r,i);return l.lengthd&&(a=d):a=d,r.length>0&&(a<0||n<0))throw new RangeError("attempt to write beyond buffer bounds");var u=e.encode(r,i);return u.length=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),l=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),f(r)?n.showHidden=r:r&&t._extend(n,r),b(n.showHidden)&&(n.showHidden=!1),b(n.depth)&&(n.depth=2),b(n.colors)&&(n.colors=!1),b(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),d(n,e,n.depth)}function l(e,t){var r=s.styles[t];return r?"["+s.colors[r][0]+"m"+e+"["+s.colors[r][1]+"m":e}function c(e,t){return e}function d(e,r,n){if(e.customInspect&&r&&k(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var a=r.inspect(n,e);return y(a)||(a=d(e,a,n)),a}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(y(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):f(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,r);if(i)return i;var o=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),x(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return u(r);if(0===o.length){if(k(r)){var l=r.name?": "+r.name:"";return e.stylize("[Function"+l+"]","special")}if(v(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(x(r))return u(r)}var c,S="",_=!1,C=["{","}"];return h(r)&&(_=!0,C=["[","]"]),k(r)&&(S=" [Function"+(r.name?": "+r.name:"")+"]"),v(r)&&(S=" "+RegExp.prototype.toString.call(r)),w(r)&&(S=" "+Date.prototype.toUTCString.call(r)),x(r)&&(S=" "+u(r)),0!==o.length||_&&0!=r.length?n<0?v(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),c=_?function(e,t,r,n,a){for(var i=[],o=0,s=t.length;o60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(c,S,C)):C[0]+S+C[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,a,i){var o,s,l;if((l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?s=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),O(n,a)||(o="["+a+"]"),s||(e.seen.indexOf(l.value)<0?(s=m(r)?d(e,l.value,null):d(e,l.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(o)){if(i&&a.match(/^\d+$/))return s;(o=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function y(e){return"string"==typeof e}function b(e){return void 0===e}function v(e){return S(e)&&"[object RegExp]"===_(e)}function S(e){return"object"==typeof e&&null!==e}function w(e){return S(e)&&"[object Date]"===_(e)}function x(e){return S(e)&&("[object Error]"===_(e)||e instanceof Error)}function k(e){return"function"==typeof e}function _(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(b(i)&&(i=n.env.NODE_DEBUG||""),e=e.toUpperCase(),!o[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var r=n.pid;o[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else o[e]=function(){};return o[e]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=f,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=y,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=v,t.isObject=S,t.isDate=w,t.isError=x,t.isFunction=k,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=cr;var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),E[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=ur,t._extend=function(e,t){if(!t||!S(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var A="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(A&&e[A]){var t;if("function"!=typeof(t=e[A]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,A,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),a=[],i=0;ie.size)return e._abort=!0,void r(new hr("content size at "+e.url+" over limit: "+e.size,"max-size"));e._bytes+=t.length,e._raw.push(t)}})),void e.body.on("end",(function(){e._abort||(clearTimeout(n),t(e._convert()))})))})))},br.prototype._convert=function(e){e=e||"utf-8";var t,r,n=this.headers.get("content-type"),i="utf-8";if(n){if(!/text\/html|text\/plain|\+xml|\/xml/i.test(n))return a.concat(this._raw);t=/charset=([^;]*)/i.exec(n)}if(!t&&this._raw.length>0){for(var o=0;o1024);o++);r=r.substr(0,1024)}return!t&&r&&(t=/=200&&this.status<300,yr.call(this,e,t)}xr.prototype=Object.create(yr.prototype),xr.prototype.clone=function(){return new xr(this._clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok})};var kr=F.parse,_r=Cr;function Cr(e,t){var r,n;e instanceof Cr?(r=e.url,n=kr(r)):(n=kr(r=e),e={}),t=t||{},this.method=t.method||e.method||"GET",this.redirect=t.redirect||e.redirect||"follow",this.headers=new vr(t.headers||e.headers||{}),this.url=r,this.follow=void 0!==t.follow?t.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==t.compress?t.compress:void 0===e.compress||e.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent,yr.call(this,t.body||this._clone(e),{timeout:t.timeout||e.timeout||0,size:t.size||e.size||0}),this.protocol=n.protocol,this.hostname=n.hostname,this.port=n.port,this.path=n.path,this.auth=n.auth}Cr.prototype=Object.create(yr.prototype),Cr.prototype.clone=function(){return new Cr(this)};var Er=d((function(e){var t=F.resolve;function r(e,n){if(!(this instanceof r))return new r(e,n);if(!r.Promise)throw new Error("native promise missing, set Fetch.Promise to your favorite alternative");yr.Promise=r.Promise;var c=this;return new r.Promise((function(d,u){var p,h=new _r(e,n);if(!h.protocol||!h.hostname)throw new Error("only absolute urls are supported");if("http:"!==h.protocol&&"https:"!==h.protocol)throw new Error("only http(s) protocols are supported");p="https:"===h.protocol?o.request:i.request;var f=new vr(h.headers);h.compress&&f.set("accept-encoding","gzip,deflate"),f.has("user-agent")||f.set("user-agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),f.has("connection")||h.agent||f.set("connection","close"),f.has("accept")||f.set("accept","*/*"),!f.has("content-type")&&h.body&&"function"==typeof h.body.getBoundary&&f.set("content-type","multipart/form-data; boundary="+h.body.getBoundary()),!f.has("content-length")&&/post|put|patch|delete/i.test(h.method)&&("string"==typeof h.body?f.set("content-length",a.byteLength(h.body)):h.body&&"function"==typeof h.body.getLengthSync?(h.body._lengthRetrievers&&0==h.body._lengthRetrievers.length||h.body.hasKnownLength&&h.body.hasKnownLength())&&f.set("content-length",h.body.getLengthSync().toString()):void 0!==h.body&&null!==h.body||f.set("content-length","0")),h.headers=f.raw(),h.headers.host&&(h.headers.host=h.headers.host[0]);var m,g=p(h);h.timeout&&g.once("socket",(function(e){m=setTimeout((function(){g.abort(),u(new hr("network timeout at: "+h.url,"request-timeout"))}),h.timeout)})),g.on("error",(function(e){clearTimeout(m),u(new hr("request to "+h.url+" failed, reason: "+e.message,"system",e))})),g.on("response",(function(e){if(clearTimeout(m),c.isRedirect(e.statusCode)&&"manual"!==h.redirect)return"error"===h.redirect?void u(new hr("redirect mode is set to error: "+h.url,"no-redirect")):h.counter>=h.follow?void u(new hr("maximum redirect reached at: "+h.url,"max-redirect")):e.headers.location?(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==h.method)||(h.method="GET",delete h.body,delete h.headers["content-length"]),h.counter++,void d(r(t(h.url,e.headers.location),h))):void u(new hr("redirect location header missing at: "+h.url,"invalid-redirect"));var n=new vr(e.headers);"manual"===h.redirect&&n.has("location")&&n.set("location",t(h.url,n.get("location")));var a,i=e.pipe(new l.PassThrough),o={url:h.url,status:e.statusCode,statusText:e.statusMessage,headers:n,size:h.size,timeout:h.timeout};if(!h.compress||"HEAD"===h.method||!n.has("content-encoding")||204===e.statusCode||304===e.statusCode)return a=new wr(i,o),void d(a);var p=n.get("content-encoding");if("gzip"==p||"x-gzip"==p)return i=i.pipe(s.createGunzip()),a=new wr(i,o),void d(a);"deflate"!=p&&"x-deflate"!=p?(a=new wr(i,o),d(a)):e.pipe(new l.PassThrough).once("data",(function(e){i=8==(15&e[0])?i.pipe(s.createInflate()):i.pipe(s.createInflateRaw()),a=new wr(i,o),d(a)}))})),"string"==typeof h.body||h.body instanceof a?(g.write(h.body),g.end()):"object"==typeof h.body&&h.body.pipe?h.body.pipe(g):"object"==typeof h.body?(g.write(h.body.toString()),g.end()):g.end()}))}e.exports=r,e.exports.default=e.exports,r.prototype.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},r.Promise=c.Promise,r.Response=wr,r.Headers=vr,r.Request=_r})),Tr=(d((function(e){e.exports=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),Er.call(this,e,t)},c.fetch||(c.fetch=e.exports,c.Response=Er.Response,c.Headers=Er.Headers,c.Request=Er.Request)})),Function.prototype.toString),Or=Object.create,Ar=Object.defineProperty,Pr=Object.getOwnPropertyDescriptor,zr=Object.getOwnPropertyNames,Rr=Object.getOwnPropertySymbols,Lr=Object.getPrototypeOf,Br=Object.prototype,Wr=Br.hasOwnProperty,Ir=Br.propertyIsEnumerable,qr="function"==typeof Rr,Dr="function"==typeof WeakMap,jr=function(e,t){if(!e.constructor)return Or(null);var r=e.constructor,n=e.__proto__||Lr(e);if(r===t.Object)return n===t.Object.prototype?{}:Or(n);if(~Tr.call(r).indexOf("[native code]"))try{return new r}catch(e){}return Or(n)},Mr=function(e,t,r,n){var a=jr(e,t);for(var i in n.set(e,a),e)Wr.call(e,i)&&(a[i]=r(e[i],n));if(qr){var o=Rr(e),s=o.length;if(s)for(var l=0,c=void 0;l1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,a=1;a= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,m=String.fromCharCode;function g(e){throw new RangeError(h[e])}function y(e,t){var r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]);var a=function(e,t){for(var r=[],n=e.length;n--;)r[n]=t(e[n]);return r}((e=e.replace(p,".")).split("."),t).join(".");return n+a}function b(e){for(var t=[],r=0,n=e.length;r=55296&&a<=56319&&r>1,e+=f(e/t);e>455;n+=36)e=f(e/35);return f(n+36*e/(e+38))},w=function(e){var t,r=[],n=e.length,a=0,i=128,o=72,s=e.lastIndexOf("-");s<0&&(s=0);for(var l=0;l=128&&g("not-basic"),r.push(e.charCodeAt(l));for(var d=s>0?s+1:0;d=n&&g("invalid-input");var m=(t=e.charCodeAt(d++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:36;(m>=36||m>f((c-a)/p))&&g("overflow"),a+=m*p;var y=h<=o?1:h>=o+26?26:h-o;if(mf(c/b)&&g("overflow"),p*=b}var v=r.length+1;o=S(a-u,v,0==u),f(a/v)>c-i&&g("overflow"),i+=f(a/v),a%=v,r.splice(a++,0,i)}return String.fromCodePoint.apply(String,r)},x=function(e){var t=[],r=(e=b(e)).length,n=128,a=0,i=72,o=!0,s=!1,l=void 0;try{for(var d,u=e[Symbol.iterator]();!(o=(d=u.next()).done);o=!0){var p=d.value;p<128&&t.push(m(p))}}catch(e){s=!0,l=e}finally{try{!o&&u.return&&u.return()}finally{if(s)throw l}}var h=t.length,y=h;for(h&&t.push("-");y=n&&Tf((c-a)/O)&&g("overflow"),a+=(w-n)*O,n=w;var A=!0,P=!1,z=void 0;try{for(var R,L=e[Symbol.iterator]();!(A=(R=L.next()).done);A=!0){var B=R.value;if(Bc&&g("overflow"),B==n){for(var W=a,I=36;;I+=36){var q=I<=i?1:I>=i+26?26:I-i;if(W>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function T(e){for(var t="",r=0,n=e.length;r=194&&a<224){if(n-r>=6){var i=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((31&a)<<6|63&i)}else t+=e.substr(r,6);r+=6}else if(a>=224){if(n-r>=9){var o=parseInt(e.substr(r+4,2),16),s=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((15&a)<<12|(63&o)<<6|63&s)}else t+=e.substr(r,9);r+=9}else t+=e.substr(r,3),r+=3}return t}function O(e,t){function r(e){var r=T(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,E).replace(t.PCT_ENCODED,a)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,E).replace(t.PCT_ENCODED,a)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,E).replace(t.PCT_ENCODED,a)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,E).replace(t.PCT_ENCODED,a)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,E).replace(t.PCT_ENCODED,a)),e}function A(e){return e.replace(/^0*(.*)/,"$1")||"0"}function P(e,t){var r=e.match(t.IPV4ADDRESS)||[],n=l(r,2)[1];return n?n.split(".").map(A).join("."):e}function z(e,t){var r=e.match(t.IPV6ADDRESS)||[],n=l(r,3),a=n[1],i=n[2];if(a){for(var o=a.toLowerCase().split("::").reverse(),s=l(o,2),c=s[0],d=s[1],u=d?d.split(":").map(A):[],p=c.split(":").map(A),h=t.IPV4ADDRESS.test(p[p.length-1]),f=h?7:8,m=p.length-f,g=Array(f),y=0;y1){var S=g.slice(0,b.index),w=g.slice(b.index+b.length);v=S.join(":")+"::"+w.join(":")}else v=g.join(":");return i&&(v+="%"+i),v}return e}var R=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,L=void 0==="".match(/(){0}/)[1];function B(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={},n=!1!==t.iri?s:o;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var a=e.match(R);if(a){L?(r.scheme=a[1],r.userinfo=a[3],r.host=a[4],r.port=parseInt(a[5],10),r.path=a[6]||"",r.query=a[7],r.fragment=a[8],isNaN(r.port)&&(r.port=a[5])):(r.scheme=a[1]||void 0,r.userinfo=-1!==e.indexOf("@")?a[3]:void 0,r.host=-1!==e.indexOf("//")?a[4]:void 0,r.port=parseInt(a[5],10),r.path=a[6]||"",r.query=-1!==e.indexOf("?")?a[7]:void 0,r.fragment=-1!==e.indexOf("#")?a[8]:void 0,isNaN(r.port)&&(r.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?a[4]:void 0)),r.host&&(r.host=z(P(r.host,n),n)),void 0!==r.scheme||void 0!==r.userinfo||void 0!==r.host||void 0!==r.port||r.path||void 0!==r.query?void 0===r.scheme?r.reference="relative":void 0===r.fragment?r.reference="absolute":r.reference="uri":r.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");var i=C[(t.scheme||r.scheme||"").toLowerCase()];if(t.unicodeSupport||i&&i.unicodeSupport)O(r,n);else{if(r.host&&(t.domainHost||i&&i.domainHost))try{r.host=k(r.host.replace(n.PCT_ENCODED,T).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to ASCII via punycode: "+e}O(r,o)}i&&i.parse&&i.parse(r,t)}else r.error=r.error||"URI can not be parsed.";return r}function W(e,t){var r=!1!==t.iri?s:o,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(z(P(String(e.host),r),r).replace(r.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"}))),"number"==typeof e.port&&(n.push(":"),n.push(e.port.toString(10))),n.length?n.join(""):void 0}var I=/^\.\.?\//,q=/^\/\.(\/|$)/,D=/^\/\.\.(\/|$)/,j=/^\/?(?:.|\n)*?(?=\/|$)/;function M(e){for(var t=[];e.length;)if(e.match(I))e=e.replace(I,"");else if(e.match(q))e=e.replace(q,"/");else if(e.match(D))e=e.replace(D,"/"),t.pop();else if("."===e||".."===e)e="";else{var r=e.match(j);if(!r)throw new Error("Unexpected dot segment condition");var n=r[0];e=e.slice(n.length),t.push(n)}return t.join("")}function F(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.iri?s:o,n=[],a=C[(t.scheme||e.scheme||"").toLowerCase()];if(a&&a.serialize&&a.serialize(e,t),e.host)if(r.IPV6ADDRESS.test(e.host));else if(t.domainHost||a&&a.domainHost)try{e.host=t.iri?_(e.host):k(e.host.replace(r.PCT_ENCODED,T).toLowerCase())}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+r}O(e,r),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var i=W(e,t);if(void 0!==i&&("suffix"!==t.reference&&n.push("//"),n.push(i),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var l=e.path;t.absolutePath||a&&a.absolutePath||(l=M(l)),void 0===i&&(l=l.replace(/^\/\//,"/%2F")),n.push(l)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function N(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],a={};return n||(e=B(F(e,r),r),t=B(F(t,r),r)),!(r=r||{}).tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=M(t.path||""),a.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=M(t.path||""),a.query=t.query):(t.path?("/"===t.path.charAt(0)?a.path=M(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path:a.path="/"+t.path,a.path=M(a.path)),a.query=t.query):(a.path=e.path,void 0!==t.query?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function U(e,t){return e&&e.toString().replace(t&&t.iri?s.PCT_ENCODED:o.PCT_ENCODED,T)}var $={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){return e.port!==("https"!==String(e.scheme).toLowerCase()?80:443)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},G={scheme:"https",domainHost:$.domainHost,parse:$.parse,serialize:$.serialize},V={},H="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Z="[0-9A-Fa-f]",Y=r(r("%[EFef]"+Z+"%"+Z+Z+"%"+Z+Z)+"|"+r("%[89A-Fa-f]"+Z+"%"+Z+Z)+"|"+r("%"+Z+Z)),K=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),Q=new RegExp(H,"g"),X=new RegExp(Y,"g"),J=new RegExp(t("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',K),"g"),ee=new RegExp(t("[^]",H,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),te=ee;function re(e){var t=T(e);return t.match(Q)?t:e}var ne={scheme:"mailto",parse:function(e,t){var r=e,n=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var a=!1,i={},o=r.query.split("&"),s=0,l=o.length;s=55296&&t<=56319&&a=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return r[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(i="data"+(t-n||""),!a)return i}for(var s=i,l=a.split("/"),c=0;c=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:r},{index:n,compiling:!1})}function Nn(e,t,r){var n=Un.call(this,e,t,r);n>=0&&this._compilations.splice(n,1)}function Un(e,t,r){for(var n=0;n%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,ra=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,na=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,aa=/^(?:\/(?:[^~/]|~0|~1)*)*$/,ia=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,oa=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,sa=la;function la(e){return e="full"==e?"full":"fast",Zr.copy(la[e])}function ca(e){var t=e.match(Kn);if(!t)return!1;var r=+t[1],n=+t[2],a=+t[3];return n>=1&&n<=12&&a>=1&&a<=(2==n&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(r)?29:Qn[n])}function da(e,t){var r=e.match(Xn);if(!r)return!1;var n=r[1],a=r[2],i=r[3],o=r[5];return(n<=23&&a<=59&&i<=59||23==n&&59==a&&60==i)&&(!t||o)}la.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":ta,url:ra,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:Jn,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:fa,uuid:na,"json-pointer":aa,"json-pointer-uri-fragment":ia,"relative-json-pointer":oa},la.full={date:ca,time:da,"date-time":function(e){var t=e.split(ua);return 2==t.length&&ca(t[0])&&da(t[1],!0)},uri:function(e){return pa.test(e)&&ea.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":ta,url:ra,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:Jn,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:fa,uuid:na,"json-pointer":aa,"json-pointer-uri-fragment":ia,"relative-json-pointer":oa};var ua=/t|\s/i,pa=/\/|:/,ha=/[^\\]\\Z/;function fa(e){if(ha.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var ma=function(e,t,r){var n,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=s;var h="maximum"==t,f=h?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[f],g=e.opts.$data&&m&&m.$data,y=h?"<":">",b=h?">":"<",v=void 0;if(g){var S,w=e.util.getData(m.$data,o,e.dataPathArr),x="exclusive"+i,k="exclType"+i,_="exclIsNumber"+i,C="' + "+(T="op"+i)+" + '";a+=" var schemaExcl"+i+" = "+w+"; ",a+=" var "+x+"; var "+k+" = typeof "+(w="schemaExcl"+i)+"; if ("+k+" != 'boolean' && "+k+" != 'undefined' && "+k+" != 'number') { ",v=f,(S=S||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(v||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: '"+f+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var E=a;a=S.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+E+"]); ":a+=" validate.errors = ["+E+"]; return false; ":a+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),a+=" "+k+" == 'number' ? ( ("+x+" = "+n+" === undefined || "+w+" "+y+"= "+n+") ? "+u+" "+b+"= "+w+" : "+u+" "+b+" "+n+" ) : ( ("+x+" = "+w+" === true) ? "+u+" "+b+"= "+n+" : "+u+" "+b+" "+n+" ) || "+u+" !== "+u+") { var op"+i+" = "+x+" ? '"+y+"' : '"+y+"='; ",void 0===s&&(v=f,c=e.errSchemaPath+"/"+f,n=w,p=g)}else if(C=y,(_="number"==typeof m)&&p){var T="'"+C+"'";a+=" if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),a+=" ( "+n+" === undefined || "+m+" "+y+"= "+n+" ? "+u+" "+b+"= "+m+" : "+u+" "+b+" "+n+" ) || "+u+" !== "+u+") { "}else _&&void 0===s?(x=!0,v=f,c=e.errSchemaPath+"/"+f,n=m,b+="="):(_&&(n=Math[h?"min":"max"](m,s)),m===(!_||n)?(x=!0,v=f,c=e.errSchemaPath+"/"+f,b+="="):(x=!1,C+="=")),T="'"+C+"'",a+=" if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),a+=" "+u+" "+b+" "+n+" || "+u+" !== "+u+") { ";return v=v||t,(S=S||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(v||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+T+", limit: "+n+", exclusive: "+x+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be "+C+" ",a+=p?"' + "+n:n+"'"),e.opts.verbose&&(a+=" , schema: ",a+=p?"validate.schema"+l:""+s,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",E=a,a=S.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+E+"]); ":a+=" validate.errors = ["+E+"]; return false; ":a+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",d&&(a+=" else { "),a},ga=function(e,t,r){var n,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=s,a+="if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),a+=" "+u+".length "+("maxItems"==t?">":"<")+" "+n+") { ";var h=t,f=f||[];f.push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(h||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have ",a+="maxItems"==t?"more":"fewer",a+=" than ",a+=p?"' + "+n+" + '":""+s,a+=" items' "),e.opts.verbose&&(a+=" , schema: ",a+=p?"validate.schema"+l:""+s,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var m=a;return a=f.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+m+"]); ":a+=" validate.errors = ["+m+"]; return false; ":a+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",d&&(a+=" else { "),a},ya=function(e,t,r){var n,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=s;var h="maxLength"==t?">":"<";a+="if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),!1===e.opts.unicode?a+=" "+u+".length ":a+=" ucs2length("+u+") ",a+=" "+h+" "+n+") { ";var f=t,m=m||[];m.push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be ",a+="maxLength"==t?"longer":"shorter",a+=" than ",a+=p?"' + "+n+" + '":""+s,a+=" characters' "),e.opts.verbose&&(a+=" , schema: ",a+=p?"validate.schema"+l:""+s,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var g=a;return a=m.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+g+"]); ":a+=" validate.errors = ["+g+"]; return false; ":a+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",d&&(a+=" else { "),a},ba=function(e,t,r){var n,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=s,a+="if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),a+=" Object.keys("+u+").length "+("maxProperties"==t?">":"<")+" "+n+") { ";var h=t,f=f||[];f.push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(h||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have ",a+="maxProperties"==t?"more":"fewer",a+=" than ",a+=p?"' + "+n+" + '":""+s,a+=" properties' "),e.opts.verbose&&(a+=" , schema: ",a+=p?"validate.schema"+l:""+s,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var m=a;return a=f.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+m+"]); ":a+=" validate.errors = ["+m+"]; return false; ":a+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",d&&(a+=" else { "),a},va={$ref:function(e,t,r){var n,a,i=" ",o=e.level,s=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(s||""),p="valid"+o;if("#"==l||"#/"==l)e.isRoot?(n=e.async,a="validate"):(n=!0===e.root.schema.$async,a="root.refVal[0]");else{var h=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===h){var f=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(f),(b=b||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(i+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(i+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),i+=" } "):i+=" {} ";var m=i;i=b.pop(),!e.compositeRule&&d?e.async?i+=" throw new ValidationError(["+m+"]); ":i+=" validate.errors = ["+m+"]; return false; ":i+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",d&&(i+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,f);e.logger.warn(f),d&&(i+=" if (true) { ")}}else if(h.inline){var g=e.util.copy(e);g.level++;var y="valid"+g.level;g.schema=h.schema,g.schemaPath="",g.errSchemaPath=l,i+=" "+e.validate(g).replace(/validate\.schema/g,h.code)+" ",d&&(i+=" if ("+y+") { ")}else n=!0===h.$async||e.async&&!1!==h.$async,a=h.code}if(a){var b;(b=b||[]).push(i),i="",e.opts.passContext?i+=" "+a+".call(this, ":i+=" "+a+"( ",i+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(i+=" + "+e.errorPath);var v=i+=" , "+(s?"data"+(s-1||""):"parentData")+" , "+(s?e.dataPathArr[s]:"parentDataProperty")+", rootData) ";if(i=b.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");d&&(i+=" var "+p+"; "),i+=" try { await "+v+"; ",d&&(i+=" "+p+" = true; "),i+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",d&&(i+=" "+p+" = false; "),i+=" } ",d&&(i+=" if ("+p+") { ")}else i+=" if (!"+v+") { if (vErrors === null) vErrors = "+a+".errors; else vErrors = vErrors.concat("+a+".errors); errors = vErrors.length; } ",d&&(i+=" else { ")}return i},allOf:function(e,t,r){var n=" ",a=e.schema[t],i=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,s=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var d="valid"+l.level,u=l.baseId,p=!0,h=a;if(h)for(var f,m=-1,g=h.length-1;m0:e.util.schemaHasRules(f,e.RULES.all))&&(p=!1,l.schema=f,l.schemaPath=i+"["+m+"]",l.errSchemaPath=o+"/"+m,n+=" "+e.validate(l)+" ",l.baseId=u,s&&(n+=" if ("+d+") { ",c+="}"));return s&&(n+=p?" if (true) { ":" "+c.slice(0,-1)+" "),n=e.util.cleanUpCode(n)},anyOf:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="valid"+a,p="errs__"+a,h=e.util.copy(e),f="";h.level++;var m="valid"+h.level;if(o.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&Object.keys(t).length>0:e.util.schemaHasRules(t,e.RULES.all)}))){var g=h.baseId;n+=" var "+p+" = errors; var "+u+" = false; ";var y=e.compositeRule;e.compositeRule=h.compositeRule=!0;var b=o;if(b)for(var v,S=-1,w=b.length-1;S0:e.util.schemaHasRules(o,e.RULES.all);if(n+="var "+p+" = errors;var "+u+";",v){var S=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=o,h.schemaPath=s,h.errSchemaPath=l,n+=" var "+f+" = false; for (var "+m+" = 0; "+m+" < "+d+".length; "+m+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var w=d+"["+m+"]";h.dataPathArr[g]=m;var x=e.validate(h);h.baseId=b,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,w)+" ":n+=" var "+y+" = "+w+"; "+x+" ",n+=" if ("+f+") break; } ",e.compositeRule=h.compositeRule=S,n+=" if (!"+f+") {"}else n+=" if ("+d+".length == 0) {";var k=k||[];k.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should contain a valid item' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var _=n;return n=k.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",v&&(n+=" errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n=e.util.cleanUpCode(n)},dependencies:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="errs__"+a,p=e.util.copy(e),h="";p.level++;var f="valid"+p.level,m={},g={},y=e.opts.ownProperties;for(w in o){var b=o[w],v=Array.isArray(b)?g:m;v[w]=b}n+="var "+u+" = errors;";var S=e.errorPath;for(var w in n+="var missing"+a+";",g)if((v=g[w]).length){if(n+=" if ( "+d+e.util.getProperty(w)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(w)+"') "),c){n+=" && ( ";var x=v;if(x)for(var k=-1,_=x.length-1;k<_;)P=x[k+=1],k&&(n+=" || "),n+=" ( ( "+(B=d+(L=e.util.getProperty(P)))+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(P)+"') "),n+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?P:L)+") ) ";n+=")) { ";var C="missing"+a,E="' + "+C+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(S,C,!0):S+" + "+C);var T=T||[];T.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+E+"', depsCount: "+v.length+", deps: '"+e.util.escapeQuotes(1==v.length?v[0]:v.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==v.length?n+="property "+e.util.escapeQuotes(v[0]):n+="properties "+e.util.escapeQuotes(v.join(", ")),n+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var O=n;n=T.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+O+"]); ":n+=" validate.errors = ["+O+"]; return false; ":n+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{n+=" ) { ";var A=v;if(A)for(var P,z=-1,R=A.length-1;z0:e.util.schemaHasRules(b,e.RULES.all))&&(n+=" "+f+" = true; if ( "+d+e.util.getProperty(w)+" !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(w)+"') "),n+=") { ",p.schema=b,p.schemaPath=s+e.util.getProperty(w),p.errSchemaPath=l+"/"+e.util.escapeFragment(w),n+=" "+e.validate(p)+" ",p.baseId=W,n+=" } ",c&&(n+=" if ("+f+") { ",h+="}"));return c&&(n+=" "+h+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)},enum:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="valid"+a,p=e.opts.$data&&o&&o.$data;p&&(n+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ");var h="i"+a,f="schema"+a;p||(n+=" var "+f+" = validate.schema"+s+";"),n+="var "+u+";",p&&(n+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),n+=u+" = false;for (var "+h+"=0; "+h+"<"+f+".length; "+h+"++) if (equal("+d+", "+f+"["+h+"])) { "+u+" = true; break; }",p&&(n+=" } "),n+=" if (!"+u+") { ";var m=m||[];m.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+a+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var g=n;return n=m.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+g+"]); ":n+=" validate.errors = ["+g+"]; return false; ":n+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",c&&(n+=" else { "),n},format:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||"");if(!1===e.opts.format)return c&&(n+=" if (true) { "),n;var u,p=e.opts.$data&&o&&o.$data;p?(n+=" var schema"+a+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",u="schema"+a):u=o;var h=e.opts.unknownFormats,f=Array.isArray(h);if(p)n+=" var "+(m="format"+a)+" = formats["+u+"]; var "+(g="isObject"+a)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+a)+" = "+g+" && "+m+".type || 'string'; if ("+g+") { ",e.async&&(n+=" var async"+a+" = "+m+".async; "),n+=" "+m+" = "+m+".validate; } if ( ",p&&(n+=" ("+u+" !== undefined && typeof "+u+" != 'string') || "),n+=" (","ignore"!=h&&(n+=" ("+u+" && !"+m+" ",f&&(n+=" && self._opts.unknownFormats.indexOf("+u+") == -1 "),n+=") || "),n+=" ("+m+" && "+y+" == '"+r+"' && !(typeof "+m+" == 'function' ? ",e.async?n+=" (async"+a+" ? await "+m+"("+d+") : "+m+"("+d+")) ":n+=" "+m+"("+d+") ",n+=" : "+m+".test("+d+"))))) {";else{var m;if(!(m=e.formats[o])){if("ignore"==h)return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(n+=" if (true) { "),n;if(f&&h.indexOf(o)>=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var g,y=(g="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(g){var b=!0===m.async;m=m.validate}if(y!=r)return c&&(n+=" if (true) { "),n;if(b){if(!e.async)throw new Error("async format in sync schema");n+=" if (!(await "+(v="formats"+e.util.getProperty(o)+".validate")+"("+d+"))) { "}else{n+=" if (! ";var v="formats"+e.util.getProperty(o);g&&(v+=".validate"),n+="function"==typeof m?" "+v+"("+d+") ":" "+v+".test("+d+") ",n+=") { "}}var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=p?""+u:""+e.util.toQuotedString(o),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=p?"' + "+u+" + '":""+e.util.escapeQuotes(o),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=p?"validate.schema"+s:""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var w=n;return n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+w+"]); ":n+=" validate.errors = ["+w+"]; return false; ":n+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n},if:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="valid"+a,p="errs__"+a,h=e.util.copy(e);h.level++;var f="valid"+h.level,m=e.schema.then,g=e.schema.else,y=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0:e.util.schemaHasRules(m,e.RULES.all)),b=void 0!==g&&(e.opts.strictKeywords?"object"==typeof g&&Object.keys(g).length>0:e.util.schemaHasRules(g,e.RULES.all)),v=h.baseId;if(y||b){var S;h.createErrors=!1,h.schema=o,h.schemaPath=s,h.errSchemaPath=l,n+=" var "+p+" = errors; var "+u+" = true; ";var w=e.compositeRule;e.compositeRule=h.compositeRule=!0,n+=" "+e.validate(h)+" ",h.baseId=v,h.createErrors=!0,n+=" errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=w,y?(n+=" if ("+f+") { ",h.schema=e.schema.then,h.schemaPath=e.schemaPath+".then",h.errSchemaPath=e.errSchemaPath+"/then",n+=" "+e.validate(h)+" ",h.baseId=v,n+=" "+u+" = "+f+"; ",y&&b?n+=" var "+(S="ifClause"+a)+" = 'then'; ":S="'then'",n+=" } ",b&&(n+=" else { ")):n+=" if (!"+f+") { ",b&&(h.schema=e.schema.else,h.schemaPath=e.schemaPath+".else",h.errSchemaPath=e.errSchemaPath+"/else",n+=" "+e.validate(h)+" ",h.baseId=v,n+=" "+u+" = "+f+"; ",y&&b?n+=" var "+(S="ifClause"+a)+" = 'else'; ":S="'else'",n+=" } "),n+=" if (!"+u+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { failingKeyword: "+S+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match \"' + "+S+" + '\" schema' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",c&&(n+=" else { "),n=e.util.cleanUpCode(n)}else c&&(n+=" if (true) { ");return n},items:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="valid"+a,p="errs__"+a,h=e.util.copy(e),f="";h.level++;var m="valid"+h.level,g="i"+a,y=h.dataLevel=e.dataLevel+1,b="data"+y,v=e.baseId;if(n+="var "+p+" = errors;var "+u+";",Array.isArray(o)){var S=e.schema.additionalItems;if(!1===S){n+=" "+u+" = "+d+".length <= "+o.length+"; ";var w=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+u+") { ";var x=x||[];x.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var k=n;n=x.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=w,c&&(f+="}",n+=" else { ")}var _=o;if(_)for(var C,E=-1,T=_.length-1;E0:e.util.schemaHasRules(C,e.RULES.all)){n+=" "+m+" = true; if ("+d+".length > "+E+") { ";var O=d+"["+E+"]";h.schema=C,h.schemaPath=s+"["+E+"]",h.errSchemaPath=l+"/"+E,h.errorPath=e.util.getPathExpr(e.errorPath,E,e.opts.jsonPointers,!0),h.dataPathArr[y]=E;var A=e.validate(h);h.baseId=v,e.util.varOccurences(A,b)<2?n+=" "+e.util.varReplace(A,b,O)+" ":n+=" var "+b+" = "+O+"; "+A+" ",n+=" } ",c&&(n+=" if ("+m+") { ",f+="}")}"object"==typeof S&&(e.opts.strictKeywords?"object"==typeof S&&Object.keys(S).length>0:e.util.schemaHasRules(S,e.RULES.all))&&(h.schema=S,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+d+".length > "+o.length+") { for (var "+g+" = "+o.length+"; "+g+" < "+d+".length; "+g+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0),O=d+"["+g+"]",h.dataPathArr[y]=g,A=e.validate(h),h.baseId=v,e.util.varOccurences(A,b)<2?n+=" "+e.util.varReplace(A,b,O)+" ":n+=" var "+b+" = "+O+"; "+A+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",f+="}"))}else(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all))&&(h.schema=o,h.schemaPath=s,h.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+d+".length; "+g+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0),O=d+"["+g+"]",h.dataPathArr[y]=g,A=e.validate(h),h.baseId=v,e.util.varOccurences(A,b)<2?n+=" "+e.util.varReplace(A,b,O)+" ":n+=" var "+b+" = "+O+"; "+A+" ",c&&(n+=" if (!"+m+") break; "),n+=" }");return c&&(n+=" "+f+" if ("+p+" == errors) {"),n=e.util.cleanUpCode(n)},maximum:ma,minimum:ma,maxItems:ga,minItems:ga,maxLength:ya,minLength:ya,maxProperties:ba,minProperties:ba,multipleOf:function(e,t,r){var n,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=s,a+="var division"+i+";if (",p&&(a+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),a+=" (division"+i+" = "+u+" / "+n+", ",e.opts.multipleOfPrecision?a+=" Math.abs(Math.round(division"+i+") - division"+i+") > 1e-"+e.opts.multipleOfPrecision+" ":a+=" division"+i+" !== parseInt(division"+i+") ",a+=" ) ",p&&(a+=" ) "),a+=" ) { ";var h=h||[];h.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be multiple of ",a+=p?"' + "+n:n+"'"),e.opts.verbose&&(a+=" , schema: ",a+=p?"validate.schema"+l:""+s,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var f=a;return a=h.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+f+"]); ":a+=" validate.errors = ["+f+"]; return false; ":a+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",d&&(a+=" else { "),a},not:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="errs__"+a,p=e.util.copy(e);p.level++;var h="valid"+p.level;if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){p.schema=o,p.schemaPath=s,p.errSchemaPath=l,n+=" var "+u+" = errors; ";var f,m=e.compositeRule;e.compositeRule=p.compositeRule=!0,p.createErrors=!1,p.opts.allErrors&&(f=p.opts.allErrors,p.opts.allErrors=!1),n+=" "+e.validate(p)+" ",p.createErrors=!0,f&&(p.opts.allErrors=f),e.compositeRule=p.compositeRule=m,n+=" if ("+h+") { ";var g=g||[];g.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var y=n;n=g.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+y+"]); ":n+=" validate.errors = ["+y+"]; return false; ":n+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n},oneOf:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="valid"+a,p="errs__"+a,h=e.util.copy(e),f="";h.level++;var m="valid"+h.level,g=h.baseId,y="prevValid"+a,b="passingSchemas"+a;n+="var "+p+" = errors , "+y+" = false , "+u+" = false , "+b+" = null; ";var v=e.compositeRule;e.compositeRule=h.compositeRule=!0;var S=o;if(S)for(var w,x=-1,k=S.length-1;x0:e.util.schemaHasRules(w,e.RULES.all))?(h.schema=w,h.schemaPath=s+"["+x+"]",h.errSchemaPath=l+"/"+x,n+=" "+e.validate(h)+" ",h.baseId=g):n+=" var "+m+" = true; ",x&&(n+=" if ("+m+" && "+y+") { "+u+" = false; "+b+" = ["+b+", "+x+"]; } else { ",f+="}"),n+=" if ("+m+") { "+u+" = "+y+" = true; "+b+" = "+x+"; }";return e.compositeRule=h.compositeRule=v,n+=f+"if (!"+u+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { passingSchemas: "+b+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n},pattern:function(e,t,r){var n,a=" ",i=e.level,o=e.dataLevel,s=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(a+=" var schema"+i+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=s,a+="if ( ",p&&(a+=" ("+n+" !== undefined && typeof "+n+" != 'string') || "),a+=" !"+(p?"(new RegExp("+n+"))":e.usePattern(s))+".test("+u+") ) { ";var h=h||[];h.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",a+=p?""+n:""+e.util.toQuotedString(s),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match pattern \"",a+=p?"' + "+n+" + '":""+e.util.escapeQuotes(s),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=p?"validate.schema"+l:""+e.util.toQuotedString(s),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var f=a;return a=h.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+f+"]); ":a+=" validate.errors = ["+f+"]; return false; ":a+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",d&&(a+=" else { "),a},properties:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="errs__"+a,p=e.util.copy(e),h="";p.level++;var f="valid"+p.level,m="key"+a,g="idx"+a,y=p.dataLevel=e.dataLevel+1,b="data"+y,v="dataProperties"+a,S=Object.keys(o||{}),w=e.schema.patternProperties||{},x=Object.keys(w),k=e.schema.additionalProperties,_=S.length||x.length,C=!1===k,E="object"==typeof k&&Object.keys(k).length,T=e.opts.removeAdditional,O=C||E||T,A=e.opts.ownProperties,P=e.baseId,z=e.schema.required;if(z&&(!e.opts.$data||!z.$data)&&z.length8)n+=" || validate.schema"+s+".hasOwnProperty("+m+") ";else{var L=S;if(L)for(var B=-1,W=L.length-1;B0:e.util.schemaHasRules(Q,e.RULES.all)){var X=e.util.getProperty(Z),J=($=d+X,V&&void 0!==Q.default);if(p.schema=Q,p.schemaPath=s+X,p.errSchemaPath=l+"/"+e.util.escapeFragment(Z),p.errorPath=e.util.getPath(e.errorPath,Z,e.opts.jsonPointers),p.dataPathArr[y]=e.util.toQuotedString(Z),G=e.validate(p),p.baseId=P,e.util.varOccurences(G,b)<2){G=e.util.varReplace(G,b,$);var ee=$}else ee=b,n+=" var "+b+" = "+$+"; ";if(J)n+=" "+G+" ";else{if(R&&R[Z]){n+=" if ( "+ee+" === undefined ",A&&(n+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(Z)+"') "),n+=") { "+f+" = false; ",j=e.errorPath,F=l;var te,re=e.util.escapeQuotes(Z);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(j,Z,e.opts.jsonPointers)),l=e.errSchemaPath+"/required",(te=te||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+re+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+re+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",N=n,n=te.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+N+"]); ":n+=" validate.errors = ["+N+"]; return false; ":n+=" var err = "+N+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=F,e.errorPath=j,n+=" } else { "}else c?(n+=" if ( "+ee+" === undefined ",A&&(n+=" || ! Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(Z)+"') "),n+=") { "+f+" = true; } else { "):(n+=" if ("+ee+" !== undefined ",A&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", '"+e.util.escapeQuotes(Z)+"') "),n+=" ) { ");n+=" "+G+" } "}}c&&(n+=" if ("+f+") { ",h+="}")}}if(x.length){var ne=x;if(ne)for(var ae,ie=-1,oe=ne.length-1;ie0:e.util.schemaHasRules(Q,e.RULES.all))&&(p.schema=Q,p.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ae),p.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ae),n+=A?" "+v+" = "+v+" || Object.keys("+d+"); for (var "+g+"=0; "+g+"<"+v+".length; "+g+"++) { var "+m+" = "+v+"["+g+"]; ":" for (var "+m+" in "+d+") { ",n+=" if ("+e.usePattern(ae)+".test("+m+")) { ",p.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),$=d+"["+m+"]",p.dataPathArr[y]=m,G=e.validate(p),p.baseId=P,e.util.varOccurences(G,b)<2?n+=" "+e.util.varReplace(G,b,$)+" ":n+=" var "+b+" = "+$+"; "+G+" ",c&&(n+=" if (!"+f+") break; "),n+=" } ",c&&(n+=" else "+f+" = true; "),n+=" } ",c&&(n+=" if ("+f+") { ",h+="}"))}return c&&(n+=" "+h+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)},propertyNames:function(e,t,r){var n=" ",a=e.level,i=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,d="data"+(i||""),u="errs__"+a,p=e.util.copy(e);p.level++;var h="valid"+p.level;if(n+="var "+u+" = errors;",e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){p.schema=o,p.schemaPath=s,p.errSchemaPath=l;var f="key"+a,m="idx"+a,g="i"+a,y="' + "+f+" + '",b="data"+(p.dataLevel=e.dataLevel+1),v="dataProperties"+a,S=e.opts.ownProperties,w=e.baseId;S&&(n+=" var "+v+" = undefined; "),n+=S?" "+v+" = "+v+" || Object.keys("+d+"); for (var "+m+"=0; "+m+"<"+v+".length; "+m+"++) { var "+f+" = "+v+"["+m+"]; ":" for (var "+f+" in "+d+") { ",n+=" var startErrs"+a+" = errors; ";var x=f,k=e.compositeRule;e.compositeRule=p.compositeRule=!0;var _=e.validate(p);p.baseId=w,e.util.varOccurences(_,b)<2?n+=" "+e.util.varReplace(_,b,x)+" ":n+=" var "+b+" = "+x+"; "+_+" ",e.compositeRule=p.compositeRule=k,n+=" if (!"+h+") { for (var "+g+"=startErrs"+a+"; "+g+"0:e.util.schemaHasRules(v,e.RULES.all))||(f[f.length]=g)}}else f=o;if(p||f.length){var S=e.errorPath,w=p||f.length>=e.opts.loopRequired,x=e.opts.ownProperties;if(c)if(n+=" var missing"+a+"; ",w){p||(n+=" var "+h+" = validate.schema"+s+"; ");var k="' + "+(A="schema"+a+"["+(T="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(S,A,e.opts.jsonPointers)),n+=" var "+u+" = true; ",p&&(n+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),n+=" for (var "+T+" = 0; "+T+" < "+h+".length; "+T+"++) { "+u+" = "+d+"["+h+"["+T+"]] !== undefined ",x&&(n+=" && Object.prototype.hasOwnProperty.call("+d+", "+h+"["+T+"]) "),n+="; if (!"+u+") break; } ",p&&(n+=" } "),n+=" if (!"+u+") { ",(C=C||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+k+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+k+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ";var _=n;n=C.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var C,E=f;if(E)for(var T=-1,O=E.length-1;T 1) { ";var f=e.schema.items&&e.schema.items.type,m=Array.isArray(f);if(!f||"object"==f||"array"==f||m&&(f.indexOf("object")>=0||f.indexOf("array")>=0))a+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+p+" = false; break outer; } } } ";else{a+=" var itemIndices = {}, item; for (;i--;) { var item = "+u+"[i]; ";var g="checkDataType"+(m?"s":"");a+=" if ("+e.util[g](f,"item",!0)+") continue; ",m&&(a+=" if (typeof item == 'string') item = '\"' + item; "),a+=" if (typeof itemIndices[item] == 'number') { "+p+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}a+=" } ",h&&(a+=" } "),a+=" if (!"+p+") { ";var y=y||[];y.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+l:""+s,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var b=a;a=y.pop(),!e.compositeRule&&d?e.async?a+=" throw new ValidationError(["+b+"]); ":a+=" validate.errors = ["+b+"]; return false; ":a+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",d&&(a+=" else { ")}else d&&(a+=" if (true) { ");return a},validate:qn},Sa=Zr.toHash,wa=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"],xa=function(e,t){for(var r=0;r{const t=new Ha({allErrors:!0});if(t.validate(si,e),null!==t.errors&&void 0!==t.errors){const e=1/0;let r=[];return t.errors.forEach(t=>{const n=t.schemaPath.split("/").length;n===e?r.push(oi(t)):n`Ainsley${e.dataPath}${void 0===e.message?"":" "+e.message}`,si={$schema:"http://json-schema.org/draft-07/schema#",definitions:{Primitive:{anyOf:[{type:"string"},{type:"number"}]}},properties:{children:{items:{anyOf:[{items:[{type:"string"},{items:{items:[{type:"string"},{$ref:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"},type:"array"}],minItems:2,maxItems:2,type:"array"},{items:[{type:"string"},{anyOf:[{type:"object",additionalProperties:{$ref:"#/definitions/Primitive"}},{type:"array",items:{anyOf:[{$ref:"#/definitions/Primitive"},{items:[{$ref:"#/definitions/Primitive"},{$ref:"#/definitions/Primitive"}],minItems:2,maxItems:2,type:"array"}]}}]}],minItems:2,maxItems:2,type:"array"},{type:"string"},{$ref:"#"}]},type:"array"},variables:{type:"object",additionalProperties:{type:"object",additionalProperties:{$ref:"#/definitions/Primitive"}}},variations:{items:{items:{items:[{type:"string"},{type:"string"}],minItems:2,maxItems:2,type:"array"},type:"array"},type:"array"}},type:"object"},li=e=>!(null===e||"object"!=typeof e||Array.isArray(e)),ci=e=>{let t=[[]],r=0;for(;rt.map(t=>t.concat([e])));return t},di=async(e,t=ui)=>{const r=ii(e);if(r.length>0)throw new Error("Invalid input Ainsley:\n"+r.join("\n"));const n=$r(e);return Array.isArray(n.children)&&await Promise.all(n.children.map(async(e,r)=>{if("string"==typeof e&&e.startsWith("$")){const a=await pi(e.slice(1),t);n.children[r]=a}return e})),n},ui=async e=>{var t;try{return r(68)("ainsley-config-"+e).config}catch(r){try{const r=new URL(e),n=await fetch(r.href);return(null!==(t=n.headers.get("Content-Type"))&&void 0!==t?t:"").endsWith("/json")?await n.json():await n.text()}catch(t){return await Promise.resolve(`/* $${e} */`)}}},pi=async(e,t)=>{try{const r=await t(e);return li(r)?await di(r,t):r}catch(t){return`/* $${e} */`}};function hi(e){return{prev:null,next:null,data:e}}function fi(e,t,r){var n;return null!==gi?(n=gi,gi=gi.cursor,n.prev=t,n.next=r,n.cursor=e.cursor):n={prev:t,next:r,cursor:e.cursor},e.cursor=n,n}function mi(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=gi,gi=t}var gi=null,yi=function(){this.cursor=null,this.head=null,this.tail=null};yi.createItem=hi,yi.prototype.createItem=hi,yi.prototype.updateCursors=function(e,t,r,n){for(var a=this.cursor;null!==a;)a.prev===e&&(a.prev=t),a.next===r&&(a.next=n),a=a.cursor},yi.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},yi.prototype.fromArray=function(e){var t=null;this.head=null;for(var r=0;r100&&(c=i-60+3,i=58);for(var d=o;d<=s;d++)d>=0&&d0&&n[d].length>c?"…":"")+n[d].substr(c,98)+(n[d].length>c+100-1?"…":""));return[r(o,a),new Array(i+l+2).join("-")+"^",r(a,s)].filter(Boolean).join("\n")}var wi=function(e,t,r,n,a){var i=vi("SyntaxError",e);return i.source=t,i.offset=r,i.line=n,i.column=a,i.sourceFragment=function(e){return Si(i,isNaN(e)?0:e)},Object.defineProperty(i,"formattedMessage",{get:function(){return"Parse error: "+i.message+"\n"+Si(i,2)}}),i.parseError={offset:r,line:n,column:a},i},xi={EOF:0,Ident:1,Function:2,AtKeyword:3,Hash:4,String:5,BadString:6,Url:7,BadUrl:8,Delim:9,Number:10,Percentage:11,Dimension:12,WhiteSpace:13,CDO:14,CDC:15,Colon:16,Semicolon:17,Comma:18,LeftSquareBracket:19,RightSquareBracket:20,LeftParenthesis:21,RightParenthesis:22,LeftCurlyBracket:23,RightCurlyBracket:24,Comment:25},ki=Object.keys(xi).reduce((function(e,t){return e[xi[t]]=t,e}),{}),_i={TYPE:xi,NAME:ki};function Ci(e){return e>=48&&e<=57}function Ei(e){return e>=65&&e<=90}function Ti(e){return e>=97&&e<=122}function Oi(e){return Ei(e)||Ti(e)}function Ai(e){return e>=128}function Pi(e){return Oi(e)||Ai(e)||95===e}function zi(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e}function Ri(e){return 10===e||13===e||12===e}function Li(e){return Ri(e)||32===e||9===e}function Bi(e,t){return 92===e&&!Ri(t)&&0!==t}var Wi=new Array(128);qi.Eof=128,qi.WhiteSpace=130,qi.Digit=131,qi.NameStart=132,qi.NonPrintable=133;for(var Ii=0;Ii=65&&e<=70||e>=97&&e<=102},isUppercaseLetter:Ei,isLowercaseLetter:Ti,isLetter:Oi,isNonAscii:Ai,isNameStart:Pi,isName:function(e){return Pi(e)||Ci(e)||45===e},isNonPrintable:zi,isNewline:Ri,isWhiteSpace:Li,isValidEscape:Bi,isIdentifierStart:function(e,t,r){return 45===e?Pi(t)||45===t||Bi(t,r):!!Pi(e)||92===e&&Bi(e,t)},isNumberStart:function(e,t,r){return 43===e||45===e?Ci(t)?2:46===t&&Ci(r)?3:0:46===e?Ci(t)?2:0:Ci(e)?1:0},isBOM:function(e){return 65279===e||65534===e?1:0},charCodeCategory:qi},ji=Di.isDigit,Mi=Di.isHexDigit,Fi=Di.isUppercaseLetter,Ni=Di.isName,Ui=Di.isWhiteSpace,$i=Di.isValidEscape;function Gi(e,t){return te.length)return!1;for(var a=t;a=0&&Ui(e.charCodeAt(t));t--);return t+1},findWhiteSpaceEnd:function(e,t){for(;t>24:eo},lookupOffset:function(e){return(e+=this.tokenIndex)0?e>24,this.source,a)){case 1:break e;case 2:n++;break e;default:a=16777215&this.offsetAndType[n],this.balance[r]===n&&(n=r)}return n-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]>24===to;e++,t++);t>0&&this.skip(t)},skipSC:function(){for(;this.tokenType===to||this.tokenType===ro;)this.next()},skip:function(e){var t=this.tokenIndex+e;t>24,this.tokenEnd=16777215&t):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e>24,this.tokenEnd=16777215&e):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=eo,this.tokenStart=this.tokenEnd=this.source.length)},dump:function(){var e=this.firstCharOffset;return Array.prototype.slice.call(this.offsetAndType,0,this.tokenCount).map((function(t,r){var n=e,a=16777215&t;return e=a,{idx:r,type:Xi[t>>24],chunk:this.source.substring(n,a),balance:this.balance[r]}}),this)}};var ao=no;function io(e){return e}function oo(e,t,r,n){var a,i;switch(e.type){case"Group":a=function(e,t,r,n){var a=" "===e.combinator||n?e.combinator:" "+e.combinator+" ",i=e.terms.map((function(e){return oo(e,t,r,n)})).join(a);return(e.explicit||r)&&(i=(n||","===i[0]?"[":"[ ")+i+(n?"]":" ]")),i}(e,t,r,n)+(e.disallowEmpty?"!":"");break;case"Multiplier":return oo(e.term,t,r,n)+t(0===(i=e).min&&0===i.max?"*":0===i.min&&1===i.max?"?":1===i.min&&0===i.max?i.comma?"#":"+":1===i.min&&1===i.max?"":(i.comma?"#":"")+(i.min===i.max?"{"+i.min+"}":"{"+i.min+","+(0!==i.max?i.max:"")+"}"),e);case"Type":a="<"+e.name+(e.opts?t(function(e){switch(e.type){case"Range":return" ["+(null===e.min?"-∞":e.min)+","+(null===e.max?"∞":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`")}}(e.opts),e.opts):"")+">";break;case"Property":a="<'"+e.name+"'>";break;case"Keyword":a=e.name;break;case"AtKeyword":a="@"+e.name;break;case"Function":a=e.name+"(";break;case"String":case"Token":a=e.value;break;case"Comma":a=",";break;default:throw new Error("Unknown node type `"+e.type+"`")}return t(a,e)}var so=function(e,t){var r=io,n=!1,a=!1;return"function"==typeof t?r=t:t&&(n=Boolean(t.forceBraces),a=Boolean(t.compact),"function"==typeof t.decorate&&(r=t.decorate)),oo(e,r,n,a)};function lo(e,t){var r=e&&e.loc&&e.loc[t];return r?{offset:r.offset,line:r.line,column:r.column}:null}var co=function(e,t){var r=vi("SyntaxReferenceError",e+(t?" `"+t+"`":""));return r.reference=t,r},uo=function(e,t,r,n){var a=vi("SyntaxMatchError",e),i=function(e){for(var t=e.tokens,r=e.longestMatch,n=r1}}(n),o=i.mismatchOffset||0,s=i.node||r,l=lo(s,"end"),c=i.last?l:lo(s,"start"),d=i.css;return a.rawMessage=e,a.syntax=t?so(t):"",a.css=d,a.mismatchOffset=o,a.loc={source:s&&s.loc&&s.loc.source||"",start:c,end:l},a.line=c?c.line:void 0,a.column=c?c.column:void 0,a.offset=c?c.offset:void 0,a.message=e+"\n syntax: "+a.syntax+"\n value: "+(a.css||"")+"\n --------"+new Array(a.mismatchOffset+1).join("-")+"^",a},po=Object.prototype.hasOwnProperty,ho=Object.create(null),fo=Object.create(null);function mo(e,t){return t=t||0,e.length-t>=2&&45===e.charCodeAt(t)&&45===e.charCodeAt(t+1)}function go(e,t){if(t=t||0,e.length-t>=3&&45===e.charCodeAt(t)&&45!==e.charCodeAt(t+1)){var r=e.indexOf("-",t+2);if(-1!==r)return e.substring(t,r+1)}return""}var yo={keyword:function(e){if(po.call(ho,e))return ho[e];var t=e.toLowerCase();if(po.call(ho,t))return ho[e]=ho[t];var r=mo(t,0),n=r?"":go(t,0);return ho[e]=Object.freeze({basename:t.substr(n.length),name:t,vendor:n,prefix:n,custom:r})},property:function(e){if(po.call(fo,e))return fo[e];var t=e,r=e[0];"/"===r?r="/"===e[1]?"//":"/":"_"!==r&&"*"!==r&&"$"!==r&&"#"!==r&&"+"!==r&&"&"!==r&&(r="");var n=mo(t,r.length);if(!n&&(t=t.toLowerCase(),po.call(fo,t)))return fo[e]=fo[t];var a=n?"":go(t,r.length),i=t.substr(0,r.length+a.length);return fo[e]=Object.freeze({basename:t.substr(i.length),name:t.substr(r.length),hack:r,vendor:a,prefix:i,custom:n})},isCustomProperty:mo,vendorPrefix:go},bo="undefined"!=typeof Uint32Array?Uint32Array:Array,vo=function(e,t){return null===e||e.length=e.length?void(u>24,l[c]=f,l[f++]=c;f0?6:0;if(!Ko(i))return 0;if(++a>6)return 0}return a}function os(e,t,r){if(!e)return 0;for(;ns(r(t),63);){if(++e>6)return 0;t++}return t}var ss=Io.isIdentifierStart,ls=Io.isHexDigit,cs=Io.isDigit,ds=Io.cmpStr,us=Io.consumeNumber,ps=Io.TYPE,hs=["unset","initial","inherit"],fs=["calc(","-moz-calc(","-webkit-calc("];function ms(e,t){return te.max)return!0}return!1}function Ss(e,t){var r=e.index,n=0;do{if(n++,e.balance<=r)break}while(e=t(n));return n}function ws(e){return function(t,r,n){return null===t?0:t.type===ps.Function&&ys(t.value,fs)?Ss(t,r):e(t,r,n)}}function xs(e){return function(t){return null===t||t.type!==e?0:1}}function ks(e){return function(t,r,n){if(null===t||t.type!==ps.Dimension)return 0;var a=us(t.value,0);if(null!==e){var i=t.value.indexOf("\\",a),o=-1!==i&&bs(t.value,i)?t.value.substring(a,i):t.value.substr(a);if(!1===e.hasOwnProperty(o.toLowerCase()))return 0}return vs(n,t.value,a)?0:1}}function _s(e){return"function"!=typeof e&&(e=function(){return 0}),function(t,r,n){return null!==t&&t.type===ps.Number&&0===Number(t.value)?1:e(t,r,n)}}var Cs={"ident-token":xs(ps.Ident),"function-token":xs(ps.Function),"at-keyword-token":xs(ps.AtKeyword),"hash-token":xs(ps.Hash),"string-token":xs(ps.String),"bad-string-token":xs(ps.BadString),"url-token":xs(ps.Url),"bad-url-token":xs(ps.BadUrl),"delim-token":xs(ps.Delim),"number-token":xs(ps.Number),"percentage-token":xs(ps.Percentage),"dimension-token":xs(ps.Dimension),"whitespace-token":xs(ps.WhiteSpace),"CDO-token":xs(ps.CDO),"CDC-token":xs(ps.CDC),"colon-token":xs(ps.Colon),"semicolon-token":xs(ps.Semicolon),"comma-token":xs(ps.Comma),"[-token":xs(ps.LeftSquareBracket),"]-token":xs(ps.RightSquareBracket),"(-token":xs(ps.LeftParenthesis),")-token":xs(ps.RightParenthesis),"{-token":xs(ps.LeftCurlyBracket),"}-token":xs(ps.RightCurlyBracket),string:xs(ps.String),ident:xs(ps.Ident),"custom-ident":function(e){if(null===e||e.type!==ps.Ident)return 0;var t=e.value.toLowerCase();return ys(t,hs)||gs(t,"default")?0:1},"custom-property-name":function(e){return null===e||e.type!==ps.Ident||45!==ms(e.value,0)||45!==ms(e.value,1)?0:1},"hex-color":function(e){if(null===e||e.type!==ps.Hash)return 0;var t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(var r=1;re.index||e.balancee.index||e.balance=128||0===As[r])break}return e.pos===t&&e.error("Expect a keyword"),e.substringToPos(t)}function Ls(e){for(var t=e.pos;t57)break}return e.pos===t&&e.error("Expect a number"),e.substringToPos(t)}function Bs(e){var t=e.str.indexOf("'",e.pos+1);return-1===t&&(e.pos=e.str.length,e.error("Expect an apostrophe")),e.substringToPos(t+1)}function Ws(e){var t,r=null;return e.eat(123),t=Ls(e),44===e.charCode()?(e.pos++,125!==e.charCode()&&(r=Ls(e))):r=t,e.eat(125),{min:Number(t),max:r?Number(r):0}}function Is(e,t){var r=function(e){var t=null,r=!1;switch(e.charCode()){case 42:e.pos++,t={min:0,max:0};break;case 43:e.pos++,t={min:1,max:0};break;case 63:e.pos++,t={min:0,max:1};break;case 35:e.pos++,r=!0,t=123===e.charCode()?Ws(e):{min:1,max:0};break;case 123:t=Ws(e);break;default:return null}return{type:"Multiplier",comma:r,min:t.min,max:t.max,term:null}}(e);return null!==r?(r.term=t,r):t}function qs(e){var t=e.peek();return""===t?null:{type:"Token",value:t}}function Ds(e){var t,r=null;return e.eat(60),t=Rs(e),40===e.charCode()&&41===e.nextCharCode()&&(e.pos+=2,t+="()"),91===e.charCodeAt(e.findWsEnd(e.pos))&&(zs(e),r=function(e){var t=null,r=null,n=1;return e.eat(91),45===e.charCode()&&(e.peek(),n=-1),-1==n&&8734===e.charCode()?e.peek():t=n*Number(Ls(e)),zs(e),e.eat(44),zs(e),8734===e.charCode()?e.peek():(n=1,45===e.charCode()&&(e.peek(),n=-1),r=n*Number(Ls(e))),e.eat(93),null===t&&null===r?null:{type:"Range",min:t,max:r}}(e)),e.eat(62),Is(e,{type:"Type",name:t,opts:r})}function js(e,t){function r(e,t){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:!1}}for(t=Object.keys(t).sort((function(e,t){return Ps[e]-Ps[t]}));t.length>0;){for(var n=t.shift(),a=0,i=0;a1&&(e.splice(i,a-i,r(e.slice(i,a),n)),a=i+1),i=-1))}-1!==i&&t.length&&e.splice(i,a-i,r(e.slice(i,a),n))}return n}function Ms(e){for(var t,r=[],n={},a=null,i=e.pos;t=Fs(e);)"Spaces"!==t.type&&("Combinator"===t.type?(null!==a&&"Combinator"!==a.type||(e.pos=i,e.error("Unexpected combinator")),n[t.value]=!0):null!==a&&"Combinator"!==a.type&&(n[" "]=!0,r.push({type:"Combinator",value:" "})),r.push(t),a=t,i=e.pos);return null!==a&&"Combinator"===a.type&&(e.pos-=i,e.error("Unexpected combinator")),{type:"Group",terms:r,combinator:js(r,n)||" ",disallowEmpty:!1,explicit:!1}}function Fs(e){var t=e.charCode();if(t<128&&1===As[t])return function(e){var t;return t=Rs(e),40===e.charCode()?(e.pos++,{type:"Function",name:t}):Is(e,{type:"Keyword",name:t})}(e);switch(t){case 93:break;case 91:return Is(e,function(e){var t;return e.eat(91),t=Ms(e),e.eat(93),t.explicit=!0,33===e.charCode()&&(e.pos++,t.disallowEmpty=!0),t}(e));case 60:return 39===e.nextCharCode()?function(e){var t;return e.eat(60),e.eat(39),t=Rs(e),e.eat(39),e.eat(62),Is(e,{type:"Property",name:t})}(e):Ds(e);case 124:return{type:"Combinator",value:e.substringToPos(124===e.nextCharCode()?e.pos+2:e.pos+1)};case 38:return e.pos++,e.eat(38),{type:"Combinator",value:"&&"};case 44:return e.pos++,{type:"Comma"};case 39:return Is(e,{type:"String",value:Bs(e)});case 32:case 9:case 10:case 13:case 12:return{type:"Spaces",value:zs(e)};case 64:return(t=e.nextCharCode())<128&&1===As[t]?(e.pos++,{type:"AtKeyword",name:Rs(e)}):qs(e);case 42:case 43:case 63:case 35:case 33:break;case 123:if((t=e.nextCharCode())<48||t>57)return qs(e);break;default:return qs(e)}}function Ns(e){var t=new Os(e),r=Ms(t);return t.pos!==e.length&&t.error("Unexpected input"),1===r.terms.length&&"Group"===r.terms[0].type&&(r=r.terms[0]),r}Ns("[a&&#|<'c'>*||e() f{2} /,(% g#{1,2} h{2,})]!");var Us=Ns,$s=function(){};function Gs(e){return"function"==typeof e?e:$s}var Vs=function(e,t,r){var n=$s,a=$s;if("function"==typeof t?n=t:t&&(n=Gs(t.enter),a=Gs(t.leave)),n===$s&&a===$s)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");!function e(t){switch(n.call(r,t),t.type){case"Group":t.terms.forEach(e);break;case"Multiplier":e(t.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+t.type)}a.call(r,t)}(e)},Hs=new ao,Zs={decorator:function(e){var t=null,r={len:0,node:null},n=[r],a="";return{children:e.children,node:function(r){var n=t;t=r,e.node.call(this,r),t=n},chunk:function(e){a+=e,r.node!==t?n.push({len:e.length,node:t}):r.len+=e.length},result:function(){return Ys(a,n)}}}};function Ys(e,t){var r=[],n=0,a=0,i=t?t[a].node:null;for(Io(e,Hs);!Hs.eof;){if(t)for(;a2&&40===e.charCodeAt(e.length-2)&&41===e.charCodeAt(e.length-1)}function tl(e){return"Keyword"===e.type||"AtKeyword"===e.type||"Function"===e.type||"Type"===e.type&&el(e.name)}function rl(e){if("function"==typeof e)return{type:"Generic",fn:e};switch(e.type){case"Group":var t=function e(t,r,n){switch(t){case" ":for(var a=Ks,i=r.length-1;i>=0;i--)a=Js(l=r[i],a,Qs);return a;case"|":a=Qs;var o=null;for(i=r.length-1;i>=0;i--){if(tl(l=r[i])&&(null===o&&i>0&&tl(r[i-1])&&(a=Js({type:"Enum",map:o=Object.create(null)},Ks,a)),null!==o)){var s=(el(l.name)?l.name.slice(0,-1):l.name).toLowerCase();if(s in o==0){o[s]=l;continue}}o=null,a=Js(l,Ks,a)}return a;case"&&":if(r.length>5)return{type:"MatchOnce",terms:r,all:!0};for(a=Qs,i=r.length-1;i>=0;i--){var l=r[i];c=r.length>1?e(t,r.filter((function(e){return e!==l})),!1):Ks,a=Js(l,c,a)}return a;case"||":if(r.length>5)return{type:"MatchOnce",terms:r,all:!1};for(a=n?Ks:Qs,i=r.length-1;i>=0;i--){var c;l=r[i],c=r.length>1?e(t,r.filter((function(e){return e!==l})),!0):Ks,a=Js(l,c,a)}return a}}(e.combinator,e.terms.map(rl),!1);return e.disallowEmpty&&(t=Js(t,Xs,Qs)),t;case"Multiplier":return function(e){var t=Ks,r=rl(e.term);if(0===e.max)r=Js(r,Xs,Qs),(t=Js(r,null,Qs)).then=Js(Ks,Ks,t),e.comma&&(t.then.else=Js({type:"Comma",syntax:e},t,Qs));else for(var n=e.min||1;n<=e.max;n++)e.comma&&t!==Ks&&(t=Js({type:"Comma",syntax:e},t,Qs)),t=Js(r,Js(Ks,Ks,t),Qs);if(0===e.min)t=Js(Ks,Ks,t);else for(n=0;n=65&&n<=90&&(n|=32),n!==t.charCodeAt(r))return!1}return!0}function fl(e){return null===e||e.type===ul.Comma||e.type===ul.Function||e.type===ul.LeftParenthesis||e.type===ul.LeftSquareBracket||e.type===ul.LeftCurlyBracket||e.type===ul.Delim}function ml(e){return null===e||e.type===ul.RightParenthesis||e.type===ul.RightSquareBracket||e.type===ul.RightCurlyBracket||e.type===ul.Delim}function gl(e,t,r){function n(){do{y++,g=yb&&(b=y)}function c(){v=2===v.type?v.prev:{type:3,syntax:d.syntax,token:v.token,prev:v},d=d.prev}var d=null,u=null,p=null,h=null,f=0,m=null,g=null,y=-1,b=0,v={type:0,syntax:null,token:null,prev:null};for(n();null===m&&++f<15e3;)switch(t.type){case"Match":if(null===u){if(null!==g&&(y!==e.length-1||"\\0"!==g.value&&"\\9"!==g.value)){t=cl;break}m="Match";break}if((t=u.nextState)===dl){if(u.matchStack===v){t=cl;break}t=ll}for(;u.syntaxStack!==d;)c();u=u.prev;break;case"Mismatch":if(null!==h&&!1!==h)(null===p||y>p.tokenIndex)&&(p=h,h=!1);else if(null===p){m="Mismatch";break}t=p.nextState,u=p.thenStack,d=p.syntaxStack,v=p.matchStack,y=p.tokenIndex,g=yy){for(;y":"<'"+t.name+"'>"));if(!1!==h&&null!==g&&"Type"===t.type&&("custom-ident"===t.name&&g.type===ul.Ident||"length"===t.name&&"0"===g.value)){null===h&&(h=i(t,p)),t=cl;break}d={syntax:t.syntax,opts:t.syntax.opts||null!==d&&d.opts||null,prev:d},v={type:2,syntax:t.syntax,token:v.token,prev:v},t=C.match;break;case"Keyword":var E=t.name;if(null!==g){var T=g.value;if(-1!==T.indexOf("\\")&&(T=T.replace(/\\[09].*$/,"")),hl(T,E)){l(),t=ll;break}}t=cl;break;case"AtKeyword":case"Function":if(null!==g&&hl(g.value,t.name)){l(),t=ll;break}t=cl;break;case"Token":if(null!==g&&g.value===t.value){l(),t=ll;break}t=cl;break;case"Comma":null!==g&&g.type===ul.Comma?fl(v.token)?t=cl:(l(),t=ml(g)?cl:ll):t=fl(v.token)||ml(g)?ll:cl;break;case"String":var O="";for(k=y;k=0}function _l(e){return Boolean(e)&&kl(e.offset)&&kl(e.line)&&kl(e.column)}function Cl(e,t){return function(r,n){if(!r||r.constructor!==Object)return n(r,"Type of node should be an Object");for(var a in r){var i=!0;if(!1!==xl.call(r,a)){if("type"===a)r.type!==e&&n(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if("loc"===a){if(null===r.loc)continue;if(r.loc&&r.loc.constructor===Object)if("string"!=typeof r.loc.source)a+=".source";else if(_l(r.loc.start)){if(_l(r.loc.end))continue;a+=".end"}else a+=".start";i=!1}else if(t.hasOwnProperty(a)){var o=0;for(i=!1;!i&&o");else{if(!Array.isArray(c))throw new Error("Wrong value `"+c+"` in `"+e+"."+i+"` structure definition");o.push("List")}}a[i]=o.join(" | ")}return{docs:a,check:Cl(e,n)}}var Tl=co,Ol=uo,Al=ol,Pl=yl,zl=function(e){var t={};if(e.node)for(var r in e.node)if(xl.call(e.node,r)){var n=e.node[r];if(!n.structure)throw new Error("Missed `structure` field in `"+r+"` node type definition");t[r]=El(r,n)}return t},Rl=Al("inherit | initial | unset"),Ll=Al("inherit | initial | unset | <-ms-legacy-expression>");function Bl(e,t,r){var n={};for(var a in e)e[a].syntax&&(n[a]=r?e[a].syntax:so(e[a].syntax,{compact:t}));return n}function Wl(e,t,r){return{matched:e,iterations:r,error:t,getTrace:Sl.getTrace,isType:Sl.isType,isProperty:Sl.isProperty,isKeyword:Sl.isKeyword}}function Il(e,t,r,n){var a,i=function(e,t){return"string"==typeof e?Ys(e,null):t.generate(e,Zs)}(r,e.syntax);return function(e){for(var t=0;t(e[r]=this.createDescriptor(t.descriptors[r],"AtruleDescriptor",r),e),{}):null}},addProperty_:function(e,t){this.properties[e]=this.createDescriptor(t,"Property",e)},addType_:function(e,t){this.types[e]=this.createDescriptor(t,"Type",e),t===Cs["-ms-legacy-expression"]&&(this.valueCommonSyntax=Ll)},matchAtrulePrelude:function(e,t){var r=yo.keyword(e),n=r.vendor?this.getAtrulePrelude(r.name)||this.getAtrulePrelude(r.basename):this.getAtrulePrelude(r.name);return n?Il(this,n,t,!0):r.basename in this.atrules?Wl(null,new Error("At-rule `"+e+"` should not contain a prelude")):Wl(null,new Tl("Unknown at-rule",e))},matchAtruleDescriptor:function(e,t,r){var n=yo.keyword(e),a=yo.keyword(t),i=n.vendor?this.atrules[n.name]||this.atrules[n.basename]:this.atrules[n.name];if(!i)return Wl(null,new Tl("Unknown at-rule",e));if(!i.descriptors)return Wl(null,new Error("At-rule `"+e+"` has no known descriptors"));var o=a.vendor?i.descriptors[a.name]||i.descriptors[a.basename]:i.descriptors[a.name];return o?Il(this,o,r,!0):Wl(null,new Tl("Unknown at-rule descriptor",t))},matchDeclaration:function(e){return"Declaration"!==e.type?Wl(null,new Error("Not a Declaration node")):this.matchProperty(e.property,e.value)},matchProperty:function(e,t){var r=yo.property(e);if(r.custom)return Wl(null,new Error("Lexer matching doesn't applicable for custom properties"));var n=r.vendor?this.getProperty(r.name)||this.getProperty(r.basename):this.getProperty(r.name);return n?Il(this,n,t,!0):Wl(null,new Tl("Unknown property",e))},matchType:function(e,t){var r=this.getType(e);return r?Il(this,r,t,!1):Wl(null,new Tl("Unknown type",e))},match:function(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),Il(this,e,t,!1)):Wl(null,new Tl("Bad syntax"))},findValueFragments:function(e,t,r,n){return wl.matchFragments(this,t,this.matchProperty(e,t),r,n)},findDeclarationValueFragments:function(e,t,r){return wl.matchFragments(this,e.value,this.matchDeclaration(e),t,r)},findAllFragments:function(e,t,r){var n=[];return this.syntax.walk(e,{visit:"Declaration",enter:function(e){n.push.apply(n,this.findDeclarationValueFragments(e,t,r))}.bind(this)}),n},getAtrulePrelude:function(e){return this.atrules.hasOwnProperty(e)?this.atrules[e].prelude:null},getAtruleDescriptor:function(e,t){return this.atrules.hasOwnProperty(e)&&this.atrules.declarators&&this.atrules[e].declarators[t]||null},getProperty:function(e){return this.properties.hasOwnProperty(e)?this.properties[e]:null},getType:function(e){return this.types.hasOwnProperty(e)?this.types[e]:null},validate:function(){function e(n,a,i,o){if(i.hasOwnProperty(a))return i[a];i[a]=!1,null!==o.syntax&&Vs(o.syntax,(function(o){if("Type"===o.type||"Property"===o.type){var s="Type"===o.type?n.types:n.properties,l="Type"===o.type?t:r;s.hasOwnProperty(o.name)&&!e(n,o.name,l,s[o.name])||(i[a]=!0)}}),this)}var t={},r={};for(var n in this.types)e(this,n,t,this.types[n]);for(var n in this.properties)e(this,n,r,this.properties[n]);return t=Object.keys(t).filter((function(e){return t[e]})),r=Object.keys(r).filter((function(e){return r[e]})),t.length||r.length?{types:t,properties:r}:null},dump:function(e,t){return{generic:this.generic,types:Bl(this.types,!t,e),properties:Bl(this.properties,!t,e)}},toString:function(){return JSON.stringify(this.dump())}};var Dl=ql,jl={SyntaxError:Es,parse:Us,generate:so,walk:Vs},Ml=Io.isBOM,Fl=function(){this.lines=null,this.columns=null,this.linesAndColumnsComputed=!1};Fl.prototype={setSource:function(e,t,r,n){this.source=e,this.startOffset=void 0===t?0:t,this.startLine=void 0===r?1:r,this.startColumn=void 0===n?1:n,this.linesAndColumnsComputed=!1},ensureLinesAndColumnsComputed:function(){this.linesAndColumnsComputed||(function(e,t){for(var r=t.length,n=vo(e.lines,r),a=e.startLine,i=vo(e.columns,r),o=e.startColumn,s=t.length>0?Ml(t.charCodeAt(0)):0;s",needPositions:!1,onParseError:Zl,onParseErrorThrow:!1,parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:Vl,createList:function(){return new bi},createSingleNodeList:function(e){return(new bi).appendData(e)},getFirstListNode:function(e){return e&&e.first()},getLastListNode:function(e){return e.last()},parseWithFallback:function(e,t){var r=this.scanner.tokenIndex;try{return e.call(this)}catch(e){if(this.onParseErrorThrow)throw e;var n=t.call(this,r);return this.onParseErrorThrow=!0,this.onParseError(e,n),this.onParseErrorThrow=!1,n}},lookupNonWSType:function(e){do{var t=this.scanner.lookupType(e++);if(t!==Ql)return t}while(0!==t);return 0},eat:function(e){if(this.scanner.tokenType!==e){var t=this.scanner.tokenStart,r=Kl[e]+" is expected";switch(e){case Xl:this.scanner.tokenType===Jl||this.scanner.tokenType===ec?(t=this.scanner.tokenEnd-1,r="Identifier is expected but function found"):r="Identifier is expected";break;case tc:this.scanner.isDelim(35)&&(this.scanner.next(),t++,r="Name is expected");break;case rc:this.scanner.tokenType===nc&&(t=this.scanner.tokenEnd,r="Percent sign is expected");break;default:this.scanner.source.charCodeAt(this.scanner.tokenStart)===e&&(t+=1)}this.error(r,t)}this.scanner.next()},consume:function(e){var t=this.scanner.getTokenValue();return this.eat(e),t},consumeFunctionName:function(){var e=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);return this.eat(Jl),e},getLocation:function(e,t){return this.needPositions?this.locationMap.getLocationRange(e,t,this.filename):null},getLocationFromList:function(e){if(this.needPositions){var t=this.getFirstListNode(e),r=this.getLastListNode(e);return this.locationMap.getLocationRange(null!==t?t.loc.start.offset-this.locationMap.startOffset:this.scanner.tokenStart,null!==r?r.loc.end.offset-this.locationMap.startOffset:this.scanner.tokenStart,this.filename)}return null},error:function(e,t){var r=void 0!==t&&t",t.needPositions=Boolean(r.positions),t.onParseError="function"==typeof r.onParseError?r.onParseError:Zl,t.onParseErrorThrow=!1,t.parseAtrulePrelude=!("parseAtrulePrelude"in r)||Boolean(r.parseAtrulePrelude),t.parseRulePrelude=!("parseRulePrelude"in r)||Boolean(r.parseRulePrelude),t.parseValue=!("parseValue"in r)||Boolean(r.parseValue),t.parseCustomProperty="parseCustomProperty"in r&&Boolean(r.parseCustomProperty),!t.context.hasOwnProperty(a))throw new Error("Unknown context `"+a+"`");return n=t.context[a].call(t,r),t.scanner.eof||t.error(),n}},oc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),sc=function(e){if(0<=e&&e>>=5)>0&&(t|=32),r+=sc(t)}while(n>0);return r},cc=d((function(e,t){t.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function a(e){var t=e.match(r);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var r=e,n=a(e);if(n){if(!n.path)return e;r=n.path}for(var o,s=t.isAbsolute(r),l=r.split(/\/+/),c=0,d=l.length-1;d>=0;d--)"."===(o=l[d])?l.splice(d,1):".."===o?c++:c>0&&(""===o?(l.splice(d+1,c),c=0):(l.splice(d,2),c--));return""===(r=l.join("/"))&&(r=s?"/":"."),n?(n.path=r,i(n)):r}function s(e,t){""===e&&(e="."),""===t&&(t=".");var r=a(t),s=a(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),i(r);if(r||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,i(s);var l="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=l,i(s)):l}t.urlParse=a,t.urlGenerate=i,t.normalize=o,t.join=s,t.isAbsolute=function(e){return"/"===e.charAt(0)||r.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var l=!("__proto__"in Object.create(null));function c(e){return e}function d(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function u(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=l?c:function(e){return d(e)?"$"+e:e},t.fromSetString=l?c:function(e){return d(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,r){var n=u(e.source,t.source);return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||r||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:u(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=u(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:u(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!=(r=e.generatedColumn-t.generatedColumn)||0!==(r=u(e.source,t.source))||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)?r:u(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var n=a(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var l=n.path.lastIndexOf("/");l>=0&&(n.path=n.path.substring(0,l+1))}t=s(i(n),t)}return o(t)}})),dc=(cc.getArg,cc.urlParse,cc.urlGenerate,cc.normalize,cc.join,cc.isAbsolute,cc.relative,cc.toSetString,cc.fromSetString,cc.compareByOriginalPositions,cc.compareByGeneratedPositionsDeflated,cc.compareByGeneratedPositionsInflated,cc.parseSourceMapInput,cc.computeSourceURL,Object.prototype.hasOwnProperty),uc="undefined"!=typeof Map;function pc(){this._array=[],this._set=uc?new Map:Object.create(null)}pc.fromArray=function(e,t){for(var r=new pc,n=0,a=e.length;n=0)return t}else{var r=cc.toSetString(e);if(dc.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},pc.prototype.at=function(e){if(e>=0&&en||a==n&&o>=i||cc.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},fc.prototype.toArray=function(){return this._sorted||(this._array.sort(cc.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};var mc=hc.ArraySet,gc={MappingList:fc}.MappingList;function yc(e){e||(e={}),this._file=cc.getArg(e,"file",null),this._sourceRoot=cc.getArg(e,"sourceRoot",null),this._skipValidation=cc.getArg(e,"skipValidation",!1),this._sources=new mc,this._names=new mc,this._mappings=new gc,this._sourcesContents=null}yc.prototype._version=3,yc.fromSourceMap=function(e){var t=e.sourceRoot,r=new yc({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=cc.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){var a=n;null!==t&&(a=cc.relative(t,n)),r._sources.has(a)||r._sources.add(a);var i=e.sourceContentFor(n);null!=i&&r.setSourceContent(n,i)})),r},yc.prototype.addMapping=function(e){var t=cc.getArg(e,"generated"),r=cc.getArg(e,"original",null),n=cc.getArg(e,"source",null),a=cc.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=a&&(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:a})},yc.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=cc.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[cc.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[cc.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},yc.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var a=this._sourceRoot;null!=a&&(n=cc.relative(a,n));var i=new mc,o=new mc;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var s=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=s.source&&(t.source=s.source,null!=r&&(t.source=cc.join(r,t.source)),null!=a&&(t.source=cc.relative(a,t.source)),t.originalLine=s.line,t.originalColumn=s.column,null!=s.name&&(t.name=s.name))}var l=t.source;null==l||i.has(l)||i.add(l);var c=t.name;null==c||o.has(c)||o.add(c)}),this),this._sources=i,this._names=o,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=cc.join(r,t)),null!=a&&(t=cc.relative(a,t)),this.setSourceContent(t,n))}),this)},yc.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},yc.prototype._serializeMappings=function(){for(var e,t,r,n,a=0,i=1,o=0,s=0,l=0,c=0,d="",u=this._mappings.toArray(),p=0,h=u.length;p0){if(!cc.compareByGeneratedPositionsInflated(t,u[p-1]))continue;e+=","}e+=lc(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=lc(n-c),c=n,e+=lc(t.originalLine-1-s),s=t.originalLine-1,e+=lc(t.originalColumn-o),o=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=lc(r-l),l=r)),d+=e}return d},yc.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=cc.relative(t,e));var r=cc.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},yc.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},yc.prototype.toString=function(){return JSON.stringify(this.toJSON())};var bc={SourceMapGenerator:yc}.SourceMapGenerator,vc={Atrule:!0,Selector:!0,Declaration:!0},Sc=Object.prototype.hasOwnProperty;function wc(e,t){var r=e.children,n=null;"function"!=typeof t?r.forEach(this.node,this):r.forEach((function(e){null!==n&&t.call(this,n),this.node(e),n=e}),this)}var xc=function(e){function t(e){if(!Sc.call(r,e.type))throw new Error("Unknown node type: "+e.type);r[e.type].call(this,e)}var r={};if(e.node)for(var n in e.node)r[n]=e.node[n].generate;return function(e,r){var n="",a={children:wc,node:t,chunk:function(e){n+=e},result:function(){return n}};return r&&("function"==typeof r.decorator&&(a=r.decorator(a)),r.sourceMap&&(a=function(e){var t=new bc,r=1,n=0,a={line:1,column:0},i={line:0,column:0},o=!1,s={line:1,column:0},l={generated:s},c=e.node;e.node=function(e){if(e.loc&&e.loc.start&&vc.hasOwnProperty(e.type)){var d=e.loc.start.line,u=e.loc.start.column-1;i.line===d&&i.column===u||(i.line=d,i.column=u,a.line=r,a.column=n,o&&(o=!1,a.line===s.line&&a.column===s.column||t.addMapping(l)),o=!0,t.addMapping({source:e.loc.source,original:i,generated:a}))}c.call(this,e),o&&vc.hasOwnProperty(e.type)&&(s.line=r,s.column=n)};var d=e.chunk;e.chunk=function(e){for(var t=0;t";',groups:["CSS Charsets"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{syntax:"@counter-style {\n [ system: ; ] ||\n [ symbols: ; ] ||\n [ additive-symbols: ; ] ||\n [ negative: ; ] ||\n [ prefix: ; ] ||\n [ suffix: ; ] ||\n [ range: ; ] ||\n [ pad: ; ] ||\n [ speak-as: ; ] ||\n [ fallback: ; ]\n}",interfaces:["CSSCounterStyleRule"],groups:["CSS Counter Styles"],descriptors:{"additive-symbols":{syntax:"[ && ]#",media:"all",initial:"N/A",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},fallback:{syntax:"",media:"all",initial:"decimal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},negative:{syntax:" ?",media:"all",initial:'"-" hyphen-minus',percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},pad:{syntax:" && ",media:"all",initial:'0 ""',percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},prefix:{syntax:"",media:"all",initial:'""',percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},range:{syntax:"[ [ | infinite ]{2} ]# | auto",media:"all",initial:"auto",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"speak-as":{syntax:"auto | bullets | numbers | words | spell-out | ",media:"all",initial:"auto",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},suffix:{syntax:"",media:"all",initial:'". "',percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},symbols:{syntax:"+",media:"all",initial:"N/A",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},system:{syntax:"cyclic | numeric | alphabetic | symbolic | additive | [ fixed ? ] | [ extends ]",media:"all",initial:"symbolic",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@counter-style"},"@document":{syntax:"@document [ | url-prefix() | domain() | media-document() | regexp() ]# {\n \n}",interfaces:["CSSGroupingRule","CSSConditionRule"],groups:["CSS Conditional Rules"],status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@document"},"@font-face":{syntax:"@font-face {\n [ font-family: ; ] ||\n [ src: ; ] ||\n [ unicode-range: ; ] ||\n [ font-variant: ; ] ||\n [ font-feature-settings: ; ] ||\n [ font-variation-settings: ; ] ||\n [ font-stretch: ; ] ||\n [ font-weight: ; ] ||\n [ font-style: ; ]\n}",interfaces:["CSSFontFaceRule"],groups:["CSS Fonts"],descriptors:{"font-display":{syntax:"[ auto | block | swap | fallback | optional ]",media:"visual",percentages:"no",initial:"auto",computed:"asSpecified",order:"uniqueOrder",status:"experimental"},"font-family":{syntax:"",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-feature-settings":{syntax:"normal | #",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"font-variation-settings":{syntax:"normal | [ ]#",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"font-stretch":{syntax:"{1,2}",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-style":{syntax:"normal | italic | oblique {0,2}",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-weight":{syntax:"{1,2}",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-variant":{syntax:"normal | none | [ || || || || stylistic() || historical-forms || styleset(#) || character-variant(#) || swash() || ornaments() || annotation() || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || || || || ordinal || slashed-zero || || || ruby ]",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},src:{syntax:"[ [ format( # ) ]? | local( ) ]#",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"unicode-range":{syntax:"#",media:"all",initial:"U+0-10FFFF",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@font-face"},"@font-feature-values":{syntax:"@font-feature-values # {\n \n}",interfaces:["CSSFontFeatureValuesRule"],groups:["CSS Fonts"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values"},"@import":{syntax:"@import [ | ] [ ]?;",groups:["Media Queries"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@import"},"@keyframes":{syntax:"@keyframes {\n \n}",interfaces:["CSSKeyframeRule","CSSKeyframesRule"],groups:["CSS Animations"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@keyframes"},"@media":{syntax:"@media {\n \n}",interfaces:["CSSGroupingRule","CSSConditionRule","CSSMediaRule","CSSCustomMediaRule"],groups:["CSS Conditional Rules","Media Queries"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@media"},"@namespace":{syntax:"@namespace ? [ | ];",groups:["CSS Namespaces"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@namespace"},"@page":{syntax:"@page {\n \n}",interfaces:["CSSPageRule"],groups:["CSS Pages"],descriptors:{bleed:{syntax:"auto | ",media:["visual","paged"],initial:"auto",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"experimental"},marks:{syntax:"none | [ crop || cross ]",media:["visual","paged"],initial:"none",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"experimental"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@page"},"@supports":{syntax:"@supports {\n \n}",interfaces:["CSSGroupingRule","CSSConditionRule","CSSSupportsRule"],groups:["CSS Conditional Rules"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@supports"},"@viewport":{syntax:"@viewport {\n \n}",interfaces:["CSSViewportRule"],groups:["CSS Device Adaptation"],descriptors:{height:{syntax:"{1,2}",media:["visual","continuous"],initial:["min-height","max-height"],percentages:["min-height","max-height"],computed:["min-height","max-height"],order:"orderOfAppearance",status:"standard"},"max-height":{syntax:"",media:["visual","continuous"],initial:"auto",percentages:"referToHeightOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"max-width":{syntax:"",media:["visual","continuous"],initial:"auto",percentages:"referToWidthOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"max-zoom":{syntax:"auto | | ",media:["visual","continuous"],initial:"auto",percentages:"the zoom factor itself",computed:"autoNonNegativeOrPercentage",order:"uniqueOrder",status:"standard"},"min-height":{syntax:"",media:["visual","continuous"],initial:"auto",percentages:"referToHeightOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"min-width":{syntax:"",media:["visual","continuous"],initial:"auto",percentages:"referToWidthOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"min-zoom":{syntax:"auto | | ",media:["visual","continuous"],initial:"auto",percentages:"the zoom factor itself",computed:"autoNonNegativeOrPercentage",order:"uniqueOrder",status:"standard"},orientation:{syntax:"auto | portrait | landscape",media:["visual","continuous"],initial:"auto",percentages:"referToSizeOfBoundingBox",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"user-zoom":{syntax:"zoom | fixed",media:["visual","continuous"],initial:"zoom",percentages:"referToSizeOfBoundingBox",computed:"asSpecified",order:"uniqueOrder",status:"standard"},width:{syntax:"{1,2}",media:["visual","continuous"],initial:["min-width","max-width"],percentages:["min-width","max-width"],computed:["min-width","max-width"],order:"orderOfAppearance",status:"standard"},zoom:{syntax:"auto | | ",media:["visual","continuous"],initial:"auto",percentages:"the zoom factor itself",computed:"autoNonNegativeOrPercentage",order:"uniqueOrder",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@viewport"}}}),Fc={syntax:"initial | inherit | unset | revert",media:"noPracticalMedia",inherited:!1,animationType:"eachOfShorthandPropertiesExceptUnicodeBiDiAndDirection",percentages:"no",groups:["CSS Miscellaneous"],initial:"noPracticalInitialValue",appliesto:"allElements",computed:"asSpecifiedAppliesToEachProperty",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/all"},Nc={syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:["animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state"],appliesto:"allElementsAndPseudos",computed:["animation-name","animation-duration","animation-timing-function","animation-delay","animation-direction","animation-iteration-count","animation-fill-mode","animation-play-state"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation"},Uc={syntax:"none | auto | button | textfield | ",media:"all",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-appearance"},$c={syntax:" | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards",media:"aural",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Speech"],initial:"center",appliesto:"allElements",computed:"normalizedAngle",order:"orderOfAppearance",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/azimuth"},Gc={syntax:"[ , ]* ",media:"visual",inherited:!1,animationType:["background-color","background-image","background-clip","background-position","background-size","background-repeat","background-attachment"],percentages:["background-position","background-size"],groups:["CSS Backgrounds and Borders"],initial:["background-image","background-position","background-size","background-repeat","background-origin","background-clip","background-attachment","background-color"],appliesto:"allElements",computed:["background-image","background-position","background-size","background-repeat","background-origin","background-clip","background-attachment","background-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background"},Vc={syntax:" || || ",media:"visual",inherited:!1,animationType:["border-color","border-style","border-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-width","border-style","border-color"],appliesto:"allElements",computed:["border-width","border-style","border-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border"},Hc={syntax:" | | auto",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToContainingBlockHeight",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/bottom"},Zc={syntax:"none | left | right | both | inline-start | inline-end",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Positioning"],initial:"none",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/clear"},Yc={syntax:" | auto",media:"visual",inherited:!1,animationType:"rectangle",percentages:"no",groups:["CSS Masking"],initial:"auto",appliesto:"absolutelyPositionedElements",computed:"autoOrRectangle",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/clip"},Kc={syntax:"",media:"visual",inherited:!0,animationType:"color",percentages:"no",groups:["CSS Color"],initial:"variesFromBrowserToBrowser",appliesto:"allElements",computed:"translucentValuesRGBAOtherwiseRGB",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/color"},Qc={syntax:"<'column-width'> || <'column-count'>",media:"visual",inherited:!1,animationType:["column-width","column-count"],percentages:"no",groups:["CSS Columns"],initial:["column-width","column-count"],appliesto:"blockContainersExceptTableWrappers",computed:["column-width","column-count"],order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/columns"},Xc={syntax:"none | strict | content | [ size || layout || style || paint ]",media:"all",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Containment"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/contain"},Jc={syntax:"normal | none | [ | ] [/ ]?",media:"all",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Generated Content"],initial:"normal",appliesto:"beforeAndAfterPseudos",computed:"normalOnElementsForPseudosNoneAbsoluteURIStringOrAsSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/content"},ed={syntax:"[ [ [ ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]",media:["visual","interactive"],inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElements",computed:"asSpecifiedURLsAbsolute",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/cursor"},td={syntax:"ltr | rtl",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Writing Modes"],initial:"ltr",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/direction"},rd={syntax:"[ || ] | | | | ",media:"all",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Display"],initial:"inline",appliesto:"allElements",computed:"asSpecifiedExceptPositionedFloatingAndRootElementsKeywordMaybeDifferent",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/display"},nd={syntax:"none | ",media:"visual",inherited:!1,animationType:"filterList",percentages:"no",groups:["Filter Effects"],initial:"none",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/filter"},ad={syntax:"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]",media:"visual",inherited:!1,animationType:["flex-grow","flex-shrink","flex-basis"],percentages:"no",groups:["CSS Flexible Box Layout"],initial:["flex-grow","flex-shrink","flex-basis"],appliesto:"flexItemsAndInFlowPseudos",computed:["flex-grow","flex-shrink","flex-basis"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex"},id={syntax:"left | right | none | inline-start | inline-end",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Positioning"],initial:"none",appliesto:"allElementsNoEffectIfDisplayNone",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/float"},od={syntax:"[ [ <'font-style'> || || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar",media:"visual",inherited:!0,animationType:["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],percentages:["font-size","line-height"],groups:["CSS Fonts"],initial:["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],appliesto:"allElements",computed:["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font"},sd={syntax:"<'row-gap'> <'column-gap'>?",media:"visual",inherited:!1,animationType:["row-gap","column-gap"],percentages:"no",groups:["CSS Box Alignment"],initial:["row-gap","column-gap"],appliesto:"gridContainers",computed:["row-gap","column-gap"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/gap"},ld={syntax:"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>",media:"visual",inherited:!1,animationType:"discrete",percentages:["grid-template-rows","grid-template-columns","grid-auto-rows","grid-auto-columns"],groups:["CSS Grid Layout"],initial:["grid-template-rows","grid-template-columns","grid-template-areas","grid-auto-rows","grid-auto-columns","grid-auto-flow","grid-column-gap","grid-row-gap","column-gap","row-gap"],appliesto:"gridContainers",computed:["grid-template-rows","grid-template-columns","grid-template-areas","grid-auto-rows","grid-auto-columns","grid-auto-flow","grid-column-gap","grid-row-gap","column-gap","row-gap"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid"},cd={syntax:"[ | ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto",media:"visual",inherited:!1,animationType:"lpc",percentages:"regardingHeightOfGeneratedBoxContainingBlockPercentagesRelativeToContainingBlock",groups:["CSS Box Model"],initial:"auto",appliesto:"allElementsButNonReplacedAndTableColumns",computed:"percentageAutoOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/height"},dd={syntax:"none | manual | auto",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"manual",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/hyphens"},ud={syntax:"<'top'>{1,4}",media:"visual",inherited:!1,animationType:"lpc",percentages:"logicalHeightOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset"},pd={syntax:"auto | isolate",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Compositing and Blending"],initial:"auto",appliesto:"allElementsSVGContainerGraphicsAndGraphicsReferencingElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/isolation"},hd={syntax:" | | auto",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/left"},fd={syntax:"[ | | auto ]{1,4}",media:"visual",inherited:!1,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:["margin-bottom","margin-left","margin-right","margin-top"],appliesto:"allElementsExceptTableDisplayTypes",computed:["margin-bottom","margin-left","margin-right","margin-top"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin"},md={syntax:"#",media:"visual",inherited:!1,animationType:["mask-image","mask-mode","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask-composite"],percentages:["mask-position"],groups:["CSS Masking"],initial:["mask-image","mask-mode","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask-composite"],appliesto:"allElementsSVGContainerElements",computed:["mask-image","mask-mode","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask-composite"],order:"perGrammar",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask"},gd={syntax:"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",media:"visual",inherited:!1,animationType:["offset-position","offset-path","offset-distance","offset-anchor","offset-rotate"],percentages:["offset-position","offset-distance","offset-anchor"],groups:["CSS Motion Path"],initial:["offset-position","offset-path","offset-distance","offset-anchor","offset-rotate"],appliesto:"transformableElements",computed:["offset-position","offset-path","offset-distance","offset-anchor","offset-rotate"],order:"perGrammar",stacking:!0,status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/offset"},yd={syntax:"",media:"visual",inherited:!1,animationType:"number",percentages:"no",groups:["CSS Color"],initial:"1.0",appliesto:"allElements",computed:"specifiedValueClipped0To1",order:"uniqueOrder",alsoAppliesTo:["::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/opacity"},bd={syntax:"",media:"visual",inherited:!1,animationType:"integer",percentages:"no",groups:["CSS Flexible Box Layout"],initial:"0",appliesto:"flexItemsAndAbsolutelyPositionedFlexContainerChildren",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/order"},vd={syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"2",appliesto:"blockContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/orphans"},Sd={syntax:"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]",media:["visual","interactive"],inherited:!1,animationType:["outline-color","outline-width","outline-style"],percentages:"no",groups:["CSS Basic User Interface"],initial:["outline-color","outline-style","outline-width"],appliesto:"allElements",computed:["outline-color","outline-width","outline-style"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/outline"},wd={syntax:"[ visible | hidden | clip | scroll | auto ]{1,2}",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"visible",appliesto:"blockContainersFlexContainersGridContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overflow"},xd={syntax:"[ | ]{1,4}",media:"visual",inherited:!1,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:["padding-bottom","padding-left","padding-right","padding-top"],appliesto:"allElementsExceptInternalTableDisplayTypes",computed:["padding-bottom","padding-left","padding-right","padding-top"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding"},kd={syntax:"none | ",media:"visual",inherited:!1,animationType:"length",percentages:"no",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"absoluteLengthOrNone",order:"uniqueOrder",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/perspective"},_d={syntax:"static | relative | absolute | sticky | fixed",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Positioning"],initial:"static",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/position"},Cd={syntax:"none | auto | [ ]+",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Generated Content"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/quotes"},Ed={syntax:"none | both | horizontal | vertical | block | inline",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"none",appliesto:"elementsWithOverflowNotVisibleAndReplacedElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/resize"},Td={syntax:" | | auto",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/right"},Od={syntax:"none | | [ x | y | z | {3} ] && ",media:"visual",inherited:!1,animationType:"transform",percentages:"no",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/rotate"},Ad={syntax:"none | {1,3}",media:"visual",inherited:!1,animationType:"transform",percentages:"no",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scale"},Pd={syntax:" | | auto",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToContainingBlockHeight",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/top"},zd={syntax:"none | ",media:"visual",inherited:!1,animationType:"transform",percentages:"referToSizeOfBoundingBox",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transform"},Rd={syntax:"#",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Transitions"],initial:["transition-delay","transition-duration","transition-property","transition-timing-function"],appliesto:"allElementsAndPseudos",computed:["transition-delay","transition-duration","transition-property","transition-timing-function"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transition"},Ld={syntax:"none | [ ? ]?",media:"visual",inherited:!1,animationType:"transform",percentages:"referToSizeOfBoundingBox",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"perGrammar",stacking:!0,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/translate"},Bd={syntax:"visible | hidden | collapse",media:"visual",inherited:!0,animationType:"visibility",percentages:"no",groups:["CSS Box Model"],initial:"visible",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/visibility"},Wd={syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"2",appliesto:"blockContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/widows"},Id={syntax:"[ | ] && [ border-box | content-box ]? | available | min-content | max-content | fit-content | auto",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"auto",appliesto:"allElementsButNonReplacedAndTableRows",computed:"percentageAutoOrAbsoluteLength",order:"lengthOrPercentageBeforeKeywordIfBothPresent",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/width"},qd={syntax:"normal | reset | | ",media:"visual",inherited:!1,animationType:"integer",percentages:"no",groups:["Microsoft Extensions"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/zoom"},Dd={"--*":{syntax:"",media:"all",inherited:!0,animationType:"discrete",percentages:"no",groups:["CSS Variables"],initial:"seeProse",appliesto:"allElements",computed:"asSpecifiedWithVarsSubstituted",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/--*"},"-ms-accelerator":{syntax:"false | true",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"false",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-accelerator"},"-ms-block-progression":{syntax:"tb | rl | bt | lr",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"tb",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-block-progression"},"-ms-content-zoom-chaining":{syntax:"none | chained",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-chaining"},"-ms-content-zooming":{syntax:"none | zoom",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"zoomForTheTopLevelNoneForTheRest",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zooming"},"-ms-content-zoom-limit":{syntax:"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>",media:"interactive",inherited:!1,animationType:"discrete",percentages:["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],groups:["Microsoft Extensions"],initial:["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit"},"-ms-content-zoom-limit-max":{syntax:"",media:"interactive",inherited:!1,animationType:"discrete",percentages:"maxZoomFactor",groups:["Microsoft Extensions"],initial:"400%",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit-max"},"-ms-content-zoom-limit-min":{syntax:"",media:"interactive",inherited:!1,animationType:"discrete",percentages:"minZoomFactor",groups:["Microsoft Extensions"],initial:"100%",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit-min"},"-ms-content-zoom-snap":{syntax:"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-content-zoom-snap-type","-ms-content-zoom-snap-points"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-content-zoom-snap-type","-ms-content-zoom-snap-points"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap"},"-ms-content-zoom-snap-points":{syntax:"snapInterval( , ) | snapList( # )",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"snapInterval(0%, 100%)",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap-points"},"-ms-content-zoom-snap-type":{syntax:"none | proximity | mandatory",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap-type"},"-ms-filter":{syntax:"",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:'""',appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-filter"},"-ms-flow-from":{syntax:"[ none | ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-flow-from"},"-ms-flow-into":{syntax:"[ none | ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"iframeElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-flow-into"},"-ms-high-contrast-adjust":{syntax:"auto | none",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-high-contrast-adjust"},"-ms-hyphenate-limit-chars":{syntax:"auto | {1,3}",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-chars"},"-ms-hyphenate-limit-lines":{syntax:"no-limit | ",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"no-limit",appliesto:"blockContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-lines"},"-ms-hyphenate-limit-zone":{syntax:" | ",media:"visual",inherited:!0,animationType:"discrete",percentages:"referToLineBoxWidth",groups:["Microsoft Extensions"],initial:"0",appliesto:"blockContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-zone"},"-ms-ime-align":{syntax:"auto | after",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-ime-align"},"-ms-overflow-style":{syntax:"auto | none | scrollbar | -ms-autohiding-scrollbar",media:"interactive",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-overflow-style"},"-ms-scrollbar-3dlight-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-3dlight-color"},"-ms-scrollbar-arrow-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ButtonText",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-arrow-color"},"-ms-scrollbar-base-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-base-color"},"-ms-scrollbar-darkshadow-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDDarkShadow",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-darkshadow-color"},"-ms-scrollbar-face-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDFace",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-face-color"},"-ms-scrollbar-highlight-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDHighlight",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-highlight-color"},"-ms-scrollbar-shadow-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDDarkShadow",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-shadow-color"},"-ms-scrollbar-track-color":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"Scrollbar",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-track-color"},"-ms-scroll-chaining":{syntax:"chained | none",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"chained",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-chaining"},"-ms-scroll-limit":{syntax:"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-scroll-limit-x-min","-ms-scroll-limit-y-min","-ms-scroll-limit-x-max","-ms-scroll-limit-y-max"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-scroll-limit-x-min","-ms-scroll-limit-y-min","-ms-scroll-limit-x-max","-ms-scroll-limit-y-max"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit"},"-ms-scroll-limit-x-max":{syntax:"auto | ",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-x-max"},"-ms-scroll-limit-x-min":{syntax:"",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"0",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-x-min"},"-ms-scroll-limit-y-max":{syntax:"auto | ",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-y-max"},"-ms-scroll-limit-y-min":{syntax:"",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"0",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-y-min"},"-ms-scroll-rails":{syntax:"none | railed",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"railed",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-rails"},"-ms-scroll-snap-points-x":{syntax:"snapInterval( , ) | snapList( # )",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"snapInterval(0px, 100%)",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-points-x"},"-ms-scroll-snap-points-y":{syntax:"snapInterval( , ) | snapList( # )",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"snapInterval(0px, 100%)",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-points-y"},"-ms-scroll-snap-type":{syntax:"none | proximity | mandatory",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-type"},"-ms-scroll-snap-x":{syntax:"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-scroll-snap-type","-ms-scroll-snap-points-x"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-scroll-snap-type","-ms-scroll-snap-points-x"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-x"},"-ms-scroll-snap-y":{syntax:"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-scroll-snap-type","-ms-scroll-snap-points-y"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-scroll-snap-type","-ms-scroll-snap-points-y"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-y"},"-ms-scroll-translation":{syntax:"none | vertical-to-horizontal",media:"interactive",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-translation"},"-ms-text-autospace":{syntax:"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-text-autospace"},"-ms-touch-select":{syntax:"grippers | none",media:"interactive",inherited:!0,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"grippers",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-touch-select"},"-ms-user-select":{syntax:"none | element | text",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"text",appliesto:"nonReplacedElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-user-select"},"-ms-wrap-flow":{syntax:"auto | both | start | end | maximum | clear",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-flow"},"-ms-wrap-margin":{syntax:"",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"0",appliesto:"exclusionElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-margin"},"-ms-wrap-through":{syntax:"wrap | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"wrap",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-through"},"-moz-appearance":{syntax:"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"noneButOverriddenInUserAgentCSS",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-appearance"},"-moz-binding":{syntax:" | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElementsExceptGeneratedContentOrPseudoElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-binding"},"-moz-border-bottom-colors":{syntax:"+ | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors"},"-moz-border-left-colors":{syntax:"+ | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors"},"-moz-border-right-colors":{syntax:"+ | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors"},"-moz-border-top-colors":{syntax:"+ | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors"},"-moz-context-properties":{syntax:"none | [ fill | fill-opacity | stroke | stroke-opacity ]#",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElementsThatCanReferenceImages",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties"},"-moz-float-edge":{syntax:"border-box | content-box | margin-box | padding-box",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"content-box",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge"},"-moz-force-broken-image-icon":{syntax:"",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"0",appliesto:"images",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon"},"-moz-image-region":{syntax:" | auto",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"auto",appliesto:"xulImageElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region"},"-moz-orient":{syntax:"inline | block | horizontal | vertical",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"inline",appliesto:"anyElementEffectOnProgressAndMeter",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-orient"},"-moz-outline-radius":{syntax:"{1,4} [ / {1,4} ]?",media:"visual",inherited:!1,animationType:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],percentages:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],groups:["Mozilla Extensions"],initial:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],appliesto:"allElements",computed:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius"},"-moz-outline-radius-bottomleft":{syntax:"",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomleft"},"-moz-outline-radius-bottomright":{syntax:"",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomright"},"-moz-outline-radius-topleft":{syntax:"",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topleft"},"-moz-outline-radius-topright":{syntax:"",media:"visual",inherited:!1,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topright"},"-moz-stack-sizing":{syntax:"ignore | stretch-to-fit",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"stretch-to-fit",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-stack-sizing"},"-moz-text-blink":{syntax:"none | blink",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink"},"-moz-user-focus":{syntax:"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none",media:"interactive",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus"},"-moz-user-input":{syntax:"auto | none | enabled | disabled",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input"},"-moz-user-modify":{syntax:"read-only | read-write | write-only",media:"interactive",inherited:!0,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"read-only",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-modify"},"-moz-window-dragging":{syntax:"drag | no-drag",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"drag",appliesto:"allElementsCreatingNativeWindows",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-window-dragging"},"-moz-window-shadow":{syntax:"default | menu | tooltip | sheet | none",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"default",appliesto:"allElementsCreatingNativeWindows",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow"},"-webkit-appearance":{syntax:"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"noneButOverriddenInUserAgentCSS",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-appearance"},"-webkit-border-before":{syntax:"<'border-width'> || <'border-style'> || <'color'>",media:"visual",inherited:!0,animationType:"discrete",percentages:["-webkit-border-before-width"],groups:["WebKit Extensions"],initial:["border-width","border-style","color"],appliesto:"allElements",computed:["border-width","border-style","color"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before"},"-webkit-border-before-color":{syntax:"<'color'>",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"nonstandard"},"-webkit-border-before-style":{syntax:"<'border-style'>",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard"},"-webkit-border-before-width":{syntax:"<'border-width'>",media:"visual",inherited:!0,animationType:"discrete",percentages:"logicalWidthOfContainingBlock",groups:["WebKit Extensions"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"nonstandard"},"-webkit-box-reflect":{syntax:"[ above | below | right | left ]? ? ?",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect"},"-webkit-line-clamp":{syntax:"none | ",media:"visual",inherited:!1,animationType:"byComputedValueType",percentages:"no",groups:["WebKit Extensions","CSS Overflow"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp"},"-webkit-mask":{syntax:"[ || [ / ]? || || [ | border | padding | content | text ] || [ | border | padding | content ] ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:["-webkit-mask-image","-webkit-mask-repeat","-webkit-mask-attachment","-webkit-mask-position","-webkit-mask-origin","-webkit-mask-clip"],appliesto:"allElements",computed:["-webkit-mask-image","-webkit-mask-repeat","-webkit-mask-attachment","-webkit-mask-position","-webkit-mask-origin","-webkit-mask-clip"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask"},"-webkit-mask-attachment":{syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"scroll",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment"},"-webkit-mask-clip":{syntax:"[ | border | padding | content | text ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"border",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-clip"},"-webkit-mask-composite":{syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"source-over",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite"},"-webkit-mask-image":{syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"none",appliesto:"allElements",computed:"absoluteURIOrNone",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-image"},"-webkit-mask-origin":{syntax:"[ | border | padding | content ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"padding",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-origin"},"-webkit-mask-position":{syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"referToSizeOfElement",groups:["WebKit Extensions"],initial:"0% 0%",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-position"},"-webkit-mask-position-x":{syntax:"[ | left | center | right ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"referToSizeOfElement",groups:["WebKit Extensions"],initial:"0%",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x"},"-webkit-mask-position-y":{syntax:"[ | top | center | bottom ]#",media:"visual",inherited:!1,animationType:"discrete",percentages:"referToSizeOfElement",groups:["WebKit Extensions"],initial:"0%",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y"},"-webkit-mask-repeat":{syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"repeat",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-repeat"},"-webkit-mask-repeat-x":{syntax:"repeat | no-repeat | space | round",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"repeat",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x"},"-webkit-mask-repeat-y":{syntax:"repeat | no-repeat | space | round",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"repeat",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y"},"-webkit-mask-size":{syntax:"#",media:"visual",inherited:!1,animationType:"discrete",percentages:"relativeToBackgroundPositioningArea",groups:["WebKit Extensions"],initial:"auto auto",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-size"},"-webkit-overflow-scrolling":{syntax:"auto | touch",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"auto",appliesto:"scrollingBoxes",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling"},"-webkit-tap-highlight-color":{syntax:"",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"black",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-tap-highlight-color"},"-webkit-text-fill-color":{syntax:"",media:"visual",inherited:!0,animationType:"color",percentages:"no",groups:["WebKit Extensions"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color"},"-webkit-text-stroke":{syntax:" || ",media:"visual",inherited:!0,animationType:["-webkit-text-stroke-width","-webkit-text-stroke-color"],percentages:"no",groups:["WebKit Extensions"],initial:["-webkit-text-stroke-width","-webkit-text-stroke-color"],appliesto:"allElements",computed:["-webkit-text-stroke-width","-webkit-text-stroke-color"],order:"canonicalOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke"},"-webkit-text-stroke-color":{syntax:"",media:"visual",inherited:!0,animationType:"color",percentages:"no",groups:["WebKit Extensions"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color"},"-webkit-text-stroke-width":{syntax:"",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"0",appliesto:"allElements",computed:"absoluteLength",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width"},"-webkit-touch-callout":{syntax:"default | none",media:"visual",inherited:!0,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"default",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout"},"-webkit-user-modify":{syntax:"read-only | read-write | read-write-plaintext-only",media:"interactive",inherited:!0,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"read-only",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard"},"align-content":{syntax:"normal | | | ? ",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"normal",appliesto:"multilineFlexContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-content"},"align-items":{syntax:"normal | stretch | | [ ? ]",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-items"},"align-self":{syntax:"auto | normal | stretch | | ? ",media:"visual",inherited:!1,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"auto",appliesto:"flexItemsGridItemsAndAbsolutelyPositionedBoxes",computed:"autoOnAbsolutelyPositionedElementsValueOfAlignItemsOnParent",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-self"},all:Fc,animation:Nc,"animation-delay":{syntax:"