@supernova-studio/pulsar-core 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){return o(e[i][1][r]||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}({1:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const Pulsar_1=require("./pulsar/Pulsar"),PulsarStaticAnalysis_1=require("./pulsar/PulsarStaticAnalysis");window.PCPulsar=Pulsar_1.PCPulsar,window.PCPulsarStaticAnalysis=PulsarStaticAnalysis_1.PCPulsarStaticAnalysis},{"./pulsar/Pulsar":45,"./pulsar/PulsarStaticAnalysis":47}],2:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportEngine=void 0;const ExportItemWriter_1=require("./writing/writers/ExportItemWriter"),ExportItemProducer_1=require("./items/ExportItemProducer"),ExportDataProducer_1=require("./generation/ExportDataProducer");exports.PCExportEngine=class{constructor(configuration){this.configuration=configuration,this.dataProducer=new ExportDataProducer_1.PCExportDataProducer(configuration),this.itemProducer=new ExportItemProducer_1.PCExportItemProducer(configuration),this.itemWriter=new ExportItemWriter_1.PCExportItemWriter(configuration),this.runId="random-id"}processExportValidate(){return new Promise(((response,reject)=>{this.dataProducer.validateCanProduceData().then((()=>{this.itemProducer.validateCanProduceItems().then((()=>{this.itemWriter.validateCanWriteItems().then((()=>{response(!0)})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))}))}processExport(){return new Promise(((resolve,reject)=>{this.processExportValidate().then((()=>{this.processExportValidated().then((()=>{resolve(this.configuration.outputStore)})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))}))}processExportValidated(){return new Promise(((resolve,reject)=>{this.dataProducer.produceData().then((dataProducerResponses=>{this.itemProducer.produceItemsFromResponses(dataProducerResponses).then((itemProducerResponses=>{this.itemWriter.write(itemProducerResponses).then((writerResponses=>{resolve(writerResponses)})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))}))}}},{"./generation/ExportDataProducer":4,"./items/ExportItemProducer":21,"./writing/writers/ExportItemWriter":37}],3:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportConfiguration=void 0;const ExportWriterStore_1=require("./../writing/writers/memory/ExportWriterStore"),main_1=require("@supernova-studio/pulsar-language/build/main"),BlueprintLoader_1=require("../loaders/BlueprintLoader"),Logger_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger");exports.PCExportConfiguration=class{constructor(exporter,logger,dsmStore,dsmBridgeConfig,exportMode,sandboxData){this.outputPathPrefix="",this.exporter=exporter,this.exportMode=exportMode,this.logger=logger,this.outputStore=new ExportWriterStore_1.PCExportWriterMemoryStore,this.dsmStore=dsmStore,this.dsmBridgeConfig=dsmBridgeConfig,this.sandboxData=sandboxData}newExecutionContext(){let blueprintLoader=new BlueprintLoader_1.PCBlueprintLoader(this.exporter),blueprintEmitter=new main_1.PLMemoryBlueprintEmitter(!1),logger=new Logger_1.PLLogger,bridge=new main_1.DSMBridge(this.dsmBridgeConfig);return new main_1.DSMExecutionContext(blueprintLoader,blueprintEmitter,logger,bridge,this.sandboxData)}}},{"../loaders/BlueprintLoader":30,"./../writing/writers/memory/ExportWriterStore":40,"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger":613}],4:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataProducer=void 0;const ExportDataQueue_1=require("./queue/ExportDataQueue"),ExportDataEmittedResponseProducer_1=require("./requests/ExportDataEmittedResponseProducer"),ExportDataPrimaryResponseProducer_1=require("./requests/ExportDataPrimaryResponseProducer"),ExportDataRequestProducer_1=require("./requests/ExportDataRequestProducer"),Pulsar_1=require("../../pulsar/Pulsar");exports.PCExportDataProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration,this.processingQueue=new ExportDataQueue_1.PCExportDataQueue(exportConfiguration)}validateCanProduceData(){return new Promise(((resolve,_)=>{resolve()}))}produceData(){return new Promise(((resolve,reject)=>{for(let map of this.configuration.exporter.outputs.values()){let skipGeneration=!1,source=this.configuration.exporter.sourceByIdIgnoringExecutableExtension(map.invoke);if(!source)throw`Output defines unknown source '${map.invoke}'`;switch(this.configuration.exportMode){case Pulsar_1.PCPulsarExporterMode.ci:skipGeneration=!source.targetsCI;break;case Pulsar_1.PCPulsarExporterMode.docs:skipGeneration=!source.targetsDocumentation;break;case Pulsar_1.PCPulsarExporterMode.sandbox:skipGeneration=!source.targetsSandbox}if(!skipGeneration){let requests=this.generateRequestsForMap(map);this.processingQueue.addQueuedRequests(requests)}}this.processingQueue.processQueue().then((processedRequests=>{let primaryResponses=this.generatePrimaryResponsesFromFinishedRequests(processedRequests),emittedResponses=this.generateEmittedResponsesFromFinishedRequests(processedRequests),result=primaryResponses.concat(emittedResponses);resolve(result)})).catch((error=>{reject(error)}))}))}generateRequestsForMap(map){return new ExportDataRequestProducer_1.PCExportDataRequestProducer(this.configuration).produceRequestsForMap(map)}generatePrimaryResponsesFromFinishedRequests(requests){return(new ExportDataPrimaryResponseProducer_1.PCExportDataPrimaryResponseProducer).producePrimaryResponsesFromRequests(requests)}generateEmittedResponsesFromFinishedRequests(requests){return(new ExportDataEmittedResponseProducer_1.PCExportDataEmittedResponseProducer).produceEmittedResponsesFromRequests(requests)}}},{"../../pulsar/Pulsar":45,"./queue/ExportDataQueue":5,"./requests/ExportDataEmittedResponseProducer":7,"./requests/ExportDataPrimaryResponseProducer":8,"./requests/ExportDataRequestProducer":12}],5:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataQueue=void 0;const ExportDataQueueOperation_1=require("./ExportDataQueueOperation");exports.PCExportDataQueue=class{constructor(configuration){this.isLockedForChanges=!1,this.isFinished=!1,this.configuration=configuration,this.waitingOperations=new Array,this.requests=new Array,this.requestsCompleted=0}addQueuedRequest(request){let operation=new ExportDataQueueOperation_1.PCExportDataQueueOperation(request);this.requests.push(request),this.waitingOperations.push(operation)}addQueuedRequests(requests){requests.forEach((r=>{this.addQueuedRequest(r)}))}clearQueue(){this.requestsCompleted=0,this.waitingOperations=[]}processQueue(){return this.isLockedForChanges=!0,this.requestsCompleted=0,new Promise(((resolve,reject)=>{let queue=new Array;for(let operation of this.waitingOperations){let promise=operation.processOperation();queue.push(promise)}Promise.all(queue).then((result=>{resolve(result)})).catch((error=>{reject(error)}))}))}}},{"./ExportDataQueueOperation":6}],6:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataQueueOperation=void 0;exports.PCExportDataQueueOperation=class{constructor(request){this.request=request}processOperation(){return new Promise(((respond,reject)=>{this.request.produceData().then((response=>{respond(response)})).catch((error=>{reject(error)}))}))}}},{}],7:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataEmittedResponseProducer=void 0;const ExportDataResponse_1=require("./ExportDataResponse"),ExportDataRequestDataStore_1=require("./ExportDataRequestDataStore"),ExportDataRequestNameStore_1=require("./ExportDataRequestNameStore");exports.PCExportDataEmittedResponseProducer=class{constructor(){}produceEmittedResponsesFromRequests(requests){let result=[];for(let request of requests){let responses=this.produceEmittedResponsesFromRequest(request);for(let response of responses)result.push(response)}return result}produceEmittedResponsesFromRequest(request){let responses=[];for(let emittedContent of request.emittedContent){let filename=emittedContent.filename,content=emittedContent.content,dataStore=ExportDataRequestDataStore_1.PCExportDataRequestDataStore.storeWithPlainData(content),nameStore=ExportDataRequestNameStore_1.PCExportDataRequestNameStore.storeWithResolvedName(filename),response=new ExportDataResponse_1.PCExportDataResponse(request,request.map,dataStore,nameStore,[]);responses.push(response)}return responses}}},{"./ExportDataRequestDataStore":10,"./ExportDataRequestNameStore":11,"./ExportDataResponse":13}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataPrimaryResponseProducer=void 0;const ExportDataResponse_1=require("./ExportDataResponse");exports.PCExportDataPrimaryResponseProducer=class{constructor(){}producePrimaryResponsesFromRequests(requests){let responses=[];for(let request of requests){let response=this.producePrimaryResponseFromRequest(request);responses.push(response)}return responses}producePrimaryResponseFromRequest(request){return new ExportDataResponse_1.PCExportDataResponse(request,request.map,request.dataStore,request.nameStore,request.emittedContent)}}},{"./ExportDataResponse":13}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequest=void 0;const ExportDataRequestDataStore_1=require("./ExportDataRequestDataStore"),ExportDataRequestNameStore_1=require("./ExportDataRequestNameStore");exports.PCExportDataRequest=class{constructor(configuration,map){this.processingError=null,this.processingFinished=!1,this.map=map,this.configuration=configuration}produceData(){throw Error("Content must be produced by each individual subclass")}requestSuccesfullGeneratingPlainData(plainData,nameData,emittedContent){this.processingFinished=!0,this.dataStore=ExportDataRequestDataStore_1.PCExportDataRequestDataStore.storeWithPlainData(plainData),this.nameStore=ExportDataRequestNameStore_1.PCExportDataRequestNameStore.storeWithPlainData(nameData),this.emittedContent=emittedContent}requestSuccessfullGeneratingMultipartData(multipartData,multipartNameData,emittedContent){this.processingFinished=!0,this.dataStore=ExportDataRequestDataStore_1.PCExportDataRequestDataStore.storeWithMultipartData(multipartData),this.nameStore=ExportDataRequestNameStore_1.PCExportDataRequestNameStore.storeWithMultipartData(multipartNameData),this.emittedContent=emittedContent}requestFailed(error){this.processingFinished=!0,this.processingError=error}}},{"./ExportDataRequestDataStore":10,"./ExportDataRequestNameStore":11}],10:[function(require,module,exports){"use strict";var PCExportDataRequestDataStoreMode;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDataStore=exports.PCExportDataRequestDataStoreMode=void 0,function(PCExportDataRequestDataStoreMode){PCExportDataRequestDataStoreMode[PCExportDataRequestDataStoreMode.plain=0]="plain",PCExportDataRequestDataStoreMode[PCExportDataRequestDataStoreMode.multipart=1]="multipart"}(PCExportDataRequestDataStoreMode=exports.PCExportDataRequestDataStoreMode||(exports.PCExportDataRequestDataStoreMode={}));class PCExportDataRequestDataStore{constructor(mode){this.plainDataKey="_plain_data",this.mode=mode,this.dataStore=new Map}static storeWithPlainData(data){let store=new PCExportDataRequestDataStore(PCExportDataRequestDataStoreMode.plain);return store.dataStore.set(store.plainDataKey,data),store}static storeWithMultipartData(data){let store=new PCExportDataRequestDataStore(PCExportDataRequestDataStoreMode.multipart);return store.dataStore=data,store}plainData(){if(this.mode===PCExportDataRequestDataStoreMode.multipart)throw Error("Using plain data in multipart store is prohibited");return this.dataStore.get(this.plainDataKey)}multipartData(){return this.dataStore}}exports.PCExportDataRequestDataStore=PCExportDataRequestDataStore},{}],11:[function(require,module,exports){"use strict";var PCExportDataRequestNameStoreMode;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestNameStore=exports.PCExportDataRequestNameStoreMode=void 0,function(PCExportDataRequestNameStoreMode){PCExportDataRequestNameStoreMode[PCExportDataRequestNameStoreMode.plain=0]="plain",PCExportDataRequestNameStoreMode[PCExportDataRequestNameStoreMode.multipart=1]="multipart",PCExportDataRequestNameStoreMode[PCExportDataRequestNameStoreMode.resolved=2]="resolved"}(PCExportDataRequestNameStoreMode=exports.PCExportDataRequestNameStoreMode||(exports.PCExportDataRequestNameStoreMode={}));class PCExportDataRequestNameStore{constructor(mode){this.plainDataKey="_plain_data",this.resolvedDataKey="_resolved_name",this.mode=mode,this.nameStore=new Map}static storeWithResolvedName(name){let store=new PCExportDataRequestNameStore(PCExportDataRequestNameStoreMode.resolved),data=new Map;return data.set(store.plainDataKey,name),store.nameStore.set(store.resolvedDataKey,data),store}static storeWithPlainData(data){let store=new PCExportDataRequestNameStore(PCExportDataRequestNameStoreMode.plain);return store.nameStore.set(store.plainDataKey,data),store}static storeWithMultipartData(data){let store=new PCExportDataRequestNameStore(PCExportDataRequestNameStoreMode.multipart);return store.nameStore=data,store}plainData(){return this.checkInCorrectMode(PCExportDataRequestNameStoreMode.plain),this.nameStore.get(this.plainDataKey)}multipartData(){return this.checkInCorrectMode(PCExportDataRequestNameStoreMode.multipart),this.nameStore}resolvedData(){return this.checkInCorrectMode(PCExportDataRequestNameStoreMode.resolved),this.nameStore.get(this.resolvedDataKey).get(this.plainDataKey)}checkInCorrectMode(mode){if(this.mode!==mode)throw Error(`Using data mode ${mode} is prohibited in store that was created as ${this.mode}`);return!0}isPlain(){return this.mode===PCExportDataRequestNameStoreMode.plain}isMultipart(){return this.mode===PCExportDataRequestNameStoreMode.multipart}isResolved(){return this.mode===PCExportDataRequestNameStoreMode.resolved}}exports.PCExportDataRequestNameStore=PCExportDataRequestNameStore},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestProducer=void 0;const ExporterSource_1=require("../../../model/sources/ExporterSource"),ExportDataRequestDSMComponent_1=require("./specific/dsm/ExportDataRequestDSMComponent"),ExportDataRequestDSMGeneric_1=require("./specific/dsm/ExportDataRequestDSMGeneric"),ExportDataRequestDSMTheme_1=require("./specific/dsm/ExportDataRequestDSMTheme"),ExportDataRequestDSMTokenGroup_1=require("./specific/dsm/ExportDataRequestDSMTokenGroup"),ExportDataRequestDSMComponentGroup_1=require("./specific/dsm/ExportDataRequestDSMComponentGroup"),ExportDataRequestDSMTokenType_1=require("./specific/dsm/ExportDataRequestDSMTokenType");exports.PCExportDataRequestProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration}produceRequestsForMap(map){var _a;let sourceId=map.invoke,referencedSource=this.configuration.exporter.sourceByIdIgnoringExecutableExtension(sourceId);if(!referencedSource)throw Error(`Source ${null!==(_a=map.write_using)&&void 0!==_a?_a:""} defined inside output not found`);switch(referencedSource.context){case ExporterSource_1.PCExporterSourceContextType.generic:case ExporterSource_1.PCExporterSourceContextType.component:case ExporterSource_1.PCExporterSourceContextType.componentGroup:case ExporterSource_1.PCExporterSourceContextType.tokenType:case ExporterSource_1.PCExporterSourceContextType.tokenGroup:case ExporterSource_1.PCExporterSourceContextType.theme:return this.createExporterEntryDSMDataRequest(referencedSource,map);default:return[]}}createExporterEntryDSMDataRequest(source,map){switch(source.context){case ExporterSource_1.PCExporterSourceContextType.generic:return this.createExporterEntryRequestsForDSMGenericOption(source,map);case ExporterSource_1.PCExporterSourceContextType.component:return this.createExporterEntryRequestsForDSMComponentOption(source,map);case ExporterSource_1.PCExporterSourceContextType.componentGroup:return this.createExporterEntryRequestsForDSMComponentGroupOption(source,map);case ExporterSource_1.PCExporterSourceContextType.tokenGroup:return this.createExporterEntryRequestsForDSMTokenGroupOption(source,map);case ExporterSource_1.PCExporterSourceContextType.tokenType:return this.createExporterEntryRequestsForDSMTokenTypeOption(source,map);case ExporterSource_1.PCExporterSourceContextType.theme:return this.createExporterEntryRequestsForDSMThemeOption(source,map);default:return[]}}createExporterEntryRequestsForDSMGenericOption(source,map){let executionContext=this.configuration.newExecutionContext();return[new ExportDataRequestDSMGeneric_1.PCExportDataRequestDSMGeneric(source,map,this.configuration,executionContext)]}createExporterEntryRequestsForDSMComponentOption(source,map){let requests=[],components=this.configuration.dsmStore.executableComponents();for(let component of components){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMComponent_1.PCExportDataRequestDSMComponent(component,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMComponentGroupOption(source,map){let requests=[],components=this.configuration.dsmStore.executableComponentGroups();for(let component of components){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMComponentGroup_1.PCExportDataRequestDSMComponentGroup(component,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMTokenGroupOption(source,map){let requests=[],tokenGroups=this.configuration.dsmStore.executableTokenGroups();for(let tokenGroup of tokenGroups){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMTokenGroup_1.PCExportDataRequestDSMTokenGroup(tokenGroup,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMThemeOption(source,map){let requests=[],themes=this.configuration.dsmStore.executableThemes();for(let theme of themes){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMTheme_1.PCExportDataRequestDSMTheme(theme,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMTokenTypeOption(source,map){let requests=[],tokenTypes=this.configuration.dsmStore.executableTokenTypes();for(let tokenType of tokenTypes){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMTokenType_1.PCExportDataRequestDSMTokenType(tokenType,source,map,this.configuration,executionContext);requests.push(request)}return requests}}},{"../../../model/sources/ExporterSource":44,"./specific/dsm/ExportDataRequestDSMComponent":15,"./specific/dsm/ExportDataRequestDSMComponentGroup":16,"./specific/dsm/ExportDataRequestDSMGeneric":17,"./specific/dsm/ExportDataRequestDSMTheme":18,"./specific/dsm/ExportDataRequestDSMTokenGroup":19,"./specific/dsm/ExportDataRequestDSMTokenType":20}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataResponse=void 0;exports.PCExportDataResponse=class{constructor(request,map,dataStore,nameStore,emittedContent){this.request=request,this.dataStore=dataStore,this.nameStore=nameStore,this.emittedContent=emittedContent,this.map=map}}},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestBlueprint=void 0;const ExportDataRequest_1=require("../../ExportDataRequest"),main_1=require("@supernova-studio/pulsar-language/build/main"),main_2=require("@supernova-studio/pulsar-language/build/main"),main_3=require("@supernova-studio/pulsar-language/build/main");class PCExportDataRequestBlueprint extends ExportDataRequest_1.PCExportDataRequest{constructor(configuration,map,executionContext){super(configuration,map),this.executionContext=executionContext}processBlueprintData(source,context,name){return new Promise((async(resolve,reject)=>{try{name?this.configuration.logger.logInfo(`Exporting source ${source.id} for ${name}`,""):this.configuration.logger.logInfo(`Exporting source ${source.id}`,"");let definitionBlueprint=main_1.PLBlueprintFactory.blueprint(source.content,source.id,this.executionContext),interpretingContext=new main_2.PLInterpreterContext(context),interpreter=new main_3.PLInterpreter,result=await interpreter.interpret(definitionBlueprint,interpretingContext,this.executionContext),emittedContent=this.executionContext.blueprintEmitter.allEmittedContent();name?this.configuration.logger.logInfo(`Finished exporting source ${source.id} for ${name}`,""):this.configuration.logger.logInfo(`Finished exporting source ${source.id}`,""),resolve({data:result,emittedContext:emittedContent})}catch(error){this.logBlueprintProcessingFailure(error,source,name),reject(error)}}))}logBlueprintProcessingFailure(error,source,name){let reason=error.message;name?this.configuration.logger.logError(`Export of source ${source.id} for ${name} failed`,""):this.configuration.logger.logError(`Export of source ${source.id} failed`,""),this.configuration.logger.logError(`Reason: ${reason}`,"")}}exports.PCExportDataRequestBlueprint=PCExportDataRequestBlueprint},{"../../ExportDataRequest":9,"@supernova-studio/pulsar-language/build/main":552}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMComponent=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMComponent extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("componentId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`component ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMComponent=PCExportDataRequestDSMComponent},{"./ExportDataRequestBlueprint":14}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMComponentGroup=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMComponentGroup extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("groupId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`component group ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMComponentGroup=PCExportDataRequestDSMComponentGroup},{"./ExportDataRequestBlueprint":14}],17:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMGeneric=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMGeneric extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source}produceData(){let context=new Map;return new Promise(((resolve,reject)=>{this.processBlueprintData(this.source,context,null).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMGeneric=PCExportDataRequestDSMGeneric},{"./ExportDataRequestBlueprint":14}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMTheme=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMTheme extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("themeId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`theme ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMTheme=PCExportDataRequestDSMTheme},{"./ExportDataRequestBlueprint":14}],19:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMTokenGroup=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMTokenGroup extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("groupId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`token group ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMTokenGroup=PCExportDataRequestDSMTokenGroup},{"./ExportDataRequestBlueprint":14}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMTokenType=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMTokenType extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("tokenTypeId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`token type ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMTokenType=PCExportDataRequestDSMTokenType},{"./ExportDataRequestBlueprint":14}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemProducer=void 0;const ExportItemQueue_1=require("./queue/ExportItemQueue"),ExportItemResponseProducer_1=require("./requests/ExportItemResponseProducer"),ExportItemRequestProducer_1=require("./requests/ExportItemRequestProducer");exports.PCExportItemProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration,this.processingQueue=new ExportItemQueue_1.PCExportItemQueue(exportConfiguration)}validateCanProduceItems(){return new Promise(((resolve,_)=>{resolve()}))}produceItemsFromResponses(responses){return new Promise(((resolve,reject)=>{for(let dataResponse of responses){let requests=this.generateRequestsForDataResponse(dataResponse);this.processingQueue.addQueuedRequests(requests)}this.processingQueue.processQueue().then((processedRequests=>{let responses=this.generateResponsesFromFinishedRequests(processedRequests);resolve(responses)})).catch((error=>{reject(error)}))}))}generateRequestsForDataResponse(dataResponse){return new ExportItemRequestProducer_1.PCExportItemRequestProducer(this.configuration).produceRequestsForDataResponse(dataResponse)}generateResponsesFromFinishedRequests(finishedRequests){return(new ExportItemResponseProducer_1.PCExportItemResponseProducer).produceResponsesFromRequests(finishedRequests)}}},{"./queue/ExportItemQueue":24,"./requests/ExportItemRequestProducer":27,"./requests/ExportItemResponseProducer":29}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItem=void 0;exports.PCExportItem=class{constructor(map,contentData,nameData,resolvedName){this.map=map,this.contentData=contentData,this.nameData=nameData,this.resolvedName=resolvedName}}},{}],23:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemBuilder=void 0;const ExportItem_1=require("./ExportItem");exports.PCExportItemBuilder=class{constructor(){}buildItemsUsingResponse(response){let request=response.request;return this.buildBlueprintItemsUsingRequest(request,response)}buildBlueprintItemsUsingRequest(_request,response){let contentData=response.dataStore.plainData(),nameData=response.nameStore.isPlain()?response.nameStore.plainData():new Map,resolvedName=response.nameStore.isResolved()?response.nameStore.resolvedData():null;return[new ExportItem_1.PCExportItem(response.map,contentData,nameData,resolvedName)]}buildAssetItemsUsingRequest(_request,_response){throw new Error("Unsupported type of request")}}},{"./ExportItem":22}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemQueue=void 0;const ExportItemQueueOperation_1=require("./ExportItemQueueOperation");exports.PCExportItemQueue=class{constructor(configuration){this.isLockedForChanges=!1,this.isFinished=!1,this.configuration=configuration,this.waitingOperations=new Array,this.requests=new Array,this.requestsCompleted=0}addQueuedRequest(request){let operation=new ExportItemQueueOperation_1.PCExportItemQueueOperation(request);this.requests.push(request),this.waitingOperations.push(operation)}addQueuedRequests(requests){requests.forEach((r=>{this.addQueuedRequest(r)}))}clearQueue(){this.requestsCompleted=0,this.waitingOperations=[]}processQueue(){return this.isLockedForChanges=!0,this.requestsCompleted=0,new Promise(((resolve,reject)=>{let queue=new Array;for(let operation of this.waitingOperations){let promise=operation.processOperation();queue.push(promise)}Promise.all(queue).then((_=>{resolve(this.requests)})).catch((error=>{reject(error)}))}))}}},{"./ExportItemQueueOperation":25}],25:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemQueueOperation=void 0;exports.PCExportItemQueueOperation=class{constructor(request){this.request=request}processOperation(){return new Promise(((respond,reject)=>{this.request.produceItem().then((_=>{respond(this.request)})).catch((error=>{reject(error)}))}))}}},{}],26:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemRequest=void 0;const ExportItemBuilder_1=require("./../construction/ExportItemBuilder");exports.PCExportItemRequest=class{constructor(configuration,dataResponse){this.items=null,this.error=null,this.processingError=null,this.processingFinished=!1,this.dataResponse=dataResponse,this.configuration=configuration}produceItem(){return new Promise(((resolve,reject)=>{try{let items=(new ExportItemBuilder_1.PCExportItemBuilder).buildItemsUsingResponse(this.dataResponse);this.requestSuccessful(items),resolve(items)}catch(error){this.requestFailed(error),reject(error)}}))}cancel(){}requestSuccessful(items){this.processingFinished=!0,this.items=items}requestFailed(error){this.processingFinished=!0,this.processingError=error}}},{"./../construction/ExportItemBuilder":23}],27:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemRequestProducer=void 0;const ExportItemRequest_1=require("./ExportItemRequest");exports.PCExportItemRequestProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration}produceRequestsForDataResponse(dataResponse){return[new ExportItemRequest_1.PCExportItemRequest(this.configuration,dataResponse)]}}},{"./ExportItemRequest":26}],28:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemResponse=void 0;exports.PCExportItemResponse=class{constructor(item,map,request){this.item=item,this.map=map,this.request=request}}},{}],29:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemResponseProducer=void 0;const ExportItemResponse_1=require("./ExportItemResponse");exports.PCExportItemResponseProducer=class{constructor(){}produceResponsesFromRequests(requests){let responses=[];for(let request of requests){let requestResponses=this.produceResponseFromRequest(request);for(let response of requestResponses)responses.push(response)}return responses}produceResponseFromRequest(request){var _a;let responses=[];for(let item of null!==(_a=request.items)&&void 0!==_a?_a:[]){let response=new ExportItemResponse_1.PCExportItemResponse(item,item.map,request);responses.push(response)}return responses}}},{"./ExportItemResponse":28}],30:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCBlueprintLoader=void 0;const BlueprintLoader_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader"),main_1=require("@supernova-studio/pulsar-language/build/main");class PCBlueprintLoader extends BlueprintLoader_1.PLBlueprintLoader{constructor(exporter){super(),this.exporter=exporter}loadBlueprint(blueprintId,executionContext,configuration){let cachedBlueprint=this.cachedBlueprint(blueprintId),containedBlueprint=this.exporter.sourceByIdIgnoringExecutableExtension(blueprintId);if(!cachedBlueprint&&!containedBlueprint)for(const bp of this.exporter.sources.values())if(bp.id===blueprintId){blueprintId=bp.id;break}return this.loadSourceForSourceId(blueprintId,executionContext,configuration)}loadSourceForSourceId(sourceId,executionContext,configuration){let cachedBlueprint=this.cachedBlueprint(sourceId);if(cachedBlueprint)return cachedBlueprint;let containedBlueprint=this.exporter.sourceByIdIgnoringExecutableExtension(sourceId);if(!containedBlueprint)throw Error(`Undefined source ${sourceId}`);let source=main_1.PLBlueprintFactory.blueprint(containedBlueprint.content,sourceId,executionContext,configuration);return this.cache(source,sourceId),source}}exports.PCBlueprintLoader=PCBlueprintLoader},{"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader":611}],31:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterQueue=void 0;const ExportWriterQueueOperation_1=require("./ExportWriterQueueOperation");exports.PCExportWriterQueue=class{constructor(configuration){this.isLockedForChanges=!1,this.isFinished=!1,this.configuration=configuration,this.waitingOperations=new Array,this.requests=new Array,this.requestsCompleted=0}addQueuedRequest(request){let operation=new ExportWriterQueueOperation_1.PCExportWriterQueueOperation(request);this.requests.push(request),this.waitingOperations.push(operation)}addQueuedRequests(requests){requests.forEach((r=>{this.addQueuedRequest(r)}))}clearQueue(){this.requestsCompleted=0,this.waitingOperations=[]}processQueue(){return this.isLockedForChanges=!0,this.requestsCompleted=0,new Promise(((resolve,reject)=>{let queue=new Array;for(let operation of this.waitingOperations){let promise=operation.processOperation();queue.push(promise)}Promise.all(queue).then((_=>{resolve(this.requests)})).catch((error=>{reject(error)}))}))}}},{"./ExportWriterQueueOperation":32}],32:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterQueueOperation=void 0;exports.PCExportWriterQueueOperation=class{constructor(request){this.request=request}processOperation(){return new Promise(((respond,reject)=>{this.request.writeItem().then((_=>{respond(this.request)})).catch((error=>{reject(error)}))}))}}},{}],33:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterRequest=void 0;exports.PCExportWriterRequest=class{constructor(configuration,item,map){this.processingError=null,this.processingFinished=!1,this.item=item,this.map=map,this.configuration=configuration}writeItem(){throw Error("Content must be written by each individual subclass")}requestSuccesful(_){this.processingFinished=!0}requestFailed(error){this.processingFinished=!0,this.processingError=error}}},{}],34:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterRequestProducer=void 0;const ExportWriterMemoryRequest_1=require("./../writers/memory/ExportWriterMemoryRequest");exports.PCExportWriterRequestProducer=class{constructor(configuration){this.configuration=configuration}produceRequestsForItemResponse(response){return[new ExportWriterMemoryRequest_1.PCExportWriterMemoryRequest(this.configuration,response.item,response.map)]}}},{"./../writers/memory/ExportWriterMemoryRequest":39}],35:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterResponse=void 0;exports.PCExportWriterResponse=class{constructor(request,map,item){this.item=item,this.map=map,this.request=request}}},{}],36:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterResponseProducer=void 0;const ExportWriterResponse_1=require("./ExportWriterResponse");exports.PCExportWriterResponseProducer=class{constructor(){}produceResponsesFromRequests(requests){let responses=[];for(let request of requests){let response=this.produceResponseFromRequest(request);responses.push(response)}return responses}produceResponseFromRequest(request){return new ExportWriterResponse_1.PCExportWriterResponse(request,request.map,request.item)}}},{"./ExportWriterResponse":35}],37:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemWriter=void 0;const ExportWriterResponseProducer_1=require("./../requests/ExportWriterResponseProducer"),ExportWriterRequestProducer_1=require("./../requests/ExportWriterRequestProducer"),ExportWriterQueue_1=require("../queue/ExportWriterQueue");exports.PCExportItemWriter=class{constructor(exportConfiguration){this.configuration=exportConfiguration,this.processingQueue=new ExportWriterQueue_1.PCExportWriterQueue(exportConfiguration)}validateCanWriteItems(){return new Promise(((resolve,_)=>{resolve()}))}write(itemResponses){return new Promise(((resolve,reject)=>{for(let itemResponse of itemResponses){let requests=this.generateRequestsForItemResponse(itemResponse);this.processingQueue.addQueuedRequests(requests)}this.processingQueue.processQueue().then((processedRequests=>{let responses=this.generateResponsesFromFinishedRequests(processedRequests);resolve(responses)})).catch((error=>{reject(error)}))}))}generateRequestsForItemResponse(itemResponse){return new ExportWriterRequestProducer_1.PCExportWriterRequestProducer(this.configuration).produceRequestsForItemResponse(itemResponse)}generateResponsesFromFinishedRequests(finishedRequests){return(new ExportWriterResponseProducer_1.PCExportWriterResponseProducer).produceResponsesFromRequests(finishedRequests)}}},{"../queue/ExportWriterQueue":31,"./../requests/ExportWriterRequestProducer":34,"./../requests/ExportWriterResponseProducer":36}],38:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterRuleProcessor=void 0;const main_1=require("@supernova-studio/pulsar-language/build/main");exports.PCExportWriterRuleProcessor=class{constructor(configuration){this.configuration=configuration}resolveDestinationURL(dynamicRule,data,root){return new Promise(((resolve,reject)=>{let parsingExecutionContext=this.configuration.newExecutionContext(),source=main_1.PLBlueprintFactory.blueprint(dynamicRule,"",parsingExecutionContext),interpreter=new main_1.PLInterpreter,executionContext=this.configuration.newExecutionContext();interpreter.interpret(source,this.interpreterContext(data),executionContext).then((resolvedRule=>{if(root){resolve(root+resolvedRule)}else resolve(resolvedRule)})).catch((error=>{reject(error)}))}))}resolvedDestinationURL(staticRule,root){if(root){return root+staticRule}return staticRule}interpreterContext(data){return new main_1.PLInterpreterContext(data)}}},{"@supernova-studio/pulsar-language/build/main":552}],39:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterMemoryRequest=void 0;const ExportWriterRequest_1=require("./../../requests/ExportWriterRequest"),ExportWriterRuleProcessor_1=require("./../ExportWriterRuleProcessor");class PCExportWriterMemoryRequest extends ExportWriterRequest_1.PCExportWriterRequest{writeItem(){return new Promise((async(respond,_)=>{let destinationURL,processor=new ExportWriterRuleProcessor_1.PCExportWriterRuleProcessor(this.configuration);if(this.item.resolvedName)destinationURL=processor.resolvedDestinationURL(this.item.resolvedName,this.configuration.outputPathPrefix);else if(this.item.map.write_to)destinationURL=await processor.resolveDestinationURL(this.item.map.write_to,this.item.nameData,this.configuration.outputPathPrefix);else{if(!this.item.map.write_using)throw"Output needs to define one of 'write_to' or 'write_using'";{let source=this.configuration.exporter.sourceByIdIgnoringExecutableExtension(this.item.map.write_using);if(!source)throw`Output defines unknown source '${this.item.map.write_using}'`;destinationURL=await processor.resolveDestinationURL(source.content,this.item.nameData,this.configuration.outputPathPrefix)}}this.configuration.logger.logInfo(`Writing ${destinationURL.replace(this.configuration.outputPathPrefix,"")}`,""),this.configuration.outputStore.storeItem(this.item.contentData,destinationURL),respond(this.item)}))}}exports.PCExportWriterMemoryRequest=PCExportWriterMemoryRequest},{"./../../requests/ExportWriterRequest":33,"./../ExportWriterRuleProcessor":38}],40:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterMemoryStore=void 0;exports.PCExportWriterMemoryStore=class{constructor(){this.dataStore=new Map}storeItem(item,path){if(this.dataStore.get(path))throw Error(`Item already exists at path ${path}`);this.dataStore.set(path,item)}}},{}],41:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DSMReferenceStore=void 0;const ExporterSource_1=require("../sources/ExporterSource");exports.DSMReferenceStore=class{constructor(data){this.components=data.components,this.componentGroups=data.componentGroups,this.tokenGroups=data.tokenGroups,this.tokenTypes=data.tokenTypes,this.themes=data.themes,0===this.components.length&&this.components.push(this.emptyState()),0===this.componentGroups.length&&this.componentGroups.push(this.emptyState()),0===this.tokenGroups.length&&this.tokenGroups.push(this.emptyState()),0===this.tokenTypes.length&&this.tokenTypes.push(this.emptyState()),0===this.themes.length&&this.themes.push(this.emptyState()),this.contexts=[{id:ExporterSource_1.PCExporterSourceContextType.generic,name:"Generic"},{id:ExporterSource_1.PCExporterSourceContextType.component,name:"Components"},{id:ExporterSource_1.PCExporterSourceContextType.componentGroup,name:"Component Groups"},{id:ExporterSource_1.PCExporterSourceContextType.tokenGroup,name:"Token Group"},{id:ExporterSource_1.PCExporterSourceContextType.tokenType,name:"Token Type"},{id:ExporterSource_1.PCExporterSourceContextType.theme,name:"Themes"}]}emptyState(){return{id:"none",name:"None"}}executableComponentGroups(){return this.retrieveFixingEmptyState(this.componentGroups)}executableComponents(){return this.retrieveFixingEmptyState(this.components)}executableTokenGroups(){return this.retrieveFixingEmptyState(this.tokenGroups)}executableTokenTypes(){return this.retrieveFixingEmptyState(this.tokenTypes)}executableThemes(){return this.retrieveFixingEmptyState(this.themes)}retrieveFixingEmptyState(array){return this.arrayIsEmptyState(array)?[]:array}arrayIsEmptyState(array){return 1===array.length&&"none"===array[0].id}}},{"../sources/ExporterSource":44}],42:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExporter=void 0;exports.PCExporter=class{constructor(data){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m;this.id=data.id,this.name=data.name,this.description=data.description,this.author=null!==(_a=data.author)&&void 0!==_a?_a:null,this.organization=null!==(_b=data.organization)&&void 0!==_b?_b:null,this.homepage=null!==(_c=data.homepage)&&void 0!==_c?_c:null,this.icon=null!==(_d=data.icon)&&void 0!==_d?_d:null,this.sourceDirectory=data.source_dir,this.version=data.version,this.tags=data.tags,this.sourceConfigFilePath=null!==(_f=null===(_e=data.config)||void 0===_e?void 0:_e.sources)&&void 0!==_f?_f:null,this.outputConfigFilePath=null!==(_h=null===(_g=data.config)||void 0===_g?void 0:_g.output)&&void 0!==_h?_h:null,this.pulsarEngineVersion=null!==(_k=null===(_j=data.engines)||void 0===_j?void 0:_j.pulsar)&&void 0!==_k?_k:null,this.supernovaEngineVersion=null!==(_m=null===(_l=data.engines)||void 0===_l?void 0:_l.supernova)&&void 0!==_m?_m:null,this.sources=new Map,this.outputs=new Array}linkSources(sources){for(let source of sources)this.sources.set(source.id,source)}linkOutputs(outputs){for(let output of outputs)this.outputs.push(output)}sourceByIdIgnoringExecutableExtension(sourceId){return sourceId.endsWith(".pr")?this.sourceById(sourceId.substr(0,sourceId.length-3)):this.sourceById(sourceId)}sourceById(sourceId){var _a;return null!==(_a=this.sources.get(sourceId))&&void 0!==_a?_a:null}storeNewSource(source){this.sources.get(source.id)||this.sources.set(source.id,source)}removeSource(source){this.sources.delete(source.id)}removeSourceById(sourceId){this.sources.delete(sourceId)}storeSources(sources){sources.forEach((s=>{this.storeNewSource(s)}))}removeSources(sources){sources.forEach((s=>{this.removeSource(s)}))}moveBlueprintSource(oldId,newId,newPath){if(!this.sources.get(oldId))return;let sourceObject=this.sources.get(oldId);this.sources.delete(oldId),this.sources.set(newId,sourceObject),sourceObject.path=newPath}}},{}],43:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExporterMapBlueprint=void 0;exports.PCExporterMapBlueprint=class{constructor(data){var _a,_b;this.invoke=data.invoke,this.write_to=null!==(_a=data.write_to)&&void 0!==_a?_a:null,this.write_using=null!==(_b=data.write_using)&&void 0!==_b?_b:null}toObject(){let data={invoke:this.invoke};return this.write_using&&(data.write_using=this.write_using),this.write_to&&(data.write_to=this.write_to),data}}},{}],44:[function(require,module,exports){"use strict";var PCExporterSourceContextType;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExporterSource=exports.PCExporterSourceContextType=void 0,function(PCExporterSourceContextType){PCExporterSourceContextType.generic="generic",PCExporterSourceContextType.component="component",PCExporterSourceContextType.componentGroup="componentGroup",PCExporterSourceContextType.tokenType="tokenType",PCExporterSourceContextType.tokenGroup="tokenGroup",PCExporterSourceContextType.theme="theme"}(PCExporterSourceContextType=exports.PCExporterSourceContextType||(exports.PCExporterSourceContextType={}));exports.PCExporterSource=class{constructor(id,path,content){this.id=id,this.path=null!=path?path:null,this.content=content,this.targetsCI=!0,this.targetsDocumentation=!1,this.targetsSandbox=!1,this.context=PCExporterSourceContextType.generic}loadBlueprintConfiguration(data){data.targets_ci&&(this.targetsCI=data.targets_ci),data.targets_sandbox&&(this.targetsSandbox=data.targets_sandbox),data.targets_documentation&&(this.targetsDocumentation=data.targets_documentation),data.context&&(this.context=data.context)}}},{}],45:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsar=exports.PCPulsarExporterMode=exports.PCPulsarEngineState=void 0;const PulsarInterface_1=require("./PulsarInterface"),PulsarExporterManager_1=require("./managers/PulsarExporterManager"),PulsarCodeManager_1=require("./managers/PulsarCodeManager"),PulsarCIManager_1=require("./managers/PulsarCIManager"),PulsarExporterGitHubLoader_1=require("./managers/loaders/remote/PulsarExporterGitHubLoader"),PulsarExporterJSONLoader_1=require("./managers/loaders/memory/PulsarExporterJSONLoader"),PulsarExporterZIPLoader_1=require("./managers/loaders/remote/PulsarExporterZIPLoader"),PulsarBlueprintManager_1=require("./managers/PulsarBlueprintManager"),PulsarFSLoader_1=require("./managers/loaders/local/PulsarFSLoader");var PCPulsarEngineState,PCPulsarExporterMode;!function(PCPulsarEngineState){PCPulsarEngineState.waiting="waiting",PCPulsarEngineState.loading="loading",PCPulsarEngineState.ready="ready"}(PCPulsarEngineState=exports.PCPulsarEngineState||(exports.PCPulsarEngineState={})),function(PCPulsarExporterMode){PCPulsarExporterMode.ci="ci",PCPulsarExporterMode.sandbox="sandbox",PCPulsarExporterMode.docs="docs"}(PCPulsarExporterMode=exports.PCPulsarExporterMode||(exports.PCPulsarExporterMode={}));exports.PCPulsar=class{constructor(){this.state=PCPulsarEngineState.waiting}async initiateWithExporter(exporter){return this.preInit(),this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithLocalURL(url){this.preInit();let packageManager=new PulsarFSLoader_1.PCPulsarFSLoader(url),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithPackageS3URL(s3URL){this.preInit();let packageManager=new PulsarExporterZIPLoader_1.PCPulsarExporterZIPLoader(s3URL),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithPackageGitHubURL(githubURL){this.preInit();let packageManager=new PulsarExporterGitHubLoader_1.PCPulsarExporterGitHubLoader(githubURL),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithPackageBlob(blob){this.preInit();let packageManager=new PulsarExporterJSONLoader_1.PCPulsarExporterJSONLoader(blob),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}preInit(){if(this.state!==PCPulsarEngineState.waiting)throw Error("Can't instantiate Pulsar library for the second time. Create new instance to load different exporter.");this.state=PCPulsarEngineState.loading}postInit(exporter){this.exporter=exporter,this.sourceManager=new PulsarBlueprintManager_1.PCPulsarSourceManager(this.exporter),this.ciManager=new PulsarCIManager_1.PCPulsarCIManager(this.exporter),this.codeManager=new PulsarCodeManager_1.PCPulsarCodeManager(this.exporter),this.exporterManager=new PulsarExporterManager_1.PCPulsarExporterManager(this.exporter),this.state=PCPulsarEngineState.ready}getExporterBackingObject(){return this.validateCanManipulateState(),this.exporter}getExporterDetail(){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.getExporterDetail())}updateExporterName(name){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterName(name))}updateExporterDescription(description){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterDescription(description))}updateExporterVersion(version){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterVersion(version))}updateExporterAuthor(author){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterAuthor(author))}updateExporterHomepage(homepage){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterHomepage(homepage))}updateExporterIcon(icon){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterIcon(icon))}updateExporterTags(tags){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterTags(tags))}getExporterConfigurationJSON(){return this.validateCanManipulateState(),this.configurationManager.getExporterConfigurationJSON()}getSourceConfigurationJSON(){return this.validateCanManipulateState(),this.configurationManager.getSourceConfigurationJSON()}getOutputConfigurationJSON(){return this.validateCanManipulateState(),this.configurationManager.getOutputConfigurationJSON()}updateExporterConfigurationJSON(content){this.validateCanManipulateState(),this.configurationManager.updateExporterConfigurationJSON(content)}updateSourceConfigurationJSON(content){this.validateCanManipulateState(),this.configurationManager.updateSourceConfigurationJSON(content)}updateOutputConfigurationJSON(content){this.validateCanManipulateState(),this.configurationManager.updateOutputConfigurationJSON(content)}getSources(){return this.validateCanManipulateState(),this.convertSourcesToDetails(this.sourceManager.getSources())}getSourceById(blueprintId){return this.validateCanManipulateState(),this.convertSourceToDetail(this.sourceManager.getSourceById(blueprintId))}createNewSource(){return this.validateCanManipulateState(),this.convertSourceToDetail(this.sourceManager.createNewSource())}deleteSourceById(blueprintId){return this.validateCanManipulateState(),this.sourceManager.deleteSourceById(blueprintId)}updateSourceLocation(oldSourceId,newSourceId,newPath){return this.validateCanManipulateState(),this.convertSourceToDetail(this.sourceManager.updateSourceLocation(oldSourceId,newSourceId,newPath))}getDSMContextStore(dsmBridgeConfig){return this.validateCanManipulateState(),this.ciManager.getDSMContextStore(dsmBridgeConfig)}static getDSMContextStoreStatic(dsmBridgeConfig){return PulsarCIManager_1.PCPulsarCIManager.fetchReferenceStoreStatic(dsmBridgeConfig)}async executeSourceById(blueprintId,dsmBridgeConfig,contextKey,contextId){return await this.validateCanManipulateState(),await this.codeManager.executeSourceById(blueprintId,dsmBridgeConfig,contextKey,contextId)}updateSourceCodeDefinitionForSourceId(sourceId,definition){return this.validateCanManipulateState(),this.codeManager.updateSourceCodeDefinitionForSourceId(sourceId,definition)}suggestNextFromSourceCode(code,selectionLocation,selectionLength){return this.validateCanManipulateState(),this.codeManager.suggestNextFromSourceCode(code,selectionLocation,selectionLength)}applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply){return this.validateCanManipulateState(),this.codeManager.applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply)}suggestHighlightFromSourceCode(code){return this.validateCanManipulateState(),this.codeManager.suggestHighlightFromSourceCode(code)}getExporterBlob(){return this.validateCanManipulateState(),this.exporterManager.getExporterBlob()}getExporterBlobJSONSerialized(){return this.validateCanManipulateState(),this.exporterManager.getExporterBlobJSONSerialized()}async executeExporter(dsmBridgeConfig,exportMode=PCPulsarExporterMode.ci){return await this.validateCanManipulateState(),await this.ciManager.executeExporter(dsmBridgeConfig,exportMode)}async executeExporterForSingleSandboxedComponent(dsmBridgeConfig,sandboxComponentId,serializedSandboxData){return await this.validateCanManipulateState(),await this.ciManager.executeExporterForSingleSandboxedComponent(dsmBridgeConfig,PCPulsarExporterMode.ci,sandboxComponentId,serializedSandboxData)}retrieveRunningExporterState(){return this.ciManager.retrieveRunningExporterState()}validateCanManipulateState(){return new Promise(((resolve,reject)=>{this.state===PCPulsarEngineState.ready?resolve():this.state===PCPulsarEngineState.waiting?reject(new Error("Unable to manipulate state because the exporter has to be loaded first")):this.state===PCPulsarEngineState.loading?reject(new Error("Unable to manipulate state because the engine is currently loading an exporter")):reject(new Error("Unhandled manipulation state"))}))}convertExporterToDetail(exporter){let detail=new PulsarInterface_1.PCEngineExporterDetail;return detail.id=exporter.id,detail.name=exporter.name,detail.description=exporter.description,detail.author=exporter.author,detail.organization=exporter.organization,detail.homepage=exporter.homepage,detail.source_dir=exporter.sourceDirectory,detail.version=exporter.version,detail.tags=exporter.tags,detail.icon=exporter.icon,detail.config={sources:exporter.sourceConfigFilePath,output:exporter.outputConfigFilePath},detail.engines={pulsar:exporter.pulsarEngineVersion,supernova:exporter.supernovaEngineVersion},detail}convertSourceToDetail(source){let detail=new PulsarInterface_1.PCEngineSourceDetail;return detail.id=source.id,detail.path=source.path,detail.targetsCI=source.targetsCI,detail.targetsSandbox=source.targetsSandbox,detail.targetsDocumentation=source.targetsDocumentation,detail.context=source.context,detail.content=source.content,detail}convertSourcesToDetails(blueprints){let convertedSources=new Array;for(let source of blueprints)convertedSources.push(this.convertSourceToDetail(source));return convertedSources}}},{"./PulsarInterface":46,"./managers/PulsarBlueprintManager":48,"./managers/PulsarCIManager":49,"./managers/PulsarCodeManager":50,"./managers/PulsarExporterManager":51,"./managers/loaders/local/PulsarFSLoader":54,"./managers/loaders/memory/PulsarExporterJSONLoader":55,"./managers/loaders/remote/PulsarExporterGitHubLoader":57,"./managers/loaders/remote/PulsarExporterZIPLoader":58}],46:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCEngineExporterState=exports.PCEngineFileGroup=exports.PCEngineSourceDetail=exports.PCEngineExporterDetail=void 0;exports.PCEngineExporterDetail=class{};exports.PCEngineSourceDetail=class{};exports.PCEngineFileGroup=class{constructor(name,path,files,groups){this.name=name,this.path=path,this.files=files,this.groups=groups}},function(PCEngineExporterState){PCEngineExporterState.running="running",PCEngineExporterState.finished_success="finished_success",PCEngineExporterState.finished_failure="finished_failure"}(exports.PCEngineExporterState||(exports.PCEngineExporterState={}))},{}],47:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarStaticAnalysis=exports.PCPulsarExporterMode=exports.PCPulsarEngineState=void 0;const main_1=require("@supernova-studio/pulsar-language/build/main"),BlueprintLoader_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader"),Logger_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger");!function(PCPulsarEngineState){PCPulsarEngineState.waiting="waiting",PCPulsarEngineState.loading="loading",PCPulsarEngineState.ready="ready"}(exports.PCPulsarEngineState||(exports.PCPulsarEngineState={})),function(PCPulsarExporterMode){PCPulsarExporterMode.ci="ci",PCPulsarExporterMode.sandbox="sandbox",PCPulsarExporterMode.docs="docs"}(exports.PCPulsarExporterMode||(exports.PCPulsarExporterMode={}));exports.PCPulsarStaticAnalysis=class{constructor(){}analyzeBlueprintCode(code,sourceFileName){let context=new main_1.DSMExecutionContext(new BlueprintLoader_1.PLBlueprintLoader,new main_1.PLBlueprintEmitter,new Logger_1.PLLogger,new main_1.DSMBridge({accessToken:"",apiUrl:"",designSystemId:"",dsVersionId:"",apiVersion:"0.2"}),null);try{return main_1.PLBlueprintFactory.blueprint(code,sourceFileName,context),[]}catch(error){return[error]}}suggestNextFromBlueprintCode(code,selectionLocation,selectionLength){return this.codeManager.suggestNextFromSourceCode(code,selectionLocation,selectionLength)}applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply){return this.codeManager.applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply)}suggestHighlightFromBlueprintCode(code){return this.codeManager.suggestHighlightFromSourceCode(code)}}},{"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader":611,"@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger":613}],48:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarSourceManager=void 0;const ExporterSource_1=require("../../model/sources/ExporterSource");exports.PCPulsarSourceManager=class{constructor(exporter){this.exporter=exporter}getSources(){let sourceStore=new Array;for(let source of this.exporter.sources.values())sourceStore.push(source);return sourceStore}getSourceById(sourceId){for(let source of this.exporter.sources.values())if(source.id===sourceId)return source;throw new Error(`Unknown source ${sourceId}`)}createNewSource(){let count=this.exporter.sources.size,source=new ExporterSource_1.PCExporterSource(`source${count+1}.pr`,null,"");return this.exporter.storeNewSource(source),source}deleteSourceById(sourceId){if(!this.exporter.sourceById(sourceId))throw Error(`Unknown source for deletion ${sourceId}`);this.exporter.removeSourceById(sourceId)}updateSourceLocation(oldSourceId,newSourceId,newPath){let source=this.exporter.sourceById(oldSourceId);if(!source)throw Error(`Unknown source for update ${oldSourceId}`);let sourceId=newSourceId.trim();if(sourceId.length<3)throw Error("Source id must be at least 3 letters long");if(!sourceId.match(/^[0-9a-zA-Z._]+$/))throw Error("Source id must only contain letters, numbers, dots or underscores");return this.exporter.moveBlueprintSource(oldSourceId,newSourceId,newPath),source}}},{"../../model/sources/ExporterSource":44}],49:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarCIManager=void 0;const PulsarInterface_1=require("../PulsarInterface"),DSMReferenceStore_1=require("./../../model/dsm/DSMReferenceStore"),Logger_1=require("./../../tools/Logger"),ExportConfiguration_1=require("./../../engine/configuration/ExportConfiguration"),ExportEngine_1=require("./../../engine/ExportEngine"),main_1=require("@supernova-studio/pulsar-language/build/main");exports.PCPulsarCIManager=class{constructor(exporter){this.exporter=exporter,this.currentExporterInstance=null}async executeExporter(dsmBridgeConfig,exportMode){let store=await this.fetchReferenceStore(dsmBridgeConfig),logger=new Logger_1.PCLogger,configuration=new ExportConfiguration_1.PCExportConfiguration(this.exporter,logger,store,dsmBridgeConfig,exportMode,{}),pulsarEngine=new ExportEngine_1.PCExportEngine(configuration);this.currentExporterInstance=pulsarEngine;let result=await pulsarEngine.processExport(),convertedResult=this.convertExportResultToPulsarResult(result,this.currentExporterInstance);return this.currentExporterInstance,convertedResult}async executeExporterForSingleSandboxedComponent(dsmBridgeConfig,exportMode,sandboxComponentId,serializedSandboxData){let store=await this.fetchReferenceStoreForSandboxedComponent(sandboxComponentId),logger=new Logger_1.PCLogger,sandboxData=JSON.parse(serializedSandboxData),configuration=new ExportConfiguration_1.PCExportConfiguration(this.exporter,logger,store,dsmBridgeConfig,exportMode,sandboxData),pulsarEngine=new ExportEngine_1.PCExportEngine(configuration);this.currentExporterInstance=pulsarEngine;let result=await pulsarEngine.processExport(),convertedResult=this.convertExportResultToPulsarResult(result,this.currentExporterInstance);return this.currentExporterInstance,convertedResult}retrieveRunningExporterState(){if(null!==this.currentExporterInstance){let store=this.currentExporterInstance.configuration.outputStore;return this.convertExportResultToPulsarResult(store,this.currentExporterInstance)}return null}async getDSMContextStore(dsmBridgeConfig){return this.fetchReferenceStore(dsmBridgeConfig)}convertExportResultToPulsarResult(sourceStore,exportEngine){let files=new Array;for(let[path,partialResult]of sourceStore.dataStore.entries()){if("string"!=typeof partialResult)throw new Error("Unsupported type of produced file for write");{let pathDescriptor=this.parseName(path),fileDescriptor={name:pathDescriptor.fullname,path:pathDescriptor.path,content:partialResult,type:"string",source:"primary"};files.push(fileDescriptor)}}return{exporterId:this.exporter.id,runId:exportEngine.runId,emittedFiles:files,state:PulsarInterface_1.PCEngineExporterState.finished_success,rootGroup:this.computeRootFileGroupFromFiles(files)}}parseName(fullPath){let components=fullPath.split("/"),filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");if(!(nameParts.length>=2))throw Error("Unable to properly parse output file");return extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join("."),{fullname:filename,name:name,extension:extension,folder:directory,path:fullpath}}async fetchReferenceStore(dsmBridgeConfig){let dsmBridge=new main_1.DSMBridge(dsmBridgeConfig),result=await dsmBridge.getDSMDataFromEndpoint("bff/structure",null);return new DSMReferenceStore_1.DSMReferenceStore(result)}static async fetchReferenceStoreStatic(dsmBridgeConfig){let dsmBridge=new main_1.DSMBridge(dsmBridgeConfig),result=await dsmBridge.getDSMDataFromEndpoint("bff/structure",null);return new DSMReferenceStore_1.DSMReferenceStore(result)}async fetchReferenceStoreForSandboxedComponent(componentId){return new DSMReferenceStore_1.DSMReferenceStore({components:[{id:componentId,name:"Sandboxed Component"}],componentGroups:[],tokenGroups:[],tokenTypes:[],themes:[]})}computeRootFileGroupFromFiles(files){let rootGroup=new PulsarInterface_1.PCEngineFileGroup("Root","/",[],[]),subgroups=new Map,currentParent=rootGroup;for(let file of files){currentParent=rootGroup;let permutations=this.pathPermutations(file.path);if(0===permutations.length)rootGroup.files.push(file);else for(let[index,permutation]of permutations.entries()){let group=subgroups.get(permutation.path);group?currentParent=group:(group=new PulsarInterface_1.PCEngineFileGroup(permutation.lastComponent,permutation.path,[],[]),currentParent.groups.push(group),subgroups.set(permutation.path,group)),index===permutations.length-1&&group.files.push(file)}}return rootGroup}pathPermutations(path){let pathComponents=path.split("/");pathComponents.pop();let buffer=new Array,stringBuffer="";for(let component of pathComponents)stringBuffer+=`/${component}`,buffer.push({path:stringBuffer,lastComponent:component});return buffer}}},{"../PulsarInterface":46,"./../../engine/ExportEngine":2,"./../../engine/configuration/ExportConfiguration":3,"./../../model/dsm/DSMReferenceStore":41,"./../../tools/Logger":59,"@supernova-studio/pulsar-language/build/main":552}],50:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarCodeManager=void 0;const Logger_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger"),BlueprintLoader_1=require("./../../engine/loaders/BlueprintLoader"),main_1=require("@supernova-studio/pulsar-language/build/main"),BlueprintLoader_2=require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader"),ExporterSource_1=require("../../model/sources/ExporterSource");exports.PCPulsarCodeManager=class{constructor(exporter){this.exporter=exporter,this.codeExecutionContext=new main_1.DSMExecutionContext(new BlueprintLoader_2.PLBlueprintLoader,new main_1.PLBlueprintEmitter,new Logger_1.PLLogger,new main_1.DSMBridge({accessToken:"",apiUrl:"",designSystemId:"",dsVersionId:"",apiVersion:"0.2"}),null)}async executeSourceById(sourceId,dsmBridgeConfig,contextKey,contextId){let source=this.exporter.sourceById(sourceId);if(!source)throw Error(`Unknown source to execute ${sourceId}`);let contextData=this.createContextData(contextKey,contextId),logger=new Logger_1.PLLogger,loader=new BlueprintLoader_1.PCBlueprintLoader(this.exporter),emitter=new main_1.PLMemoryBlueprintEmitter(!1),configuredBridge=new main_1.DSMBridge(dsmBridgeConfig),executionContext=new main_1.DSMExecutionContext(loader,emitter,logger,configuredBridge,null),parsedSource=await this.parseSource(source.content,executionContext),producedPrimaryFile={name:"Main",path:"",content:await this.interpretSource(parsedSource,contextData,executionContext),source:"primary",type:"string"},producedEmittedFiles=new Array;for(let emittedResult of emitter.allEmittedContent()){let producedEmittedFile={name:emittedResult.filename,path:"",content:emittedResult.content,source:"emitter",type:"string"};producedEmittedFiles.push(producedEmittedFile)}return{sourceId:sourceId,producedContent:[producedPrimaryFile,...producedEmittedFiles],logger:logger}}updateSourceCodeDefinitionForSourceId(sourceId,definition){let source=this.exporter.sourceById(sourceId);if(!source)throw Error(`Unknown source to update ${sourceId}`);source.content=definition}updateSourceLocation(oldSourceId,newSourceId,newPath){if(!this.exporter.sourceById(oldSourceId))throw Error(`Unknown source to update ${oldSourceId}`);this.exporter.moveBlueprintSource(oldSourceId,newSourceId,newPath)}suggestNextFromSourceCode(code,selectionLocation,selectionLength){let suggestionEngine=new main_1.PLBlueprintAutocompleteEngine(this.codeExecutionContext);return suggestionEngine.loadSnippets((new main_1.PLAutocompleteBlueprintSnippets).snippetPool()),suggestionEngine.suggestNextBasedOnString(code,selectionLocation,selectionLength)}applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply){return new main_1.PLBlueprintAutocompleteEngine(this.codeExecutionContext).applySuggestion(apply,code,selectionLocation,selectionLength,0)}suggestHighlightFromSourceCode(code){return new main_1.PLBlueprintHighlightEngine(this.codeExecutionContext).tokenize(code)}createContextData(contextKey,contextId){let data=new Map;if("none"===contextId){if(contextKey===ExporterSource_1.PCExporterSourceContextType.generic)return data;if(contextKey===ExporterSource_1.PCExporterSourceContextType.component)throw new Error("Source with component context can only be tested against design system with one or more defined components. Create new component and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.componentGroup)throw new Error("Source with component group context can only be tested against design system with one or more defined component groups. Create new component group and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.tokenType)throw new Error("Source with token type context can only be tested against design system with one or more token types. Create new token and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.tokenGroup)throw new Error("Source with token group context can only be tested against design system with one or more defined token groups. Create new token group and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.theme)throw new Error("Source with theme context can only be tested against design system with one or more defined themes. Create new theme and run this source again.")}else{if(contextKey===ExporterSource_1.PCExporterSourceContextType.generic)return data;contextKey===ExporterSource_1.PCExporterSourceContextType.component?data.set("componentId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.componentGroup?data.set("groupId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.tokenType?data.set("tokenTypeId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.tokenGroup?data.set("groupId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.theme&&data.set("themeId",contextId)}return data}async parseSource(declaration,executionContext){return main_1.PLBlueprintFactory.blueprint(declaration,"test",executionContext,null)}async interpretSource(source,data,executionContext){let renderingContext=new main_1.PLInterpreterContext(data);return(new main_1.PLInterpreter).interpret(source,renderingContext,executionContext)}}},{"../../model/sources/ExporterSource":44,"./../../engine/loaders/BlueprintLoader":30,"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader":611,"@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger":613}],51:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterManager=void 0;const PulsarExporterJSONGenerator_1=require("./generators/PulsarExporterJSONGenerator"),URL_REGEX=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");exports.PCPulsarExporterManager=class{constructor(exporter){this.exporter=exporter}getExporterDetail(){return this.exporter}updateExporterName(name){let trimmedName=name.trim();if(trimmedName.length<6)throw Error("Exporter name must be at least 6 letters long");if(!trimmedName.match(/^[0-9a-zA-Z -]+$/))throw Error("Exporter name must only contain letters, numbers, spaces and hyphens");return this.exporter.name=trimmedName,this.exporter}updateExporterDescription(description){let trimmedOverview=description.trim();if(trimmedOverview.length<=0)throw Error("Exporter description must be at least 20 characters longs");return this.exporter.description=trimmedOverview,this.exporter}updateExporterVersion(version){let trimmedVersion=version.trim();if(!trimmedVersion.match(/^\d+(\.\d+){1,2}$/))throw Error("Exporter version must be in formatted as major.minor.patch. Major and minor version is required, patch is optional");return this.exporter.version=trimmedVersion,this.exporter}updateExporterAuthor(author){let trimmedAuthor=author.trim();if(!trimmedAuthor||0===trimmedAuthor.length)return this.exporter.author=null,this.exporter;if(!trimmedAuthor.match(/^[\s,.'\-\p{L}]+$/u))throw Error("Exporter author name cannot contain numbers or special characters");return this.exporter.author=trimmedAuthor,this.exporter}updateExporterHomepage(homepage){let trimmedHomepage=homepage.trim();if(!trimmedHomepage||0===trimmedHomepage.length)return this.exporter.homepage=null,this.exporter;if(!trimmedHomepage.match(URL_REGEX))throw Error("Exporter home page must be a valid url");return this.exporter.homepage=trimmedHomepage,this.exporter}updateExporterTags(tags){for(const tag of tags)if(!tag.match(/^[0-9a-zA-Z]+$/))throw Error("Exporter tags must only contain letters or numbers");return this.exporter.tags=tags,this.exporter}updateExporterIcon(icon){let trimmedIcon=icon.trim();if(!trimmedIcon||0===trimmedIcon.length)return this.exporter.icon=null,this.exporter;if(!trimmedIcon.match(URL_REGEX))throw Error("Exporter icon must be a valid url");return this.exporter.icon=trimmedIcon,this.exporter}getExporterBlob(){return new PulsarExporterJSONGenerator_1.PCPulsarExporterJSONGenerator(this.exporter).constructBlob()}getExporterBlobJSONSerialized(){return new PulsarExporterJSONGenerator_1.PCPulsarExporterJSONGenerator(this.exporter).constructBlobJSON()}}},{"./generators/PulsarExporterJSONGenerator":52}],52:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterJSONGenerator=void 0;const ExporterSource_1=require("../../../model/sources/ExporterSource");exports.PCPulsarExporterJSONGenerator=class{constructor(exporter){this.exporter=exporter}constructBlob(){return[this.constructConfigurationFile(),this.constructBlueprintConfigurationFile(),this.constructOutputConfigurationFile(),...this.constructBlueprintSourceFiles()]}constructBlobJSON(){let blob=this.constructBlob();return JSON.stringify(blob)}constructConfigurationFile(){let content=this.exporterConfigurationDescriptor();return this.constructFileExtractionData("exporter","json","",content)}exporterConfigurationDescriptor(){let data={id:this.exporter.id,name:this.exporter.name,description:this.exporter.description,source_dir:this.exporter.sourceDirectory,version:this.exporter.version,tags:this.exporter.tags};if(this.exporter.author&&(data.author=this.exporter.author),this.exporter.organization&&(data.organization=this.exporter.organization),this.exporter.homepage&&(data.homepage=this.exporter.homepage),this.exporter.icon&&(data.icon=this.exporter.icon),null!==this.exporter.outputConfigFilePath||null!==this.exporter.sourceConfigFilePath){let config={};null!==this.exporter.outputConfigFilePath&&(config.output=this.exporter.outputConfigFilePath),null!==this.exporter.sourceConfigFilePath&&(config.sources=this.exporter.sourceConfigFilePath),data.config=config}if(null!==this.exporter.pulsarEngineVersion||null!==this.exporter.supernovaEngineVersion){let engines={};null!==this.exporter.pulsarEngineVersion&&(engines.pulsar=this.exporter.pulsarEngineVersion),null!==this.exporter.supernovaEngineVersion&&(engines.supernova=this.exporter.supernovaEngineVersion),data.engines=engines}return data}constructBlueprintConfigurationFile(){let content=this.blueprintConfigurationDescriptor(),descriptor=this.exporter.sourceConfigFilePath?this.fileDescriptorOfPath(this.exporter.sourceConfigFilePath):this.fileDescriptorOfPath("blueprints.json");return this.constructFileExtractionData(descriptor.name,descriptor.extension,descriptor.directory,content)}blueprintConfigurationDescriptor(){let data=new Object;for(let source of this.exporter.sources.values()){let object=new Object;source.context!=ExporterSource_1.PCExporterSourceContextType.generic&&(object.context=source.context.toString()),source.targetsCI&&(object.targets_ci=!0),source.targetsSandbox&&(object.targets_sandbox=!0),source.targetsDocumentation&&(object.targets_docs=!0),data[source.id]=object}return data}constructOutputConfigurationFile(){let content=this.outputConfigurationDescriptor(),descriptor=this.exporter.outputConfigFilePath?this.fileDescriptorOfPath(this.exporter.outputConfigFilePath):this.fileDescriptorOfPath("output.json");return this.constructFileExtractionData(descriptor.name,descriptor.extension,descriptor.directory,content)}outputConfigurationDescriptor(){let blueprintOutput=new Array;for(let map of this.exporter.outputs){let object={invoke:map.invoke};null!==map.write_to&&(object.write_to=map.write_to),null!==map.write_using&&(object.write_using=map.write_using),blueprintOutput.push(object)}return{blueprints:blueprintOutput}}constructBlueprintSourceFiles(){var files=new Array;for(let source of this.exporter.sources.values()){let name=source.id,directory=source.path?`${source.path}`:"",content=source.content,nameComponents=name.split("."),extension=nameComponents[nameComponents.length-1],file=this.constructFileExtractionData(name,extension,directory,content);files.push(file)}return files}fileDescriptorOfPath(filePath){let components=filePath.split("/");if(0==components.length)return null;let filename=components[components.length-1];components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");return nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension?null:{filename:filename,name:name,extension:extension,directory:directory}}constructFileExtractionData(name,extension,directory,content){let resultingContent,filename=`${name}.${extension}`,key=filename;return directory&&(key=`${directory}/${key}`),resultingContent=content instanceof Object?JSON.stringify(content):content,{key:key,directory:null!=directory?directory:"",filename:filename,name:name,extension:extension,content:resultingContent}}}},{"../../../model/sources/ExporterSource":44}],53:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarBaseLoader=void 0;exports.PCPulsarBaseLoader=class{constructor(){}initialize(){throw new Error("Initializer must provide its own implementation of init procedure")}}},{}],54:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarFSLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("../memory/PulsarExporterMemoryLoader"),fs_1=__importDefault(require("fs")),util_1=require("util"),path_1=require("path"),readdir=util_1.promisify(fs_1.default.readdir),stat=util_1.promisify(fs_1.default.stat);class PCPulsarFSLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(sourceZIPURL){super(),this.exporterRootURL=sourceZIPURL}async initialize(){let processedFiles=await this.loadFilesFromRootDirectory(this.exporterRootURL),unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}async loadFilesFromRootDirectory(rootDirectory){let processedFiles=new Map,files=await this.getFiles(rootDirectory);for(let file of files){let parsedFile=await this.loadFileAtUrl(file,rootDirectory);parsedFile&&processedFiles.set(parsedFile.key,parsedFile)}return processedFiles}async getFiles(directory){const subdirs=await readdir(directory);return(await Promise.all(subdirs.map((async subdir=>{const res=path_1.resolve(directory,subdir);return(await stat(res)).isDirectory()?this.getFiles(res):res})))).reduce(((a,f)=>a.concat(f)),[])}async loadFileAtUrl(filePath,rootDirectory){let components=filePath.split("/"),filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");if(nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension)return null;let content=fs_1.default.readFileSync(filePath,"utf-8");return{key:fullpath.substring(rootDirectory.length+1),filename:filename,name:name,extension:extension,directory:directory.substring(rootDirectory.length+1),content:content}}}exports.PCPulsarFSLoader=PCPulsarFSLoader},{"../PulsarBaseLoader":53,"../memory/PulsarExporterMemoryLoader":56,fs:181,path:372,util:507}],55:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterJSONLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("./PulsarExporterMemoryLoader");class PCPulsarExporterJSONLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(blob){super(),this.blob=blob}async initialize(){let processedBlob,processedFiles=new Map;if("object"==typeof this.blob)processedBlob=this.blob;else{if("string"!=typeof this.blob)throw new Error("Unsupported blob type, supported: Object or JSON representation");processedBlob=JSON.parse(this.blob)}if(processedBlob instanceof Array){for(let item of processedBlob){this.validateBlobEntry(item);let correctItem=item;processedFiles.set(correctItem.key,correctItem)}let unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}throw new Error("Blob must contain array of file descriptors")}validateBlobEntry(entry){if(!(entry instanceof Object))throw new Error("File descriptor must be provided and must be object");if("string"!=typeof entry.directory)throw new Error("File descriptor must contain directory attribute");if("string"!=typeof entry.content)throw new Error("File descriptor must contain content attribute");if("string"!=typeof entry.extension)throw new Error("File descriptor must contain extension attribute");if("string"!=typeof entry.filename)throw new Error("File descriptor must contain filename attribute");if("string"!=typeof entry.key)throw new Error("File descriptor must contain key attribute");if("string"!=typeof entry.name)throw new Error("File descriptor must contain name attribute")}}exports.PCPulsarExporterJSONLoader=PCPulsarExporterJSONLoader},{"../PulsarBaseLoader":53,"./PulsarExporterMemoryLoader":56}],56:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterMemoryLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),Exporter_1=require("../../../../model/exporters/Exporter"),ExporterSource_1=require("../../../../model/sources/ExporterSource"),ExporterMapBlueprint_1=require("../../../../model/maps/ExporterMapBlueprint");class PCPulsarExporterMemoryLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(sourceFiles){super(),this.sourceFiles=sourceFiles}async constructExporterFromSourceFiles(){let configurationFile=this.sourceFiles.get("exporter.json");if(!configurationFile)throw new Error("exporter.json not found it root directory of the exporter package");try{let parsedConfiguration=JSON.parse(configurationFile.content);this.validateExporterConfiguration(parsedConfiguration);let exporter=new Exporter_1.PCExporter(parsedConfiguration);return this.loadSourcesFromSourceDirectory(exporter),this.enhanceSourcesWithConfiguration(exporter),this.loadOutputMapping(exporter),exporter}catch(error){throw error}}loadSourcesFromSourceDirectory(exporter){let sources=new Array;for(let sourceDefinition of this.sourceFiles.values())if(sourceDefinition.directory.startsWith(exporter.sourceDirectory)){let source=new ExporterSource_1.PCExporterSource(sourceDefinition.name,sourceDefinition.directory,sourceDefinition.content);sources.push(source)}exporter.linkSources(sources)}enhanceSourcesWithConfiguration(exporter){if(null==exporter.sourceConfigFilePath)return;let configPath=exporter.sourceConfigFilePath,configFile=this.sourceFiles.get(configPath);if(!configFile)throw`Could not find source configuration file at ${configPath}`;let parsedConfiguration=JSON.parse(configFile.content);for(const[sourceId,configuration]of Object.entries(parsedConfiguration)){let source=exporter.sourceById(sourceId);if(!source)throw`Source configuration file defines source id ${sourceId} but there is no such file`;if(!(configuration instanceof Object))throw`Source configuration for source id ${sourceId} must be key/value object`;source.loadBlueprintConfiguration(configuration)}}loadOutputMapping(exporter){if(null==exporter.outputConfigFilePath)throw"Output configuration file is not defined inside exporter.json file";let configPath=exporter.outputConfigFilePath,configFile=this.sourceFiles.get(configPath);if(!configFile)throw`Could not find output configuration file at ${configPath}`;let outputDefinition=JSON.parse(configFile.content).blueprints;if(!outputDefinition)throw"Output configuration file must define 'blueprints' key";if(!(outputDefinition instanceof Array))throw"Output configuration file 'blueprints' key must be an array";for(let configuration of outputDefinition){if(!(configuration instanceof Object))throw"Output configuration source entry must be a key/value object";let invoke=configuration.invoke,writeTo=configuration.write_to,writeUsing=configuration.write_using;if(!invoke)throw"Output configuration source entry must define 'invoke' key";if(!writeTo&&!writeUsing)throw"Output configuration source entry must define either 'write_to' or 'write_using' key";if(writeTo&&writeUsing)throw"Output configuration source entry must define one of 'write_to' or 'write_using' keys, but not both";if(writeUsing&&!exporter.sources.get(writeUsing))throw`Output configuration source entry references unknown source '${writeUsing}'`;let map=new ExporterMapBlueprint_1.PCExporterMapBlueprint(configuration);exporter.linkOutputs([map])}}validateExporterConfiguration(parsedConfiguration){if(!parsedConfiguration.id||"string"!=typeof parsedConfiguration.id)throw new Error("Invalid exporter.json configuration, missing or invalid 'id'");if(!parsedConfiguration.name||"string"!=typeof parsedConfiguration.name)throw new Error("Invalid exporter.json configuration, missing or invalid 'name'");if(!parsedConfiguration.description||"string"!=typeof parsedConfiguration.description)throw new Error("Invalid exporter.json configuration, missing or invalid 'description'");if(!parsedConfiguration.source_dir||"string"!=typeof parsedConfiguration.source_dir)throw new Error("Invalid exporter.json configuration, missing or invalid 'source_dir'");if(!parsedConfiguration.version||"string"!=typeof parsedConfiguration.version)throw new Error("Invalid exporter.json configuration, missing or invalid 'version'");if(!(parsedConfiguration.tags&&parsedConfiguration.tags instanceof Array))throw new Error("Invalid exporter.json configuration, missing or invalid 'tags'");if(0===parsedConfiguration.tags.length)throw new Error("Invalid exporter.json configuration, 'tags' must not be empty");if(parsedConfiguration.author&&"string"!=typeof parsedConfiguration.author)throw new Error("Invalid exporter.json configuration, invalid 'author'");if(parsedConfiguration.organization&&"string"!=typeof parsedConfiguration.organization)throw new Error("Invalid exporter.json configuration, invalid 'organization'");if(parsedConfiguration.homepage&&"string"!=typeof parsedConfiguration.homepage)throw new Error("Invalid exporter.json configuration, invalid 'homepage'")}}exports.PCPulsarExporterMemoryLoader=PCPulsarExporterMemoryLoader},{"../../../../model/exporters/Exporter":42,"../../../../model/maps/ExporterMapBlueprint":43,"../../../../model/sources/ExporterSource":44,"../PulsarBaseLoader":53}],57:[function(require,module,exports){(function(Buffer){(function(){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterGitHubLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("../memory/PulsarExporterMemoryLoader"),request_1=__importDefault(require("request")),parse_github_url_1=__importDefault(require("parse-github-url")),jszip_1=__importDefault(require("jszip"));class PCPulsarExporterGitHubLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(githubURL){super(),this.repositoryURL=githubURL}async initialize(){let url=parse_github_url_1.default(this.repositoryURL);if(url){let rawZIP,owner=url.owner,name=url.name;try{let zipballURL=`https://github.com/${owner}/${name}/archive/main.zip`;rawZIP=await this.downloadZIPFromURL(zipballURL)}catch(_a){try{let zipballURL=`https://github.com/${owner}/${name}/archive/master.zip`;rawZIP=await this.downloadZIPFromURL(zipballURL)}catch(_b){throw new Error("Unable to obtain releases from GitHub repository")}}if(!rawZIP)throw new Error("Unable to obtain releases from GitHub repository");let processedFiles=await this.processZIP(rawZIP),unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}throw new Error("Unable to obtain releases from GitHub repository")}async downloadZIPFromURL(url){return new Promise(((resolve,reject)=>{let buffer,buffers=[];request_1.default.get(url).on("end",(()=>{buffer=Buffer.concat(buffers),jszip_1.default.loadAsync(buffer).then((zip=>{resolve(zip)})).catch((error=>{reject(error)}))})).on("error",(error=>{reject(error)})).on("data",(d=>{buffers.push(d)}))}))}async processZIP(zip){let processedFiles=new Map,values=Object.values(zip.files);for(let file of values){if(file.dir)continue;let parsedFile=await this.parseUnzippedFile(file);parsedFile&&processedFiles.set(parsedFile.key,parsedFile)}return processedFiles}async parseUnzippedFile(file){let components=file.name.split("/");components.shift();let filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");return nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension?null:{key:fullpath,filename:filename,name:name,extension:extension,directory:directory,content:await file.async("string")}}}exports.PCPulsarExporterGitHubLoader=PCPulsarExporterGitHubLoader}).call(this)}).call(this,require("buffer").Buffer)},{"../PulsarBaseLoader":53,"../memory/PulsarExporterMemoryLoader":56,buffer:183,jszip:313,"parse-github-url":371,request:417}],58:[function(require,module,exports){(function(Buffer){(function(){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterZIPLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("../memory/PulsarExporterMemoryLoader"),request_1=__importDefault(require("request")),jszip_1=__importDefault(require("jszip"));class PCPulsarExporterZIPLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(sourceZIPURL){super(),this.zipSourceURL=sourceZIPURL}async initialize(){let rawZIP=await this.downloadZIPFromURL(this.zipSourceURL),processedFiles=await this.processZIP(rawZIP),unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}async downloadZIPFromURL(url){return new Promise(((resolve,reject)=>{let buffer,buffers=[];request_1.default.get(url).on("end",(()=>{buffer=Buffer.concat(buffers),jszip_1.default.loadAsync(buffer).then((zip=>{resolve(zip)})).catch((error=>{reject(error)}))})).on("error",(error=>{reject(error)})).on("data",(d=>{buffers.push(d)}))}))}async processZIP(zip){let processedFiles=new Map,values=Object.values(zip.files);for(let file of values){if(file.dir)continue;let parsedFile=await this.parseUnzippedFile(file);parsedFile&&processedFiles.set(parsedFile.key,parsedFile)}return processedFiles}async parseUnzippedFile(file){let components=file.name.split("/"),filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");return nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension?null:{key:fullpath,filename:filename,name:name,extension:extension,directory:directory,content:await file.async("string")}}}exports.PCPulsarExporterZIPLoader=PCPulsarExporterZIPLoader}).call(this)}).call(this,require("buffer").Buffer)},{"../PulsarBaseLoader":53,"../memory/PulsarExporterMemoryLoader":56,buffer:183,jszip:313,request:417}],59:[function(require,module,exports){"use strict";var PCLogType;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCLogger=exports.PCLogType=void 0,function(PCLogType){PCLogType[PCLogType.success=0]="success",PCLogType[PCLogType.info=1]="info",PCLogType[PCLogType.warning=2]="warning",PCLogType[PCLogType.error=3]="error",PCLogType[PCLogType.user=4]="user"}(PCLogType=exports.PCLogType||(exports.PCLogType={}));exports.PCLogger=class{constructor(){this.logs=[]}emptyLogs(){this.logs=[]}store(log){return this.logs.push(log),log}logSuccess(message,id){let log={id:id,message:message,type:PCLogType.success,time:new Date};return this.store(log)}logInfo(message,id){let log={id:id,message:message,type:PCLogType.info,time:new Date};return this.store(log)}logWarning(message,id){let log={id:id,message:message,type:PCLogType.warning,time:new Date};return this.store(log)}logError(message,id){let log={id:id,message:message,type:PCLogType.error,time:new Date};return this.store(log)}logUser(message,id){let log={id:id,message:message,type:PCLogType.user,time:new Date};return this.store(log)}logType(type,message,id){let log={id:id,message:message,type:type,time:new Date};return this.store(log)}logSystem(systemMessage,id){return this.logType(systemMessage.type,systemMessage.message,id)}}},{}],60:[function(require,module,exports){"use strict";var compileSchema=require("./compile"),resolve=require("./compile/resolve"),Cache=require("./cache"),SchemaObject=require("./compile/schema_obj"),stableStringify=require("fast-json-stable-stringify"),formats=require("./compile/formats"),rules=require("./compile/rules"),$dataMetaSchema=require("./data"),util=require("./compile/util");module.exports=Ajv,Ajv.prototype.validate=function(schemaKeyRef,data){var v;if("string"==typeof schemaKeyRef){if(!(v=this.getSchema(schemaKeyRef)))throw new Error('no schema with key or ref "'+schemaKeyRef+'"')}else{var schemaObj=this._addSchema(schemaKeyRef);v=schemaObj.validate||this._compile(schemaObj)}var valid=v(data);!0!==v.$async&&(this.errors=v.errors);return valid},Ajv.prototype.compile=function(schema,_meta){var schemaObj=this._addSchema(schema,void 0,_meta);return schemaObj.validate||this._compile(schemaObj)},Ajv.prototype.addSchema=function(schema,key,_skipValidation,_meta){if(Array.isArray(schema)){for(var i=0;i<schema.length;i++)this.addSchema(schema[i],void 0,_skipValidation,_meta);return this}var id=this._getId(schema);if(void 0!==id&&"string"!=typeof id)throw new Error("schema id must be string");return checkUnique(this,key=resolve.normalizeId(key||id)),this._schemas[key]=this._addSchema(schema,_skipValidation,_meta,!0),this},Ajv.prototype.addMetaSchema=function(schema,key,skipValidation){return this.addSchema(schema,key,skipValidation,!0),this},Ajv.prototype.validateSchema=function(schema,throwOrLogError){var $schema=schema.$schema;if(void 0!==$schema&&"string"!=typeof $schema)throw new Error("$schema must be a string");if(!($schema=$schema||this._opts.defaultMeta||function(self){var meta=self._opts.meta;return self._opts.defaultMeta="object"==typeof meta?self._getId(meta)||meta:self.getSchema(META_SCHEMA_ID)?META_SCHEMA_ID:void 0,self._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var valid=this.validate($schema,schema);if(!valid&&throwOrLogError){var message="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(message);this.logger.error(message)}return valid},Ajv.prototype.getSchema=function(keyRef){var schemaObj=_getSchemaObj(this,keyRef);switch(typeof schemaObj){case"object":return schemaObj.validate||this._compile(schemaObj);case"string":return this.getSchema(schemaObj);case"undefined":return function(self,ref){var res=resolve.schema.call(self,{schema:{}},ref);if(res){var schema=res.schema,root=res.root,baseId=res.baseId,v=compileSchema.call(self,schema,root,void 0,baseId);return self._fragments[ref]=new SchemaObject({ref:ref,fragment:!0,schema:schema,root:root,baseId:baseId,validate:v}),v}}(this,keyRef)}},Ajv.prototype.removeSchema=function(schemaKeyRef){if(schemaKeyRef instanceof RegExp)return _removeAllSchemas(this,this._schemas,schemaKeyRef),_removeAllSchemas(this,this._refs,schemaKeyRef),this;switch(typeof schemaKeyRef){case"undefined":return _removeAllSchemas(this,this._schemas),_removeAllSchemas(this,this._refs),this._cache.clear(),this;case"string":var schemaObj=_getSchemaObj(this,schemaKeyRef);return schemaObj&&this._cache.del(schemaObj.cacheKey),delete this._schemas[schemaKeyRef],delete this._refs[schemaKeyRef],this;case"object":var serialize=this._opts.serialize,cacheKey=serialize?serialize(schemaKeyRef):schemaKeyRef;this._cache.del(cacheKey);var id=this._getId(schemaKeyRef);id&&(id=resolve.normalizeId(id),delete this._schemas[id],delete this._refs[id])}return this},Ajv.prototype.addFormat=function(name,format){"string"==typeof format&&(format=new RegExp(format));return this._formats[name]=format,this},Ajv.prototype.errorsText=function(errors,options){if(!(errors=errors||this.errors))return"No errors";for(var separator=void 0===(options=options||{}).separator?", ":options.separator,dataVar=void 0===options.dataVar?"data":options.dataVar,text="",i=0;i<errors.length;i++){var e=errors[i];e&&(text+=dataVar+e.dataPath+" "+e.message+separator)}return text.slice(0,-separator.length)},Ajv.prototype._addSchema=function(schema,skipValidation,meta,shouldAddSchema){if("object"!=typeof schema&&"boolean"!=typeof schema)throw new Error("schema should be object or boolean");var serialize=this._opts.serialize,cacheKey=serialize?serialize(schema):schema,cached=this._cache.get(cacheKey);if(cached)return cached;shouldAddSchema=shouldAddSchema||!1!==this._opts.addUsedSchema;var id=resolve.normalizeId(this._getId(schema));id&&shouldAddSchema&&checkUnique(this,id);var recursiveMeta,willValidate=!1!==this._opts.validateSchema&&!skipValidation;willValidate&&!(recursiveMeta=id&&id==resolve.normalizeId(schema.$schema))&&this.validateSchema(schema,!0);var localRefs=resolve.ids.call(this,schema),schemaObj=new SchemaObject({id:id,schema:schema,localRefs:localRefs,cacheKey:cacheKey,meta:meta});"#"!=id[0]&&shouldAddSchema&&(this._refs[id]=schemaObj);this._cache.put(cacheKey,schemaObj),willValidate&&recursiveMeta&&this.validateSchema(schema,!0);return schemaObj},Ajv.prototype._compile=function(schemaObj,root){if(schemaObj.compiling)return schemaObj.validate=callValidate,callValidate.schema=schemaObj.schema,callValidate.errors=null,callValidate.root=root||callValidate,!0===schemaObj.schema.$async&&(callValidate.$async=!0),callValidate;var currentOpts,v;schemaObj.compiling=!0,schemaObj.meta&&(currentOpts=this._opts,this._opts=this._metaOpts);try{v=compileSchema.call(this,schemaObj.schema,root,schemaObj.localRefs)}catch(e){throw delete schemaObj.validate,e}finally{schemaObj.compiling=!1,schemaObj.meta&&(this._opts=currentOpts)}return schemaObj.validate=v,schemaObj.refs=v.refs,schemaObj.refVal=v.refVal,schemaObj.root=v.root,v;function callValidate(){var _validate=schemaObj.validate,result=_validate.apply(this,arguments);return callValidate.errors=_validate.errors,result}},Ajv.prototype.compileAsync=require("./compile/async");var customKeyword=require("./keyword");Ajv.prototype.addKeyword=customKeyword.add,Ajv.prototype.getKeyword=customKeyword.get,Ajv.prototype.removeKeyword=customKeyword.remove,Ajv.prototype.validateKeyword=customKeyword.validate;var errorClasses=require("./compile/error_classes");Ajv.ValidationError=errorClasses.Validation,Ajv.MissingRefError=errorClasses.MissingRef,Ajv.$dataMetaSchema=$dataMetaSchema;var META_SCHEMA_ID="http://json-schema.org/draft-07/schema",META_IGNORE_OPTIONS=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],META_SUPPORT_DATA=["/properties"];function Ajv(opts){if(!(this instanceof Ajv))return new Ajv(opts);opts=this._opts=util.copy(opts)||{},function(self){var logger=self._opts.logger;if(!1===logger)self.logger={log:noop,warn:noop,error:noop};else{if(void 0===logger&&(logger=console),!("object"==typeof logger&&logger.log&&logger.warn&&logger.error))throw new Error("logger must implement log, warn and error methods");self.logger=logger}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=formats(opts.format),this._cache=opts.cache||new Cache,this._loadingSchemas={},this._compilations=[],this.RULES=rules(),this._getId=function(opts){switch(opts.schemaId){case"auto":return _get$IdOrId;case"id":return _getId;default:return _get$Id}}(opts),opts.loopRequired=opts.loopRequired||1/0,"property"==opts.errorDataPath&&(opts._errorDataPathProperty=!0),void 0===opts.serialize&&(opts.serialize=stableStringify),this._metaOpts=function(self){for(var metaOpts=util.copy(self._opts),i=0;i<META_IGNORE_OPTIONS.length;i++)delete metaOpts[META_IGNORE_OPTIONS[i]];return metaOpts}(this),opts.formats&&function(self){for(var name in self._opts.formats){var format=self._opts.formats[name];self.addFormat(name,format)}}(this),opts.keywords&&function(self){for(var name in self._opts.keywords){var keyword=self._opts.keywords[name];self.addKeyword(name,keyword)}}(this),function(self){var $dataSchema;self._opts.$data&&($dataSchema=require("./refs/data.json"),self.addMetaSchema($dataSchema,$dataSchema.$id,!0));if(!1===self._opts.meta)return;var metaSchema=require("./refs/json-schema-draft-07.json");self._opts.$data&&(metaSchema=$dataMetaSchema(metaSchema,META_SUPPORT_DATA));self.addMetaSchema(metaSchema,META_SCHEMA_ID,!0),self._refs["http://json-schema.org/schema"]=META_SCHEMA_ID}(this),"object"==typeof opts.meta&&this.addMetaSchema(opts.meta),opts.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(self){var optsSchemas=self._opts.schemas;if(!optsSchemas)return;if(Array.isArray(optsSchemas))self.addSchema(optsSchemas);else for(var key in optsSchemas)self.addSchema(optsSchemas[key],key)}(this)}function _getSchemaObj(self,keyRef){return keyRef=resolve.normalizeId(keyRef),self._schemas[keyRef]||self._refs[keyRef]||self._fragments[keyRef]}function _removeAllSchemas(self,schemas,regex){for(var keyRef in schemas){var schemaObj=schemas[keyRef];schemaObj.meta||regex&&!regex.test(keyRef)||(self._cache.del(schemaObj.cacheKey),delete schemas[keyRef])}}function _getId(schema){return schema.$id&&this.logger.warn("schema $id ignored",schema.$id),schema.id}function _get$Id(schema){return schema.id&&this.logger.warn("schema id ignored",schema.id),schema.$id}function _get$IdOrId(schema){if(schema.$id&&schema.id&&schema.$id!=schema.id)throw new Error("schema $id is different from id");return schema.$id||schema.id}function checkUnique(self,id){if(self._schemas[id]||self._refs[id])throw new Error('schema with key or id "'+id+'" already exists')}function noop(){}},{"./cache":61,"./compile":65,"./compile/async":62,"./compile/error_classes":63,"./compile/formats":64,"./compile/resolve":66,"./compile/rules":67,"./compile/schema_obj":68,"./compile/util":70,"./data":71,"./keyword":99,"./refs/data.json":100,"./refs/json-schema-draft-07.json":102,"fast-json-stable-stringify":233}],61:[function(require,module,exports){"use strict";var Cache=module.exports=function(){this._cache={}};Cache.prototype.put=function(key,value){this._cache[key]=value},Cache.prototype.get=function(key){return this._cache[key]},Cache.prototype.del=function(key){delete this._cache[key]},Cache.prototype.clear=function(){this._cache={}}},{}],62:[function(require,module,exports){"use strict";var MissingRefError=require("./error_classes").MissingRef;module.exports=function compileAsync(schema,meta,callback){var self=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof meta&&(callback=meta,meta=void 0);var p=loadMetaSchemaOf(schema).then((function(){var schemaObj=self._addSchema(schema,void 0,meta);return schemaObj.validate||_compileAsync(schemaObj)}));callback&&p.then((function(v){callback(null,v)}),callback);return p;function loadMetaSchemaOf(sch){var $schema=sch.$schema;return $schema&&!self.getSchema($schema)?compileAsync.call(self,{$ref:$schema},!0):Promise.resolve()}function _compileAsync(schemaObj){try{return self._compile(schemaObj)}catch(e){if(e instanceof MissingRefError)return function(e){var ref=e.missingSchema;if(added(ref))throw new Error("Schema "+ref+" is loaded but "+e.missingRef+" cannot be resolved");var schemaPromise=self._loadingSchemas[ref];schemaPromise||(schemaPromise=self._loadingSchemas[ref]=self._opts.loadSchema(ref)).then(removePromise,removePromise);return schemaPromise.then((function(sch){if(!added(ref))return loadMetaSchemaOf(sch).then((function(){added(ref)||self.addSchema(sch,ref,void 0,meta)}))})).then((function(){return _compileAsync(schemaObj)}));function removePromise(){delete self._loadingSchemas[ref]}function added(ref){return self._refs[ref]||self._schemas[ref]}}(e);throw e}}}},{"./error_classes":63}],63:[function(require,module,exports){"use strict";var resolve=require("./resolve");function MissingRefError(baseId,ref,message){this.message=message||MissingRefError.message(baseId,ref),this.missingRef=resolve.url(baseId,ref),this.missingSchema=resolve.normalizeId(resolve.fullPath(this.missingRef))}function errorSubclass(Subclass){return Subclass.prototype=Object.create(Error.prototype),Subclass.prototype.constructor=Subclass,Subclass}module.exports={Validation:errorSubclass((function(errors){this.message="validation failed",this.errors=errors,this.ajv=this.validation=!0})),MissingRef:errorSubclass(MissingRefError)},MissingRefError.message=function(baseId,ref){return"can't resolve reference "+ref+" from id "+baseId}},{"./resolve":66}],64:[function(require,module,exports){"use strict";var util=require("./util"),DATE=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,DAYS=[0,31,28,31,30,31,30,31,31,30,31,30,31],TIME=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,HOSTNAME=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,URI=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,URITEMPLATE=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,URL=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,UUID=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,JSON_POINTER=/^(?:\/(?:[^~/]|~0|~1)*)*$/,JSON_POINTER_URI_FRAGMENT=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,RELATIVE_JSON_POINTER=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function formats(mode){return mode="full"==mode?"full":"fast",util.copy(formats[mode])}function date(str){var matches=str.match(DATE);if(!matches)return!1;var year=+matches[1],month=+matches[2],day=+matches[3];return month>=1&&month<=12&&day>=1&&day<=(2==month&&function(year){return year%4==0&&(year%100!=0||year%400==0)}(year)?29:DAYS[month])}function time(str,full){var matches=str.match(TIME);if(!matches)return!1;var hour=matches[1],minute=matches[2],second=matches[3],timeZone=matches[5];return(hour<=23&&minute<=59&&second<=59||23==hour&&59==minute&&60==second)&&(!full||timeZone)}module.exports=formats,formats.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":URITEMPLATE,url:URL,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:HOSTNAME,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:regex,uuid:UUID,"json-pointer":JSON_POINTER,"json-pointer-uri-fragment":JSON_POINTER_URI_FRAGMENT,"relative-json-pointer":RELATIVE_JSON_POINTER},formats.full={date:date,time:time,"date-time":function(str){var dateTime=str.split(DATE_TIME_SEPARATOR);return 2==dateTime.length&&date(dateTime[0])&&time(dateTime[1],!0)},uri:function(str){return NOT_URI_FRAGMENT.test(str)&&URI.test(str)},"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":URITEMPLATE,url:URL,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:HOSTNAME,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:regex,uuid:UUID,"json-pointer":JSON_POINTER,"json-pointer-uri-fragment":JSON_POINTER_URI_FRAGMENT,"relative-json-pointer":RELATIVE_JSON_POINTER};var DATE_TIME_SEPARATOR=/t|\s/i;var NOT_URI_FRAGMENT=/\/|:/;var Z_ANCHOR=/[^\\]\\Z/;function regex(str){if(Z_ANCHOR.test(str))return!1;try{return new RegExp(str),!0}catch(e){return!1}}},{"./util":70}],65:[function(require,module,exports){"use strict";var resolve=require("./resolve"),util=require("./util"),errorClasses=require("./error_classes"),stableStringify=require("fast-json-stable-stringify"),validateGenerator=require("../dotjs/validate"),ucs2length=util.ucs2length,equal=require("fast-deep-equal"),ValidationError=errorClasses.Validation;function checkCompiling(schema,root,baseId){var index=compIndex.call(this,schema,root,baseId);return index>=0?{index:index,compiling:!0}:(index=this._compilations.length,this._compilations[index]={schema:schema,root:root,baseId:baseId},{index:index,compiling:!1})}function endCompiling(schema,root,baseId){var i=compIndex.call(this,schema,root,baseId);i>=0&&this._compilations.splice(i,1)}function compIndex(schema,root,baseId){for(var i=0;i<this._compilations.length;i++){var c=this._compilations[i];if(c.schema==schema&&c.root==root&&c.baseId==baseId)return i}return-1}function patternCode(i,patterns){return"var pattern"+i+" = new RegExp("+util.toQuotedString(patterns[i])+");"}function defaultCode(i){return"var default"+i+" = defaults["+i+"];"}function refValCode(i,refVal){return void 0===refVal[i]?"":"var refVal"+i+" = refVal["+i+"];"}function customRuleCode(i){return"var customRule"+i+" = customRules["+i+"];"}function vars(arr,statement){if(!arr.length)return"";for(var code="",i=0;i<arr.length;i++)code+=statement(i,arr);return code}module.exports=function compile(schema,root,localRefs,baseId){var self=this,opts=this._opts,refVal=[void 0],refs={},patterns=[],patternsHash={},defaults=[],defaultsHash={},customRules=[];root=root||{schema:schema,refVal:refVal,refs:refs};var c=checkCompiling.call(this,schema,root,baseId),compilation=this._compilations[c.index];if(c.compiling)return compilation.callValidate=function callValidate(){var validate=compilation.validate,result=validate.apply(this,arguments);return callValidate.errors=validate.errors,result};var formats=this._formats,RULES=this.RULES;try{var v=localCompile(schema,root,localRefs,baseId);compilation.validate=v;var cv=compilation.callValidate;return cv&&(cv.schema=v.schema,cv.errors=null,cv.refs=v.refs,cv.refVal=v.refVal,cv.root=v.root,cv.$async=v.$async,opts.sourceCode&&(cv.source=v.source)),v}finally{endCompiling.call(this,schema,root,baseId)}function localCompile(_schema,_root,localRefs,baseId){var isRoot=!_root||_root&&_root.schema==_schema;if(_root.schema!=root.schema)return compile.call(self,_schema,_root,localRefs,baseId);var validate,$async=!0===_schema.$async,sourceCode=validateGenerator({isTop:!0,schema:_schema,isRoot:isRoot,baseId:baseId,root:_root,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:errorClasses.MissingRef,RULES:RULES,validate:validateGenerator,util:util,resolve:resolve,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:opts,formats:formats,logger:self.logger,self:self});sourceCode=vars(refVal,refValCode)+vars(patterns,patternCode)+vars(defaults,defaultCode)+vars(customRules,customRuleCode)+sourceCode,opts.processCode&&(sourceCode=opts.processCode(sourceCode,_schema));try{validate=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",sourceCode)(self,RULES,formats,root,refVal,defaults,customRules,equal,ucs2length,ValidationError),refVal[0]=validate}catch(e){throw self.logger.error("Error compiling schema, function code:",sourceCode),e}return validate.schema=_schema,validate.errors=null,validate.refs=refs,validate.refVal=refVal,validate.root=isRoot?validate:_root,$async&&(validate.$async=!0),!0===opts.sourceCode&&(validate.source={code:sourceCode,patterns:patterns,defaults:defaults}),validate}function resolveRef(baseId,ref,isRoot){ref=resolve.url(baseId,ref);var _refVal,refCode,refIndex=refs[ref];if(void 0!==refIndex)return resolvedRef(_refVal=refVal[refIndex],refCode="refVal["+refIndex+"]");if(!isRoot&&root.refs){var rootRefId=root.refs[ref];if(void 0!==rootRefId)return resolvedRef(_refVal=root.refVal[rootRefId],refCode=addLocalRef(ref,_refVal))}refCode=addLocalRef(ref);var v=resolve.call(self,localCompile,root,ref);if(void 0===v){var localSchema=localRefs&&localRefs[ref];localSchema&&(v=resolve.inlineRef(localSchema,opts.inlineRefs)?localSchema:compile.call(self,localSchema,root,localRefs,baseId))}if(void 0!==v)return function(ref,v){var refId=refs[ref];refVal[refId]=v}(ref,v),resolvedRef(v,refCode);!function(ref){delete refs[ref]}(ref)}function addLocalRef(ref,v){var refId=refVal.length;return refVal[refId]=v,refs[ref]=refId,"refVal"+refId}function resolvedRef(refVal,code){return"object"==typeof refVal||"boolean"==typeof refVal?{code:code,schema:refVal,inline:!0}:{code:code,$async:refVal&&!!refVal.$async}}function usePattern(regexStr){var index=patternsHash[regexStr];return void 0===index&&(index=patternsHash[regexStr]=patterns.length,patterns[index]=regexStr),"pattern"+index}function useDefault(value){switch(typeof value){case"boolean":case"number":return""+value;case"string":return util.toQuotedString(value);case"object":if(null===value)return"null";var valueStr=stableStringify(value),index=defaultsHash[valueStr];return void 0===index&&(index=defaultsHash[valueStr]=defaults.length,defaults[index]=value),"default"+index}}function useCustomRule(rule,schema,parentSchema,it){if(!1!==self._opts.validateSchema){var deps=rule.definition.dependencies;if(deps&&!deps.every((function(keyword){return Object.prototype.hasOwnProperty.call(parentSchema,keyword)})))throw new Error("parent schema must have all required keywords: "+deps.join(","));var validateSchema=rule.definition.validateSchema;if(validateSchema)if(!validateSchema(schema)){var message="keyword schema is invalid: "+self.errorsText(validateSchema.errors);if("log"!=self._opts.validateSchema)throw new Error(message);self.logger.error(message)}}var validate,compile=rule.definition.compile,inline=rule.definition.inline,macro=rule.definition.macro;if(compile)validate=compile.call(self,schema,parentSchema,it);else if(macro)validate=macro.call(self,schema,parentSchema,it),!1!==opts.validateSchema&&self.validateSchema(validate,!0);else if(inline)validate=inline.call(self,it,rule.keyword,schema,parentSchema);else if(!(validate=rule.definition.validate))return;if(void 0===validate)throw new Error('custom keyword "'+rule.keyword+'"failed to compile');var index=customRules.length;return customRules[index]=validate,{code:"customRule"+index,validate:validate}}}},{"../dotjs/validate":98,"./error_classes":63,"./resolve":66,"./util":70,"fast-deep-equal":232,"fast-json-stable-stringify":233}],66:[function(require,module,exports){"use strict";var URI=require("uri-js"),equal=require("fast-deep-equal"),util=require("./util"),SchemaObject=require("./schema_obj"),traverse=require("json-schema-traverse");function resolve(compile,root,ref){var refVal=this._refs[ref];if("string"==typeof refVal){if(!this._refs[refVal])return resolve.call(this,compile,root,refVal);refVal=this._refs[refVal]}if((refVal=refVal||this._schemas[ref])instanceof SchemaObject)return inlineRef(refVal.schema,this._opts.inlineRefs)?refVal.schema:refVal.validate||this._compile(refVal);var schema,v,baseId,res=resolveSchema.call(this,root,ref);return res&&(schema=res.schema,root=res.root,baseId=res.baseId),schema instanceof SchemaObject?v=schema.validate||compile.call(this,schema.schema,root,void 0,baseId):void 0!==schema&&(v=inlineRef(schema,this._opts.inlineRefs)?schema:compile.call(this,schema,root,void 0,baseId)),v}function resolveSchema(root,ref){var p=URI.parse(ref),refPath=_getFullPath(p),baseId=getFullPath(this._getId(root.schema));if(0===Object.keys(root.schema).length||refPath!==baseId){var id=normalizeId(refPath),refVal=this._refs[id];if("string"==typeof refVal)return resolveRecursive.call(this,root,refVal,p);if(refVal instanceof SchemaObject)refVal.validate||this._compile(refVal),root=refVal;else{if(!((refVal=this._schemas[id])instanceof SchemaObject))return;if(refVal.validate||this._compile(refVal),id==normalizeId(ref))return{schema:refVal,root:root,baseId:baseId};root=refVal}if(!root.schema)return;baseId=getFullPath(this._getId(root.schema))}return getJsonPointer.call(this,p,baseId,root.schema,root)}function resolveRecursive(root,ref,parsedRef){var res=resolveSchema.call(this,root,ref);if(res){var schema=res.schema,baseId=res.baseId;root=res.root;var id=this._getId(schema);return id&&(baseId=resolveUrl(baseId,id)),getJsonPointer.call(this,parsedRef,baseId,schema,root)}}module.exports=resolve,resolve.normalizeId=normalizeId,resolve.fullPath=getFullPath,resolve.url=resolveUrl,resolve.ids=function(schema){var schemaId=normalizeId(this._getId(schema)),baseIds={"":schemaId},fullPaths={"":getFullPath(schemaId,!1)},localRefs={},self=this;return traverse(schema,{allKeys:!0},(function(sch,jsonPtr,rootSchema,parentJsonPtr,parentKeyword,parentSchema,keyIndex){if(""!==jsonPtr){var id=self._getId(sch),baseId=baseIds[parentJsonPtr],fullPath=fullPaths[parentJsonPtr]+"/"+parentKeyword;if(void 0!==keyIndex&&(fullPath+="/"+("number"==typeof keyIndex?keyIndex:util.escapeFragment(keyIndex))),"string"==typeof id){id=baseId=normalizeId(baseId?URI.resolve(baseId,id):id);var refVal=self._refs[id];if("string"==typeof refVal&&(refVal=self._refs[refVal]),refVal&&refVal.schema){if(!equal(sch,refVal.schema))throw new Error('id "'+id+'" resolves to more than one schema')}else if(id!=normalizeId(fullPath))if("#"==id[0]){if(localRefs[id]&&!equal(sch,localRefs[id]))throw new Error('id "'+id+'" resolves to more than one schema');localRefs[id]=sch}else self._refs[id]=fullPath}baseIds[jsonPtr]=baseId,fullPaths[jsonPtr]=fullPath}})),localRefs},resolve.inlineRef=inlineRef,resolve.schema=resolveSchema;var PREVENT_SCOPE_CHANGE=util.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(parsedRef,baseId,schema,root){if(parsedRef.fragment=parsedRef.fragment||"","/"==parsedRef.fragment.slice(0,1)){for(var parts=parsedRef.fragment.split("/"),i=1;i<parts.length;i++){var part=parts[i];if(part){if(void 0===(schema=schema[part=util.unescapeFragment(part)]))break;var id;if(!PREVENT_SCOPE_CHANGE[part]&&((id=this._getId(schema))&&(baseId=resolveUrl(baseId,id)),schema.$ref)){var $ref=resolveUrl(baseId,schema.$ref),res=resolveSchema.call(this,root,$ref);res&&(schema=res.schema,root=res.root,baseId=res.baseId)}}}return void 0!==schema&&schema!==root.schema?{schema:schema,root:root,baseId:baseId}:void 0}}var SIMPLE_INLINED=util.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function inlineRef(schema,limit){return!1!==limit&&(void 0===limit||!0===limit?checkNoRef(schema):limit?countKeys(schema)<=limit:void 0)}function checkNoRef(schema){var item;if(Array.isArray(schema)){for(var i=0;i<schema.length;i++)if("object"==typeof(item=schema[i])&&!checkNoRef(item))return!1}else for(var key in schema){if("$ref"==key)return!1;if("object"==typeof(item=schema[key])&&!checkNoRef(item))return!1}return!0}function countKeys(schema){var item,count=0;if(Array.isArray(schema)){for(var i=0;i<schema.length;i++)if("object"==typeof(item=schema[i])&&(count+=countKeys(item)),count==1/0)return 1/0}else for(var key in schema){if("$ref"==key)return 1/0;if(SIMPLE_INLINED[key])count++;else if("object"==typeof(item=schema[key])&&(count+=countKeys(item)+1),count==1/0)return 1/0}return count}function getFullPath(id,normalize){return!1!==normalize&&(id=normalizeId(id)),_getFullPath(URI.parse(id))}function _getFullPath(p){return URI.serialize(p).split("#")[0]+"#"}var TRAILING_SLASH_HASH=/#\/?$/;function normalizeId(id){return id?id.replace(TRAILING_SLASH_HASH,""):""}function resolveUrl(baseId,id){return id=normalizeId(id),URI.resolve(baseId,id)}},{"./schema_obj":68,"./util":70,"fast-deep-equal":232,"json-schema-traverse":300,"uri-js":501}],67:[function(require,module,exports){"use strict";var ruleModules=require("../dotjs"),toHash=require("./util").toHash;module.exports=function(){var RULES=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],ALL=["type","$comment"];return RULES.all=toHash(ALL),RULES.types=toHash(["number","integer","string","array","object","boolean","null"]),RULES.forEach((function(group){group.rules=group.rules.map((function(keyword){var implKeywords;if("object"==typeof keyword){var key=Object.keys(keyword)[0];implKeywords=keyword[key],keyword=key,implKeywords.forEach((function(k){ALL.push(k),RULES.all[k]=!0}))}return ALL.push(keyword),RULES.all[keyword]={keyword:keyword,code:ruleModules[keyword],implements:implKeywords}})),RULES.all.$comment={keyword:"$comment",code:ruleModules.$comment},group.type&&(RULES.types[group.type]=group)})),RULES.keywords=toHash(ALL.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),RULES.custom={},RULES}},{"../dotjs":87,"./util":70}],68:[function(require,module,exports){"use strict";var util=require("./util");module.exports=function(obj){util.copy(obj,this)}},{"./util":70}],69:[function(require,module,exports){"use strict";module.exports=function(str){for(var value,length=0,len=str.length,pos=0;pos<len;)length++,(value=str.charCodeAt(pos++))>=55296&&value<=56319&&pos<len&&56320==(64512&(value=str.charCodeAt(pos)))&&pos++;return length}},{}],70:[function(require,module,exports){"use strict";function checkDataType(dataType,data,strictNumbers,negate){var EQUAL=negate?" !== ":" === ",AND=negate?" || ":" && ",OK=negate?"!":"",NOT=negate?"":"!";switch(dataType){case"null":return data+EQUAL+"null";case"array":return OK+"Array.isArray("+data+")";case"object":return"("+OK+data+AND+"typeof "+data+EQUAL+'"object"'+AND+NOT+"Array.isArray("+data+"))";case"integer":return"(typeof "+data+EQUAL+'"number"'+AND+NOT+"("+data+" % 1)"+AND+data+EQUAL+data+(strictNumbers?AND+OK+"isFinite("+data+")":"")+")";case"number":return"(typeof "+data+EQUAL+'"'+dataType+'"'+(strictNumbers?AND+OK+"isFinite("+data+")":"")+")";default:return"typeof "+data+EQUAL+'"'+dataType+'"'}}module.exports={copy:function(o,to){for(var key in to=to||{},o)to[key]=o[key];return to},checkDataType:checkDataType,checkDataTypes:function(dataTypes,data,strictNumbers){switch(dataTypes.length){case 1:return checkDataType(dataTypes[0],data,strictNumbers,!0);default:var code="",types=toHash(dataTypes);for(var t in types.array&&types.object&&(code=types.null?"(":"(!"+data+" || ",code+="typeof "+data+' !== "object")',delete types.null,delete types.array,delete types.object),types.number&&delete types.integer,types)code+=(code?" && ":"")+checkDataType(t,data,strictNumbers,!0);return code}},coerceToTypes:function(optionCoerceTypes,dataTypes){if(Array.isArray(dataTypes)){for(var types=[],i=0;i<dataTypes.length;i++){var t=dataTypes[i];(COERCE_TO_TYPES[t]||"array"===optionCoerceTypes&&"array"===t)&&(types[types.length]=t)}if(types.length)return types}else{if(COERCE_TO_TYPES[dataTypes])return[dataTypes];if("array"===optionCoerceTypes&&"array"===dataTypes)return["array"]}},toHash:toHash,getProperty:getProperty,escapeQuotes:escapeQuotes,equal:require("fast-deep-equal"),ucs2length:require("./ucs2length"),varOccurences:function(str,dataVar){dataVar+="[^0-9]";var matches=str.match(new RegExp(dataVar,"g"));return matches?matches.length:0},varReplace:function(str,dataVar,expr){return dataVar+="([^0-9])",expr=expr.replace(/\$/g,"$$$$"),str.replace(new RegExp(dataVar,"g"),expr+"$1")},schemaHasRules:function(schema,rules){if("boolean"==typeof schema)return!schema;for(var key in schema)if(rules[key])return!0},schemaHasRulesExcept:function(schema,rules,exceptKeyword){if("boolean"==typeof schema)return!schema&&"not"!=exceptKeyword;for(var key in schema)if(key!=exceptKeyword&&rules[key])return!0},schemaUnknownRules:function(schema,rules){if("boolean"==typeof schema)return;for(var key in schema)if(!rules[key])return key},toQuotedString:toQuotedString,getPathExpr:function(currentPath,expr,jsonPointers,isNumber){return joinPaths(currentPath,jsonPointers?"'/' + "+expr+(isNumber?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):isNumber?"'[' + "+expr+" + ']'":"'[\\'' + "+expr+" + '\\']'")},getPath:function(currentPath,prop,jsonPointers){var path=toQuotedString(jsonPointers?"/"+escapeJsonPointer(prop):getProperty(prop));return joinPaths(currentPath,path)},getData:function($data,lvl,paths){var up,jsonPointer,data,matches;if(""===$data)return"rootData";if("/"==$data[0]){if(!JSON_POINTER.test($data))throw new Error("Invalid JSON-pointer: "+$data);jsonPointer=$data,data="rootData"}else{if(!(matches=$data.match(RELATIVE_JSON_POINTER)))throw new Error("Invalid JSON-pointer: "+$data);if(up=+matches[1],"#"==(jsonPointer=matches[2])){if(up>=lvl)throw new Error("Cannot access property/index "+up+" levels up, current level is "+lvl);return paths[lvl-up]}if(up>lvl)throw new Error("Cannot access data "+up+" levels up, current level is "+lvl);if(data="data"+(lvl-up||""),!jsonPointer)return data}for(var expr=data,segments=jsonPointer.split("/"),i=0;i<segments.length;i++){var segment=segments[i];segment&&(data+=getProperty(unescapeJsonPointer(segment)),expr+=" && "+data)}return expr},unescapeFragment:function(str){return unescapeJsonPointer(decodeURIComponent(str))},unescapeJsonPointer:unescapeJsonPointer,escapeFragment:function(str){return encodeURIComponent(escapeJsonPointer(str))},escapeJsonPointer:escapeJsonPointer};var COERCE_TO_TYPES=toHash(["string","number","integer","boolean","null"]);function toHash(arr){for(var hash={},i=0;i<arr.length;i++)hash[arr[i]]=!0;return hash}var IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i,SINGLE_QUOTE=/'|\\/g;function getProperty(key){return"number"==typeof key?"["+key+"]":IDENTIFIER.test(key)?"."+key:"['"+escapeQuotes(key)+"']"}function escapeQuotes(str){return str.replace(SINGLE_QUOTE,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function toQuotedString(str){return"'"+escapeQuotes(str)+"'"}var JSON_POINTER=/^\/(?:[^~]|~0|~1)*$/,RELATIVE_JSON_POINTER=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function joinPaths(a,b){return'""'==a?b:(a+" + "+b).replace(/([^\\])' \+ '/g,"$1")}function escapeJsonPointer(str){return str.replace(/~/g,"~0").replace(/\//g,"~1")}function unescapeJsonPointer(str){return str.replace(/~1/g,"/").replace(/~0/g,"~")}},{"./ucs2length":69,"fast-deep-equal":232}],71:[function(require,module,exports){"use strict";var KEYWORDS=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];module.exports=function(metaSchema,keywordsJsonPointers){for(var i=0;i<keywordsJsonPointers.length;i++){metaSchema=JSON.parse(JSON.stringify(metaSchema));var j,segments=keywordsJsonPointers[i].split("/"),keywords=metaSchema;for(j=1;j<segments.length;j++)keywords=keywords[segments[j]];for(j=0;j<KEYWORDS.length;j++){var key=KEYWORDS[j],schema=keywords[key];schema&&(keywords[key]={anyOf:[schema,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return metaSchema}},{}],72:[function(require,module,exports){"use strict";var metaSchema=require("./refs/json-schema-draft-07.json");module.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:metaSchema.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:metaSchema.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},{"./refs/json-schema-draft-07.json":102}],73:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema;var $isMax="maximum"==$keyword,$exclusiveKeyword=$isMax?"exclusiveMaximum":"exclusiveMinimum",$schemaExcl=it.schema[$exclusiveKeyword],$isDataExcl=it.opts.$data&&$schemaExcl&&$schemaExcl.$data,$op=$isMax?"<":">",$notOp=$isMax?">":"<",$errorKeyword=void 0;if(!$isData&&"number"!=typeof $schema&&void 0!==$schema)throw new Error($keyword+" must be number");if(!$isDataExcl&&void 0!==$schemaExcl&&"number"!=typeof $schemaExcl&&"boolean"!=typeof $schemaExcl)throw new Error($exclusiveKeyword+" must be number or boolean");if($isDataExcl){var $schemaValueExcl=it.util.getData($schemaExcl.$data,$dataLvl,it.dataPathArr),$exclusive="exclusive"+$lvl,$exclType="exclType"+$lvl,$exclIsNumber="exclIsNumber"+$lvl,$opStr="' + "+($opExpr="op"+$lvl)+" + '";out+=" var schemaExcl"+$lvl+" = "+$schemaValueExcl+"; ",out+=" var "+$exclusive+"; var "+$exclType+" = typeof "+($schemaValueExcl="schemaExcl"+$lvl)+"; if ("+$exclType+" != 'boolean' && "+$exclType+" != 'undefined' && "+$exclType+" != 'number') { ";var $$outStack;$errorKeyword=$exclusiveKeyword;($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: '"+$exclusiveKeyword+" should be boolean' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),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+"='; ",void 0===$schema&&($errorKeyword=$exclusiveKeyword,$errSchemaPath=it.errSchemaPath+"/"+$exclusiveKeyword,$schemaValue=$schemaValueExcl,$isData=$isDataExcl)}else{$opStr=$op;if(($exclIsNumber="number"==typeof $schemaExcl)&&$isData){var $opExpr="'"+$opStr+"'";out+=" if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" ( "+$schemaValue+" === undefined || "+$schemaExcl+" "+$op+"= "+$schemaValue+" ? "+$data+" "+$notOp+"= "+$schemaExcl+" : "+$data+" "+$notOp+" "+$schemaValue+" ) || "+$data+" !== "+$data+") { "}else{$exclIsNumber&&void 0===$schema?($exclusive=!0,$errorKeyword=$exclusiveKeyword,$errSchemaPath=it.errSchemaPath+"/"+$exclusiveKeyword,$schemaValue=$schemaExcl,$notOp+="="):($exclIsNumber&&($schemaValue=Math[$isMax?"min":"max"]($schemaExcl,$schema)),$schemaExcl===(!$exclIsNumber||$schemaValue)?($exclusive=!0,$errorKeyword=$exclusiveKeyword,$errSchemaPath=it.errSchemaPath+"/"+$exclusiveKeyword,$notOp+="="):($exclusive=!1,$opStr+="="));$opExpr="'"+$opStr+"'";out+=" if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" "+$data+" "+$notOp+" "+$schemaValue+" || "+$data+" !== "+$data+") { "}}$errorKeyword=$errorKeyword||$keyword,($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limit")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { comparison: "+$opExpr+", limit: "+$schemaValue+", exclusive: "+$exclusive+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be "+$opStr+" ",out+=$isData?"' + "+$schemaValue:$schemaValue+"'"),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$breakOnError&&(out+=" else { "),out}},{}],74:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" "+$data+".length "+("maxItems"==$keyword?">":"<")+" "+$schemaValue+") { ";var $errorKeyword=$keyword,$$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limitItems")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have ",out+="maxItems"==$keyword?"more":"fewer",out+=" than ",out+=$isData?"' + "+$schemaValue+" + '":""+$schema,out+=" items' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],75:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");var $op="maxLength"==$keyword?">":"<";out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),!1===it.opts.unicode?out+=" "+$data+".length ":out+=" ucs2length("+$data+") ",out+=" "+$op+" "+$schemaValue+") { ";var $errorKeyword=$keyword,$$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limitLength")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT be ",out+="maxLength"==$keyword?"longer":"shorter",out+=" than ",out+=$isData?"' + "+$schemaValue+" + '":""+$schema,out+=" characters' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],76:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" Object.keys("+$data+").length "+("maxProperties"==$keyword?">":"<")+" "+$schemaValue+") { ";var $errorKeyword=$keyword,$$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limitProperties")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have ",out+="maxProperties"==$keyword?"more":"fewer",out+=" than ",out+=$isData?"' + "+$schemaValue+" + '":""+$schema,out+=" properties' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],77:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$currentBaseId=$it.baseId,$allSchemasEmpty=!0,arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)$sch=arr1[$i+=1],(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all))&&($allSchemasEmpty=!1,$it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}"));return $breakOnError&&(out+=$allSchemasEmpty?" if (true) { ":" "+$closingBraces.slice(0,-1)+" "),out}},{}],78:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level;if($schema.every((function($sch){return it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)}))){var $currentBaseId=$it.baseId;out+=" var "+$errs+" = errors; var "+$valid+" = false; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)$sch=arr1[$i+=1],$it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" "+$valid+" = "+$valid+" || "+$nextValid+"; if (!"+$valid+") { ",$closingBraces+="}";it.compositeRule=$it.compositeRule=$wasComposite,out+=" "+$closingBraces+" if (!"+$valid+") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should match some schema in anyOf' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),out+=" } else { errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } ",it.opts.allErrors&&(out+=" } ")}else $breakOnError&&(out+=" if (true) { ");return out}},{}],79:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$schema=it.schema[$keyword],$errSchemaPath=it.errSchemaPath+"/"+$keyword,$comment=(it.opts.allErrors,it.util.toQuotedString($schema));return!0===it.opts.$comment?out+=" console.log("+$comment+");":"function"==typeof it.opts.$comment&&(out+=" self._opts.$comment("+$comment+", "+it.util.toQuotedString($errSchemaPath)+", validate.root.schema);"),out}},{}],80:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData&&(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; "),$isData||(out+=" var schema"+$lvl+" = validate.schema"+$schemaPath+";"),out+="var "+$valid+" = equal("+$data+", schema"+$lvl+"); if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'const' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { allowedValue: schema"+$lvl+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be equal to constant' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" }",$breakOnError&&(out+=" else { "),out}},{}],81:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level,$idx="i"+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData="data"+$dataNxt,$currentBaseId=it.baseId,$nonEmptySchema=it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all);if(out+="var "+$errs+" = errors;var "+$valid+";",$nonEmptySchema){var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" var "+$nextValid+" = false; for (var "+$idx+" = 0; "+$idx+" < "+$data+".length; "+$idx+"++) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,!0);var $passData=$data+"["+$idx+"]";$it.dataPathArr[$dataNxt]=$idx;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",out+=" if ("+$nextValid+") break; } ",it.compositeRule=$it.compositeRule=$wasComposite,out+=" if (!"+$nextValid+") {"}else out+=" if ("+$data+".length == 0) {";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should contain a valid item' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { ",$nonEmptySchema&&(out+=" errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } "),it.opts.allErrors&&(out+=" } "),out}},{}],82:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $errorKeyword,$schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema;var $compile,$inline,$macro,$ruleValidate,$validateCode,$definition="definition"+$lvl,$rDef=this.definition,$closingBraces="";if($isData&&$rDef.$data){$validateCode="keywordValidate"+$lvl;var $validateSchema=$rDef.validateSchema;out+=" var "+$definition+" = RULES.custom['"+$keyword+"'].definition; var "+$validateCode+" = "+$definition+".validate;"}else{if(!($ruleValidate=it.useCustomRule(this,$schema,it.schema,it)))return;$schemaValue="validate.schema"+$schemaPath,$validateCode=$ruleValidate.code,$compile=$rDef.compile,$inline=$rDef.inline,$macro=$rDef.macro}var $ruleErrs=$validateCode+".errors",$i="i"+$lvl,$ruleErr="ruleErr"+$lvl,$asyncKeyword=$rDef.async;if($asyncKeyword&&!it.async)throw new Error("async keyword in sync schema");if($inline||$macro||(out+=$ruleErrs+" = null;"),out+="var "+$errs+" = errors;var "+$valid+";",$isData&&$rDef.$data&&($closingBraces+="}",out+=" if ("+$schemaValue+" === undefined) { "+$valid+" = true; } else { ",$validateSchema&&($closingBraces+="}",out+=" "+$valid+" = "+$definition+".validateSchema("+$schemaValue+"); if ("+$valid+") { ")),$inline)$rDef.statements?out+=" "+$ruleValidate.validate+" ":out+=" "+$valid+" = "+$ruleValidate.validate+"; ";else if($macro){var $it=it.util.copy(it);$closingBraces="";$it.level++;var $nextValid="valid"+$it.level;$it.schema=$ruleValidate.validate,$it.schemaPath="";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var $code=it.validate($it).replace(/validate\.schema/g,$validateCode);it.compositeRule=$it.compositeRule=$wasComposite,out+=" "+$code}else{($$outStack=$$outStack||[]).push(out),out="",out+=" "+$validateCode+".call( ",it.opts.passContext?out+="this":out+="self",$compile||!1===$rDef.schema?out+=" , "+$data+" ":out+=" , "+$schemaValue+" , "+$data+" , validate.schema"+it.schemaPath+" ",out+=" , (dataPath || '')",'""'!=it.errorPath&&(out+=" + "+it.errorPath);var $parentData=$dataLvl?"data"+($dataLvl-1||""):"parentData",$parentDataProperty=$dataLvl?it.dataPathArr[$dataLvl]:"parentDataProperty",def_callRuleValidate=out+=" , "+$parentData+" , "+$parentDataProperty+" , rootData ) ";out=$$outStack.pop(),!1===$rDef.errors?(out+=" "+$valid+" = ",$asyncKeyword&&(out+="await "),out+=def_callRuleValidate+"; "):out+=$asyncKeyword?" var "+($ruleErrs="customErrors"+$lvl)+" = null; try { "+$valid+" = await "+def_callRuleValidate+"; } catch (e) { "+$valid+" = false; if (e instanceof ValidationError) "+$ruleErrs+" = e.errors; else throw e; } ":" "+$ruleErrs+" = null; "+$valid+" = "+def_callRuleValidate+"; "}if($rDef.modifying&&(out+=" if ("+$parentData+") "+$data+" = "+$parentData+"["+$parentDataProperty+"];"),out+=""+$closingBraces,$rDef.valid)$breakOnError&&(out+=" if (true) { ");else{var $$outStack;out+=" if ( ",void 0===$rDef.valid?(out+=" !",out+=$macro?""+$nextValid:""+$valid):out+=" "+!$rDef.valid+" ",out+=") { ",$errorKeyword=this.keyword,($$outStack=$$outStack||[]).push(out),out="",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"custom")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { keyword: '"+this.keyword+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var def_customError=out;out=$$outStack.pop(),$inline?$rDef.errors?"full"!=$rDef.errors&&(out+=" for (var "+$i+"="+$errs+"; "+$i+"<errors; "+$i+"++) { var "+$ruleErr+" = vErrors["+$i+"]; if ("+$ruleErr+".dataPath === undefined) "+$ruleErr+".dataPath = (dataPath || '') + "+it.errorPath+"; if ("+$ruleErr+".schemaPath === undefined) { "+$ruleErr+'.schemaPath = "'+$errSchemaPath+'"; } ',it.opts.verbose&&(out+=" "+$ruleErr+".schema = "+$schemaValue+"; "+$ruleErr+".data = "+$data+"; "),out+=" } "):!1===$rDef.errors?out+=" "+def_customError+" ":(out+=" if ("+$errs+" == errors) { "+def_customError+" } else { for (var "+$i+"="+$errs+"; "+$i+"<errors; "+$i+"++) { var "+$ruleErr+" = vErrors["+$i+"]; if ("+$ruleErr+".dataPath === undefined) "+$ruleErr+".dataPath = (dataPath || '') + "+it.errorPath+"; if ("+$ruleErr+".schemaPath === undefined) { "+$ruleErr+'.schemaPath = "'+$errSchemaPath+'"; } ',it.opts.verbose&&(out+=" "+$ruleErr+".schema = "+$schemaValue+"; "+$ruleErr+".data = "+$data+"; "),out+=" } } "):$macro?(out+=" var err = ",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"custom")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { keyword: '"+this.keyword+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; ")):!1===$rDef.errors?out+=" "+def_customError+" ":(out+=" if (Array.isArray("+$ruleErrs+")) { if (vErrors === null) vErrors = "+$ruleErrs+"; else vErrors = vErrors.concat("+$ruleErrs+"); errors = vErrors.length; for (var "+$i+"="+$errs+"; "+$i+"<errors; "+$i+"++) { var "+$ruleErr+" = vErrors["+$i+"]; if ("+$ruleErr+".dataPath === undefined) "+$ruleErr+".dataPath = (dataPath || '') + "+it.errorPath+"; "+$ruleErr+'.schemaPath = "'+$errSchemaPath+'"; ',it.opts.verbose&&(out+=" "+$ruleErr+".schema = "+$schemaValue+"; "+$ruleErr+".data = "+$data+"; "),out+=" } } else { "+def_customError+" } "),out+=" } ",$breakOnError&&(out+=" else { ")}return out}},{}],83:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$schemaDeps={},$propertyDeps={},$ownProperties=it.opts.ownProperties;for($property in $schema)if("__proto__"!=$property){var $sch=$schema[$property],$deps=Array.isArray($sch)?$propertyDeps:$schemaDeps;$deps[$property]=$sch}out+="var "+$errs+" = errors;";var $currentErrorPath=it.errorPath;for(var $property in out+="var missing"+$lvl+";",$propertyDeps)if(($deps=$propertyDeps[$property]).length){if(out+=" if ( "+$data+it.util.getProperty($property)+" !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($property)+"') "),$breakOnError){out+=" && ( ";var arr1=$deps;if(arr1)for(var $i=-1,l1=arr1.length-1;$i<l1;){$propertyKey=arr1[$i+=1],$i&&(out+=" || "),out+=" ( ( "+($useData=$data+($prop=it.util.getProperty($propertyKey)))+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") && (missing"+$lvl+" = "+it.util.toQuotedString(it.opts.jsonPointers?$propertyKey:$prop)+") ) "}out+=")) { ";var $propertyPath="missing"+$lvl,$missingProperty="' + "+$propertyPath+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.opts.jsonPointers?it.util.getPathExpr($currentErrorPath,$propertyPath,!0):$currentErrorPath+" + "+$propertyPath);var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(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(1==$deps.length?$deps[0]:$deps.join(", "))+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should have ",1==$deps.length?out+="property "+it.util.escapeQuotes($deps[0]):out+="properties "+it.util.escapeQuotes($deps.join(", ")),out+=" when property "+it.util.escapeQuotes($property)+" is present' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{out+=" ) { ";var arr2=$deps;if(arr2)for(var $propertyKey,i2=-1,l2=arr2.length-1;i2<l2;){$propertyKey=arr2[i2+=1];var $prop=it.util.getProperty($propertyKey),$useData=($missingProperty=it.util.escapeQuotes($propertyKey),$data+$prop);it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers)),out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { var err = ",!1!==it.createErrors?(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(1==$deps.length?$deps[0]:$deps.join(", "))+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should have ",1==$deps.length?out+="property "+it.util.escapeQuotes($deps[0]):out+="properties "+it.util.escapeQuotes($deps.join(", ")),out+=" when property "+it.util.escapeQuotes($property)+" is present' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}out+=" } ",$breakOnError&&($closingBraces+="}",out+=" else { ")}it.errorPath=$currentErrorPath;var $currentBaseId=$it.baseId;for(var $property in $schemaDeps){$sch=$schemaDeps[$property];(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all))&&(out+=" "+$nextValid+" = true; if ( "+$data+it.util.getProperty($property)+" !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($property)+"') "),out+=") { ",$it.schema=$sch,$it.schemaPath=$schemaPath+it.util.getProperty($property),$it.errSchemaPath=$errSchemaPath+"/"+it.util.escapeFragment($property),out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}"))}return $breakOnError&&(out+=" "+$closingBraces+" if ("+$errs+" == errors) {"),out}},{}],84:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData&&(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ");var $i="i"+$lvl,$vSchema="schema"+$lvl;$isData||(out+=" var "+$vSchema+" = validate.schema"+$schemaPath+";"),out+="var "+$valid+";",$isData&&(out+=" if (schema"+$lvl+" === undefined) "+$valid+" = true; else if (!Array.isArray(schema"+$lvl+")) "+$valid+" = false; else {"),out+=$valid+" = false;for (var "+$i+"=0; "+$i+"<"+$vSchema+".length; "+$i+"++) if (equal("+$data+", "+$vSchema+"["+$i+"])) { "+$valid+" = true; break; }",$isData&&(out+=" } "),out+=" if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { allowedValues: schema"+$lvl+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be equal to one of the allowed values' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" }",$breakOnError&&(out+=" else { "),out}},{}],85:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||"");if(!1===it.opts.format)return $breakOnError&&(out+=" if (true) { "),out;var $schemaValue,$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema;var $unknownFormats=it.opts.unknownFormats,$allowUnknown=Array.isArray($unknownFormats);if($isData){out+=" var "+($format="format"+$lvl)+" = formats["+$schemaValue+"]; var "+($isObject="isObject"+$lvl)+" = typeof "+$format+" == 'object' && !("+$format+" instanceof RegExp) && "+$format+".validate; var "+($formatType="formatType"+$lvl)+" = "+$isObject+" && "+$format+".type || 'string'; if ("+$isObject+") { ",it.async&&(out+=" var async"+$lvl+" = "+$format+".async; "),out+=" "+$format+" = "+$format+".validate; } if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'string') || "),out+=" (","ignore"!=$unknownFormats&&(out+=" ("+$schemaValue+" && !"+$format+" ",$allowUnknown&&(out+=" && self._opts.unknownFormats.indexOf("+$schemaValue+") == -1 "),out+=") || "),out+=" ("+$format+" && "+$formatType+" == '"+$ruleType+"' && !(typeof "+$format+" == 'function' ? ",it.async?out+=" (async"+$lvl+" ? await "+$format+"("+$data+") : "+$format+"("+$data+")) ":out+=" "+$format+"("+$data+") ",out+=" : "+$format+".test("+$data+"))))) {"}else{var $format;if(!($format=it.formats[$schema])){if("ignore"==$unknownFormats)return it.logger.warn('unknown format "'+$schema+'" ignored in schema at path "'+it.errSchemaPath+'"'),$breakOnError&&(out+=" if (true) { "),out;if($allowUnknown&&$unknownFormats.indexOf($schema)>=0)return $breakOnError&&(out+=" if (true) { "),out;throw new Error('unknown format "'+$schema+'" is used in schema at path "'+it.errSchemaPath+'"')}var $isObject,$formatType=($isObject="object"==typeof $format&&!($format instanceof RegExp)&&$format.validate)&&$format.type||"string";if($isObject){var $async=!0===$format.async;$format=$format.validate}if($formatType!=$ruleType)return $breakOnError&&(out+=" if (true) { "),out;if($async){if(!it.async)throw new Error("async format in sync schema");out+=" if (!(await "+($formatRef="formats"+it.util.getProperty($schema)+".validate")+"("+$data+"))) { "}else{out+=" if (! ";var $formatRef="formats"+it.util.getProperty($schema);$isObject&&($formatRef+=".validate"),out+="function"==typeof $format?" "+$formatRef+"("+$data+") ":" "+$formatRef+".test("+$data+") ",out+=") { "}}var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'format' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { format: ",out+=$isData?""+$schemaValue:""+it.util.toQuotedString($schema),out+=" } ",!1!==it.opts.messages&&(out+=" , message: 'should match format \"",out+=$isData?"' + "+$schemaValue+" + '":""+it.util.escapeQuotes($schema),out+="\"' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+it.util.toQuotedString($schema),out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$breakOnError&&(out+=" else { "),out}},{}],86:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level,$thenSch=it.schema.then,$elseSch=it.schema.else,$thenPresent=void 0!==$thenSch&&(it.opts.strictKeywords?"object"==typeof $thenSch&&Object.keys($thenSch).length>0||!1===$thenSch:it.util.schemaHasRules($thenSch,it.RULES.all)),$elsePresent=void 0!==$elseSch&&(it.opts.strictKeywords?"object"==typeof $elseSch&&Object.keys($elseSch).length>0||!1===$elseSch:it.util.schemaHasRules($elseSch,it.RULES.all)),$currentBaseId=$it.baseId;if($thenPresent||$elsePresent){var $ifClause;$it.createErrors=!1,$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" var "+$errs+" = errors; var "+$valid+" = true; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,$it.createErrors=!0,out+=" errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } ",it.compositeRule=$it.compositeRule=$wasComposite,$thenPresent?(out+=" if ("+$nextValid+") { ",$it.schema=it.schema.then,$it.schemaPath=it.schemaPath+".then",$it.errSchemaPath=it.errSchemaPath+"/then",out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" "+$valid+" = "+$nextValid+"; ",$thenPresent&&$elsePresent?out+=" var "+($ifClause="ifClause"+$lvl)+" = 'then'; ":$ifClause="'then'",out+=" } ",$elsePresent&&(out+=" else { ")):out+=" if (!"+$nextValid+") { ",$elsePresent&&($it.schema=it.schema.else,$it.schemaPath=it.schemaPath+".else",$it.errSchemaPath=it.errSchemaPath+"/else",out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" "+$valid+" = "+$nextValid+"; ",$thenPresent&&$elsePresent?out+=" var "+($ifClause="ifClause"+$lvl)+" = 'else'; ":$ifClause="'else'",out+=" } "),out+=" if (!"+$valid+") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'if' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { failingKeyword: "+$ifClause+" } ",!1!==it.opts.messages&&(out+=" , message: 'should match \"' + "+$ifClause+" + '\" schema' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),out+=" } ",$breakOnError&&(out+=" else { ")}else $breakOnError&&(out+=" if (true) { ");return out}},{}],87:[function(require,module,exports){"use strict";module.exports={$ref:require("./ref"),allOf:require("./allOf"),anyOf:require("./anyOf"),$comment:require("./comment"),const:require("./const"),contains:require("./contains"),dependencies:require("./dependencies"),enum:require("./enum"),format:require("./format"),if:require("./if"),items:require("./items"),maximum:require("./_limit"),minimum:require("./_limit"),maxItems:require("./_limitItems"),minItems:require("./_limitItems"),maxLength:require("./_limitLength"),minLength:require("./_limitLength"),maxProperties:require("./_limitProperties"),minProperties:require("./_limitProperties"),multipleOf:require("./multipleOf"),not:require("./not"),oneOf:require("./oneOf"),pattern:require("./pattern"),properties:require("./properties"),propertyNames:require("./propertyNames"),required:require("./required"),uniqueItems:require("./uniqueItems"),validate:require("./validate")}},{"./_limit":73,"./_limitItems":74,"./_limitLength":75,"./_limitProperties":76,"./allOf":77,"./anyOf":78,"./comment":79,"./const":80,"./contains":81,"./dependencies":83,"./enum":84,"./format":85,"./if":86,"./items":88,"./multipleOf":89,"./not":90,"./oneOf":91,"./pattern":92,"./properties":93,"./propertyNames":94,"./ref":95,"./required":96,"./uniqueItems":97,"./validate":98}],88:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$idx="i"+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData="data"+$dataNxt,$currentBaseId=it.baseId;if(out+="var "+$errs+" = errors;var "+$valid+";",Array.isArray($schema)){var $additionalItems=it.schema.additionalItems;if(!1===$additionalItems){out+=" "+$valid+" = "+$data+".length <= "+$schema.length+"; ";var $currErrSchemaPath=$errSchemaPath;$errSchemaPath=it.errSchemaPath+"/additionalItems",out+=" if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schema.length+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have more than "+$schema.length+" items' "),it.opts.verbose&&(out+=" , schema: false , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$errSchemaPath=$currErrSchemaPath,$breakOnError&&($closingBraces+="}",out+=" else { ")}var arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)if($sch=arr1[$i+=1],it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)){out+=" "+$nextValid+" = true; if ("+$data+".length > "+$i+") { ";var $passData=$data+"["+$i+"]";$it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,$it.errorPath=it.util.getPathExpr(it.errorPath,$i,it.opts.jsonPointers,!0),$it.dataPathArr[$dataNxt]=$i;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}if("object"==typeof $additionalItems&&(it.opts.strictKeywords?"object"==typeof $additionalItems&&Object.keys($additionalItems).length>0||!1===$additionalItems:it.util.schemaHasRules($additionalItems,it.RULES.all))){$it.schema=$additionalItems,$it.schemaPath=it.schemaPath+".additionalItems",$it.errSchemaPath=it.errSchemaPath+"/additionalItems",out+=" "+$nextValid+" = true; if ("+$data+".length > "+$schema.length+") { for (var "+$idx+" = "+$schema.length+"; "+$idx+" < "+$data+".length; "+$idx+"++) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,!0);$passData=$data+"["+$idx+"]";$it.dataPathArr[$dataNxt]=$idx;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; "),out+=" } } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}}else if(it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" for (var "+$idx+" = 0; "+$idx+" < "+$data+".length; "+$idx+"++) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,!0);$passData=$data+"["+$idx+"]";$it.dataPathArr[$dataNxt]=$idx;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; "),out+=" }"}return $breakOnError&&(out+=" "+$closingBraces+" if ("+$errs+" == errors) {"),out}},{}],89:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");out+="var division"+$lvl+";if (",$isData&&(out+=" "+$schemaValue+" !== undefined && ( typeof "+$schemaValue+" != 'number' || "),out+=" (division"+$lvl+" = "+$data+" / "+$schemaValue+", ",it.opts.multipleOfPrecision?out+=" Math.abs(Math.round(division"+$lvl+") - division"+$lvl+") > 1e-"+it.opts.multipleOfPrecision+" ":out+=" division"+$lvl+" !== parseInt(division"+$lvl+") ",out+=" ) ",$isData&&(out+=" ) "),out+=" ) { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { multipleOf: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be multiple of ",out+=$isData?"' + "+$schemaValue:$schemaValue+"'"),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],90:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level;if(it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" var "+$errs+" = errors; ";var $allErrorsOption,$wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,$it.createErrors=!1,$it.opts.allErrors&&($allErrorsOption=$it.opts.allErrors,$it.opts.allErrors=!1),out+=" "+it.validate($it)+" ",$it.createErrors=!0,$allErrorsOption&&($it.opts.allErrors=$allErrorsOption),it.compositeRule=$it.compositeRule=$wasComposite,out+=" if ("+$nextValid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'not' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should NOT be valid' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } ",it.opts.allErrors&&(out+=" } ")}else out+=" var err = ",!1!==it.createErrors?(out+=" { keyword: 'not' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should NOT be valid' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$breakOnError&&(out+=" if (false) { ");return out}},{}],91:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$currentBaseId=$it.baseId,$prevValid="prevValid"+$lvl,$passingSchemas="passingSchemas"+$lvl;out+="var "+$errs+" = errors , "+$prevValid+" = false , "+$valid+" = false , "+$passingSchemas+" = null; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)$sch=arr1[$i+=1],(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all))?($it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId):out+=" var "+$nextValid+" = true; ",$i&&(out+=" if ("+$nextValid+" && "+$prevValid+") { "+$valid+" = false; "+$passingSchemas+" = ["+$passingSchemas+", "+$i+"]; } else { ",$closingBraces+="}"),out+=" if ("+$nextValid+") { "+$valid+" = "+$prevValid+" = true; "+$passingSchemas+" = "+$i+"; }";return it.compositeRule=$it.compositeRule=$wasComposite,out+=$closingBraces+"if (!"+$valid+") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { passingSchemas: "+$passingSchemas+" } ",!1!==it.opts.messages&&(out+=" , message: 'should match exactly one schema in oneOf' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),out+="} else { errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; }",it.opts.allErrors&&(out+=" } "),out}},{}],92:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'string') || "),out+=" !"+($isData?"(new RegExp("+$schemaValue+"))":it.usePattern($schema))+".test("+$data+") ) { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { pattern: ",out+=$isData?""+$schemaValue:""+it.util.toQuotedString($schema),out+=" } ",!1!==it.opts.messages&&(out+=" , message: 'should match pattern \"",out+=$isData?"' + "+$schemaValue+" + '":""+it.util.escapeQuotes($schema),out+="\"' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+it.util.toQuotedString($schema),out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],93:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$key="key"+$lvl,$idx="idx"+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData="data"+$dataNxt,$dataProperties="dataProperties"+$lvl,$schemaKeys=Object.keys($schema||{}).filter(notProto),$pProperties=it.schema.patternProperties||{},$pPropertyKeys=Object.keys($pProperties).filter(notProto),$aProperties=it.schema.additionalProperties,$someProperties=$schemaKeys.length||$pPropertyKeys.length,$noAdditional=!1===$aProperties,$additionalIsSchema="object"==typeof $aProperties&&Object.keys($aProperties).length,$removeAdditional=it.opts.removeAdditional,$checkAdditional=$noAdditional||$additionalIsSchema||$removeAdditional,$ownProperties=it.opts.ownProperties,$currentBaseId=it.baseId,$required=it.schema.required;if($required&&(!it.opts.$data||!$required.$data)&&$required.length<it.opts.loopRequired)var $requiredHash=it.util.toHash($required);function notProto(p){return"__proto__"!==p}if(out+="var "+$errs+" = errors;var "+$nextValid+" = true;",$ownProperties&&(out+=" var "+$dataProperties+" = undefined;"),$checkAdditional){if(out+=$ownProperties?" "+$dataProperties+" = "+$dataProperties+" || Object.keys("+$data+"); for (var "+$idx+"=0; "+$idx+"<"+$dataProperties+".length; "+$idx+"++) { var "+$key+" = "+$dataProperties+"["+$idx+"]; ":" for (var "+$key+" in "+$data+") { ",$someProperties){if(out+=" var isAdditional"+$lvl+" = !(false ",$schemaKeys.length)if($schemaKeys.length>8)out+=" || validate.schema"+$schemaPath+".hasOwnProperty("+$key+") ";else{var arr1=$schemaKeys;if(arr1)for(var i1=-1,l1=arr1.length-1;i1<l1;)$propertyKey=arr1[i1+=1],out+=" || "+$key+" == "+it.util.toQuotedString($propertyKey)+" "}if($pPropertyKeys.length){var arr2=$pPropertyKeys;if(arr2)for(var $i=-1,l2=arr2.length-1;$i<l2;)$pProperty=arr2[$i+=1],out+=" || "+it.usePattern($pProperty)+".test("+$key+") "}out+=" ); if (isAdditional"+$lvl+") { "}if("all"==$removeAdditional)out+=" delete "+$data+"["+$key+"]; ";else{var $currentErrorPath=it.errorPath,$additionalProperty="' + "+$key+" + '";if(it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers)),$noAdditional)if($removeAdditional)out+=" delete "+$data+"["+$key+"]; ";else{out+=" "+$nextValid+" = false; ";var $currErrSchemaPath=$errSchemaPath;$errSchemaPath=it.errSchemaPath+"/additionalProperties",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { additionalProperty: '"+$additionalProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is an invalid additional property":out+="should NOT have additional properties",out+="' "),it.opts.verbose&&(out+=" , schema: false , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$errSchemaPath=$currErrSchemaPath,$breakOnError&&(out+=" break; ")}else if($additionalIsSchema)if("failing"==$removeAdditional){out+=" var "+$errs+" = errors; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,$it.schema=$aProperties,$it.schemaPath=it.schemaPath+".additionalProperties",$it.errSchemaPath=it.errSchemaPath+"/additionalProperties",$it.errorPath=it.opts._errorDataPathProperty?it.errorPath:it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);var $passData=$data+"["+$key+"]";$it.dataPathArr[$dataNxt]=$key;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",out+=" if (!"+$nextValid+") { errors = "+$errs+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+$data+"["+$key+"]; } ",it.compositeRule=$it.compositeRule=$wasComposite}else{$it.schema=$aProperties,$it.schemaPath=it.schemaPath+".additionalProperties",$it.errSchemaPath=it.errSchemaPath+"/additionalProperties",$it.errorPath=it.opts._errorDataPathProperty?it.errorPath:it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);$passData=$data+"["+$key+"]";$it.dataPathArr[$dataNxt]=$key;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; ")}it.errorPath=$currentErrorPath}$someProperties&&(out+=" } "),out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}var $useDefaults=it.opts.useDefaults&&!it.compositeRule;if($schemaKeys.length){var arr3=$schemaKeys;if(arr3)for(var $propertyKey,i3=-1,l3=arr3.length-1;i3<l3;){var $sch=$schema[$propertyKey=arr3[i3+=1]];if(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)){var $prop=it.util.getProperty($propertyKey),$hasDefault=($passData=$data+$prop,$useDefaults&&void 0!==$sch.default);$it.schema=$sch,$it.schemaPath=$schemaPath+$prop,$it.errSchemaPath=$errSchemaPath+"/"+it.util.escapeFragment($propertyKey),$it.errorPath=it.util.getPath(it.errorPath,$propertyKey,it.opts.jsonPointers),$it.dataPathArr[$dataNxt]=it.util.toQuotedString($propertyKey);$code=it.validate($it);if($it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2){$code=it.util.varReplace($code,$nextData,$passData);var $useData=$passData}else{$useData=$nextData;out+=" var "+$nextData+" = "+$passData+"; "}if($hasDefault)out+=" "+$code+" ";else{if($requiredHash&&$requiredHash[$propertyKey]){out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { "+$nextValid+" = false; ";$currentErrorPath=it.errorPath,$currErrSchemaPath=$errSchemaPath;var $$outStack,$missingProperty=it.util.escapeQuotes($propertyKey);it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers)),$errSchemaPath=it.errSchemaPath+"/required",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$errSchemaPath=$currErrSchemaPath,it.errorPath=$currentErrorPath,out+=" } else { "}else $breakOnError?(out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { "+$nextValid+" = true; } else { "):(out+=" if ("+$useData+" !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=" ) { ");out+=" "+$code+" } "}}$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}}if($pPropertyKeys.length){var arr4=$pPropertyKeys;if(arr4)for(var $pProperty,i4=-1,l4=arr4.length-1;i4<l4;){$sch=$pProperties[$pProperty=arr4[i4+=1]];if(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)){$it.schema=$sch,$it.schemaPath=it.schemaPath+".patternProperties"+it.util.getProperty($pProperty),$it.errSchemaPath=it.errSchemaPath+"/patternProperties/"+it.util.escapeFragment($pProperty),out+=$ownProperties?" "+$dataProperties+" = "+$dataProperties+" || Object.keys("+$data+"); for (var "+$idx+"=0; "+$idx+"<"+$dataProperties+".length; "+$idx+"++) { var "+$key+" = "+$dataProperties+"["+$idx+"]; ":" for (var "+$key+" in "+$data+") { ",out+=" if ("+it.usePattern($pProperty)+".test("+$key+")) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);$passData=$data+"["+$key+"]";$it.dataPathArr[$dataNxt]=$key;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; "),out+=" } ",$breakOnError&&(out+=" else "+$nextValid+" = true; "),out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}}}return $breakOnError&&(out+=" "+$closingBraces+" if ("+$errs+" == errors) {"),out}},{}],94:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level;if(out+="var "+$errs+" = errors;",it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath;var $key="key"+$lvl,$idx="idx"+$lvl,$i="i"+$lvl,$invalidName="' + "+$key+" + '",$nextData="data"+($it.dataLevel=it.dataLevel+1),$dataProperties="dataProperties"+$lvl,$ownProperties=it.opts.ownProperties,$currentBaseId=it.baseId;$ownProperties&&(out+=" var "+$dataProperties+" = undefined; "),out+=$ownProperties?" "+$dataProperties+" = "+$dataProperties+" || Object.keys("+$data+"); for (var "+$idx+"=0; "+$idx+"<"+$dataProperties+".length; "+$idx+"++) { var "+$key+" = "+$dataProperties+"["+$idx+"]; ":" for (var "+$key+" in "+$data+") { ",out+=" var startErrs"+$lvl+" = errors; ";var $passData=$key,$wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",it.compositeRule=$it.compositeRule=$wasComposite,out+=" if (!"+$nextValid+") { for (var "+$i+"=startErrs"+$lvl+"; "+$i+"<errors; "+$i+"++) { vErrors["+$i+"].propertyName = "+$key+"; } var err = ",!1!==it.createErrors?(out+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { propertyName: '"+$invalidName+"' } ",!1!==it.opts.messages&&(out+=" , message: 'property name \\'"+$invalidName+"\\' is invalid' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),$breakOnError&&(out+=" break; "),out+=" } }"}return $breakOnError&&(out+=" if ("+$errs+" == errors) {"),out}},{}],95:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $async,$refCode,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl;if("#"==$schema||"#/"==$schema)it.isRoot?($async=it.async,$refCode="validate"):($async=!0===it.root.schema.$async,$refCode="root.refVal[0]");else{var $refVal=it.resolveRef(it.baseId,$schema,it.isRoot);if(void 0===$refVal){var $message=it.MissingRefError.message(it.baseId,$schema);if("fail"==it.opts.missingRefs){it.logger.error($message),($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { ref: '"+it.util.escapeQuotes($schema)+"' } ",!1!==it.opts.messages&&(out+=" , message: 'can\\'t resolve reference "+it.util.escapeQuotes($schema)+"' "),it.opts.verbose&&(out+=" , schema: "+it.util.toQuotedString($schema)+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$breakOnError&&(out+=" if (false) { ")}else{if("ignore"!=it.opts.missingRefs)throw new it.MissingRefError(it.baseId,$schema,$message);it.logger.warn($message),$breakOnError&&(out+=" if (true) { ")}}else if($refVal.inline){var $it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level;$it.schema=$refVal.schema,$it.schemaPath="",$it.errSchemaPath=$schema,out+=" "+it.validate($it).replace(/validate\.schema/g,$refVal.code)+" ",$breakOnError&&(out+=" if ("+$nextValid+") { ")}else $async=!0===$refVal.$async||it.async&&!1!==$refVal.$async,$refCode=$refVal.code}if($refCode){var $$outStack;($$outStack=$$outStack||[]).push(out),out="",it.opts.passContext?out+=" "+$refCode+".call(this, ":out+=" "+$refCode+"( ",out+=" "+$data+", (dataPath || '')",'""'!=it.errorPath&&(out+=" + "+it.errorPath);var __callValidate=out+=" , "+($dataLvl?"data"+($dataLvl-1||""):"parentData")+" , "+($dataLvl?it.dataPathArr[$dataLvl]:"parentDataProperty")+", rootData) ";if(out=$$outStack.pop(),$async){if(!it.async)throw new Error("async schema referenced by sync schema");$breakOnError&&(out+=" var "+$valid+"; "),out+=" try { await "+__callValidate+"; ",$breakOnError&&(out+=" "+$valid+" = true; "),out+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",$breakOnError&&(out+=" "+$valid+" = false; "),out+=" } ",$breakOnError&&(out+=" if ("+$valid+") { ")}else out+=" if (!"+__callValidate+") { if (vErrors === null) vErrors = "+$refCode+".errors; else vErrors = vErrors.concat("+$refCode+".errors); errors = vErrors.length; } ",$breakOnError&&(out+=" else { ")}return out}},{}],96:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData&&(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ");var $vSchema="schema"+$lvl;if(!$isData)if($schema.length<it.opts.loopRequired&&it.schema.properties&&Object.keys(it.schema.properties).length){var $required=[],arr1=$schema;if(arr1)for(var $property,i1=-1,l1=arr1.length-1;i1<l1;){$property=arr1[i1+=1];var $propertySch=it.schema.properties[$property];$propertySch&&(it.opts.strictKeywords?"object"==typeof $propertySch&&Object.keys($propertySch).length>0||!1===$propertySch:it.util.schemaHasRules($propertySch,it.RULES.all))||($required[$required.length]=$property)}}else $required=$schema;if($isData||$required.length){var $currentErrorPath=it.errorPath,$loopRequired=$isData||$required.length>=it.opts.loopRequired,$ownProperties=it.opts.ownProperties;if($breakOnError)if(out+=" var missing"+$lvl+"; ",$loopRequired){$isData||(out+=" var "+$vSchema+" = validate.schema"+$schemaPath+"; ");var $missingProperty="' + "+($propertyPath="schema"+$lvl+"["+($i="i"+$lvl)+"]")+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPathExpr($currentErrorPath,$propertyPath,it.opts.jsonPointers)),out+=" var "+$valid+" = true; ",$isData&&(out+=" if (schema"+$lvl+" === undefined) "+$valid+" = true; else if (!Array.isArray(schema"+$lvl+")) "+$valid+" = false; else {"),out+=" for (var "+$i+" = 0; "+$i+" < "+$vSchema+".length; "+$i+"++) { "+$valid+" = "+$data+"["+$vSchema+"["+$i+"]] !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", "+$vSchema+"["+$i+"]) "),out+="; if (!"+$valid+") break; } ",$isData&&(out+=" } "),out+=" if (!"+$valid+") { ",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { "}else{out+=" if ( ";var arr2=$required;if(arr2)for(var $i=-1,l2=arr2.length-1;$i<l2;){$propertyKey=arr2[$i+=1],$i&&(out+=" || "),out+=" ( ( "+($useData=$data+($prop=it.util.getProperty($propertyKey)))+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") && (missing"+$lvl+" = "+it.util.toQuotedString(it.opts.jsonPointers?$propertyKey:$prop)+") ) "}out+=") { ";var $$outStack;$missingProperty="' + "+($propertyPath="missing"+$lvl)+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.opts.jsonPointers?it.util.getPathExpr($currentErrorPath,$propertyPath,!0):$currentErrorPath+" + "+$propertyPath),($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { "}else if($loopRequired){$isData||(out+=" var "+$vSchema+" = validate.schema"+$schemaPath+"; ");var $propertyPath;$missingProperty="' + "+($propertyPath="schema"+$lvl+"["+($i="i"+$lvl)+"]")+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPathExpr($currentErrorPath,$propertyPath,it.opts.jsonPointers)),$isData&&(out+=" if ("+$vSchema+" && !Array.isArray("+$vSchema+")) { var err = ",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+$vSchema+" !== undefined) { "),out+=" for (var "+$i+" = 0; "+$i+" < "+$vSchema+".length; "+$i+"++) { if ("+$data+"["+$vSchema+"["+$i+"]] === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", "+$vSchema+"["+$i+"]) "),out+=") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",$isData&&(out+=" } ")}else{var arr3=$required;if(arr3)for(var $propertyKey,i3=-1,l3=arr3.length-1;i3<l3;){$propertyKey=arr3[i3+=1];var $prop=it.util.getProperty($propertyKey),$useData=($missingProperty=it.util.escapeQuotes($propertyKey),$data+$prop);it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers)),out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}it.errorPath=$currentErrorPath}else $breakOnError&&(out+=" if (true) {");return out}},{}],97:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,($schema||$isData)&&!1!==it.opts.uniqueItems){$isData&&(out+=" var "+$valid+"; if ("+$schemaValue+" === false || "+$schemaValue+" === undefined) "+$valid+" = true; else if (typeof "+$schemaValue+" != 'boolean') "+$valid+" = false; else { "),out+=" var i = "+$data+".length , "+$valid+" = true , j; if (i > 1) { ";var $itemType=it.schema.items&&it.schema.items.type,$typeIsArray=Array.isArray($itemType);if(!$itemType||"object"==$itemType||"array"==$itemType||$typeIsArray&&($itemType.indexOf("object")>=0||$itemType.indexOf("array")>=0))out+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+$data+"[i], "+$data+"[j])) { "+$valid+" = false; break outer; } } } ";else{out+=" var itemIndices = {}, item; for (;i--;) { var item = "+$data+"[i]; ";var $method="checkDataType"+($typeIsArray?"s":"");out+=" if ("+it.util[$method]($itemType,"item",it.opts.strictNumbers,!0)+") continue; ",$typeIsArray&&(out+=" if (typeof item == 'string') item = '\"' + item; "),out+=" if (typeof itemIndices[item] == 'number') { "+$valid+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}out+=" } ",$isData&&(out+=" } "),out+=" if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { i: i, j: j } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$breakOnError&&(out+=" else { ")}else $breakOnError&&(out+=" if (true) { ");return out}},{}],98:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out="",$async=!0===it.schema.$async,$refKeywords=it.util.schemaHasRulesExcept(it.schema,it.RULES.all,"$ref"),$id=it.self._getId(it.schema);if(it.opts.strictKeywords){var $unknownKwd=it.util.schemaUnknownRules(it.schema,it.RULES.keywords);if($unknownKwd){var $keywordsMsg="unknown keyword: "+$unknownKwd;if("log"!==it.opts.strictKeywords)throw new Error($keywordsMsg);it.logger.warn($keywordsMsg)}}if(it.isTop&&(out+=" var validate = ",$async&&(it.async=!0,out+="async "),out+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",$id&&(it.opts.sourceCode||it.opts.processCode)&&(out+=" /*# sourceURL="+$id+" */ ")),"boolean"==typeof it.schema||!$refKeywords&&!it.schema.$ref){var $lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema["false schema"],$schemaPath=it.schemaPath+it.util.getProperty("false schema"),$errSchemaPath=it.errSchemaPath+"/false schema",$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl;if(!1===it.schema){it.isTop?$breakOnError=!0:out+=" var "+$valid+" = false; ",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'boolean schema is false' "),it.opts.verbose&&(out+=" , schema: false , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else it.isTop?out+=$async?" return data; ":" validate.errors = null; return true; ":out+=" var "+$valid+" = true; ";return it.isTop&&(out+=" }; return validate; "),out}if(it.isTop){var $top=it.isTop;$lvl=it.level=0,$dataLvl=it.dataLevel=0,$data="data";if(it.rootId=it.resolve.fullPath(it.self._getId(it.root.schema)),it.baseId=it.baseId||it.rootId,delete it.isTop,it.dataPathArr=[""],void 0!==it.schema.default&&it.opts.useDefaults&&it.opts.strictDefaults){var $defaultMsg="default is ignored in the schema root";if("log"!==it.opts.strictDefaults)throw new Error($defaultMsg);it.logger.warn($defaultMsg)}out+=" var vErrors = null; ",out+=" var errors = 0; ",out+=" if (rootData === undefined) rootData = data; "}else{$lvl=it.level,$data="data"+(($dataLvl=it.dataLevel)||"");if($id&&(it.baseId=it.resolve.url(it.baseId,$id)),$async&&!it.async)throw new Error("async schema in sync schema");out+=" var errs_"+$lvl+" = errors;"}$valid="valid"+$lvl,$breakOnError=!it.opts.allErrors;var $closingBraces1="",$closingBraces2="",$typeSchema=it.schema.type,$typeIsArray=Array.isArray($typeSchema);if($typeSchema&&it.opts.nullable&&!0===it.schema.nullable&&($typeIsArray?-1==$typeSchema.indexOf("null")&&($typeSchema=$typeSchema.concat("null")):"null"!=$typeSchema&&($typeSchema=[$typeSchema,"null"],$typeIsArray=!0)),$typeIsArray&&1==$typeSchema.length&&($typeSchema=$typeSchema[0],$typeIsArray=!1),it.schema.$ref&&$refKeywords){if("fail"==it.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+it.errSchemaPath+'" (see option extendRefs)');!0!==it.opts.extendRefs&&($refKeywords=!1,it.logger.warn('$ref: keywords ignored in schema at path "'+it.errSchemaPath+'"'))}if(it.schema.$comment&&it.opts.$comment&&(out+=" "+it.RULES.all.$comment.code(it,"$comment")),$typeSchema){if(it.opts.coerceTypes)var $coerceToTypes=it.util.coerceToTypes(it.opts.coerceTypes,$typeSchema);var $rulesGroup=it.RULES.types[$typeSchema];if($coerceToTypes||$typeIsArray||!0===$rulesGroup||$rulesGroup&&!$shouldUseGroup($rulesGroup)){$schemaPath=it.schemaPath+".type",$errSchemaPath=it.errSchemaPath+"/type",$schemaPath=it.schemaPath+".type",$errSchemaPath=it.errSchemaPath+"/type";var $method=$typeIsArray?"checkDataTypes":"checkDataType";if(out+=" if ("+it.util[$method]($typeSchema,$data,it.opts.strictNumbers,!0)+") { ",$coerceToTypes){var $dataType="dataType"+$lvl,$coerced="coerced"+$lvl;out+=" var "+$dataType+" = typeof "+$data+"; var "+$coerced+" = undefined; ","array"==it.opts.coerceTypes&&(out+=" if ("+$dataType+" == 'object' && Array.isArray("+$data+") && "+$data+".length == 1) { "+$data+" = "+$data+"[0]; "+$dataType+" = typeof "+$data+"; if ("+it.util.checkDataType(it.schema.type,$data,it.opts.strictNumbers)+") "+$coerced+" = "+$data+"; } "),out+=" if ("+$coerced+" !== undefined) ; ";var arr1=$coerceToTypes;if(arr1)for(var $type,$i=-1,l1=arr1.length-1;$i<l1;)"string"==($type=arr1[$i+=1])?out+=" else if ("+$dataType+" == 'number' || "+$dataType+" == 'boolean') "+$coerced+" = '' + "+$data+"; else if ("+$data+" === null) "+$coerced+" = ''; ":"number"==$type||"integer"==$type?(out+=" else if ("+$dataType+" == 'boolean' || "+$data+" === null || ("+$dataType+" == 'string' && "+$data+" && "+$data+" == +"+$data+" ","integer"==$type&&(out+=" && !("+$data+" % 1)"),out+=")) "+$coerced+" = +"+$data+"; "):"boolean"==$type?out+=" else if ("+$data+" === 'false' || "+$data+" === 0 || "+$data+" === null) "+$coerced+" = false; else if ("+$data+" === 'true' || "+$data+" === 1) "+$coerced+" = true; ":"null"==$type?out+=" else if ("+$data+" === '' || "+$data+" === 0 || "+$data+" === false) "+$coerced+" = null; ":"array"==it.opts.coerceTypes&&"array"==$type&&(out+=" else if ("+$dataType+" == 'string' || "+$dataType+" == 'number' || "+$dataType+" == 'boolean' || "+$data+" == null) "+$coerced+" = ["+$data+"]; ");out+=" else { ",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'type' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { type: '",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' } ",!1!==it.opts.messages&&(out+=" , message: 'should be ",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } if ("+$coerced+" !== undefined) { ";var $parentData=$dataLvl?"data"+($dataLvl-1||""):"parentData";out+=" "+$data+" = "+$coerced+"; ",$dataLvl||(out+="if ("+$parentData+" !== undefined)"),out+=" "+$parentData+"["+($dataLvl?it.dataPathArr[$dataLvl]:"parentDataProperty")+"] = "+$coerced+"; } "}else{($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'type' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { type: '",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' } ",!1!==it.opts.messages&&(out+=" , message: 'should be ",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}out+=" } "}}if(it.schema.$ref&&!$refKeywords)out+=" "+it.RULES.all.$ref.code(it,"$ref")+" ",$breakOnError&&(out+=" } if (errors === ",out+=$top?"0":"errs_"+$lvl,out+=") { ",$closingBraces2+="}");else{var arr2=it.RULES;if(arr2)for(var i2=-1,l2=arr2.length-1;i2<l2;)if($shouldUseGroup($rulesGroup=arr2[i2+=1])){if($rulesGroup.type&&(out+=" if ("+it.util.checkDataType($rulesGroup.type,$data,it.opts.strictNumbers)+") { "),it.opts.useDefaults)if("object"==$rulesGroup.type&&it.schema.properties){$schema=it.schema.properties;var arr3=Object.keys($schema);if(arr3)for(var $propertyKey,i3=-1,l3=arr3.length-1;i3<l3;){if(void 0!==($sch=$schema[$propertyKey=arr3[i3+=1]]).default){var $passData=$data+it.util.getProperty($propertyKey);if(it.compositeRule){if(it.opts.strictDefaults){$defaultMsg="default is ignored for: "+$passData;if("log"!==it.opts.strictDefaults)throw new Error($defaultMsg);it.logger.warn($defaultMsg)}}else out+=" if ("+$passData+" === undefined ","empty"==it.opts.useDefaults&&(out+=" || "+$passData+" === null || "+$passData+" === '' "),out+=" ) "+$passData+" = ","shared"==it.opts.useDefaults?out+=" "+it.useDefault($sch.default)+" ":out+=" "+JSON.stringify($sch.default)+" ",out+="; "}}}else if("array"==$rulesGroup.type&&Array.isArray(it.schema.items)){var arr4=it.schema.items;if(arr4){$i=-1;for(var $sch,l4=arr4.length-1;$i<l4;)if(void 0!==($sch=arr4[$i+=1]).default){$passData=$data+"["+$i+"]";if(it.compositeRule){if(it.opts.strictDefaults){$defaultMsg="default is ignored for: "+$passData;if("log"!==it.opts.strictDefaults)throw new Error($defaultMsg);it.logger.warn($defaultMsg)}}else out+=" if ("+$passData+" === undefined ","empty"==it.opts.useDefaults&&(out+=" || "+$passData+" === null || "+$passData+" === '' "),out+=" ) "+$passData+" = ","shared"==it.opts.useDefaults?out+=" "+it.useDefault($sch.default)+" ":out+=" "+JSON.stringify($sch.default)+" ",out+="; "}}}var arr5=$rulesGroup.rules;if(arr5)for(var $rule,i5=-1,l5=arr5.length-1;i5<l5;)if($shouldUseRule($rule=arr5[i5+=1])){var $code=$rule.code(it,$rule.keyword,$rulesGroup.type);$code&&(out+=" "+$code+" ",$breakOnError&&($closingBraces1+="}"))}if($breakOnError&&(out+=" "+$closingBraces1+" ",$closingBraces1=""),$rulesGroup.type&&(out+=" } ",$typeSchema&&$typeSchema===$rulesGroup.type&&!$coerceToTypes)){out+=" else { ";var $$outStack;$schemaPath=it.schemaPath+".type",$errSchemaPath=it.errSchemaPath+"/type";($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'type' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { type: '",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' } ",!1!==it.opts.messages&&(out+=" , message: 'should be ",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } "}$breakOnError&&(out+=" if (errors === ",out+=$top?"0":"errs_"+$lvl,out+=") { ",$closingBraces2+="}")}}function $shouldUseGroup($rulesGroup){for(var rules=$rulesGroup.rules,i=0;i<rules.length;i++)if($shouldUseRule(rules[i]))return!0}function $shouldUseRule($rule){return void 0!==it.schema[$rule.keyword]||$rule.implements&&function($rule){for(var impl=$rule.implements,i=0;i<impl.length;i++)if(void 0!==it.schema[impl[i]])return!0}($rule)}return $breakOnError&&(out+=" "+$closingBraces2+" "),$top?($async?(out+=" if (errors === 0) return data; ",out+=" else throw new ValidationError(vErrors); "):(out+=" validate.errors = vErrors; ",out+=" return errors === 0; "),out+=" }; return validate;"):out+=" var "+$valid+" = errors === errs_"+$lvl+";",out}},{}],99:[function(require,module,exports){"use strict";var IDENTIFIER=/^[a-z_$][a-z0-9_$-]*$/i,customRuleCode=require("./dotjs/custom"),definitionSchema=require("./definition_schema");module.exports={add:function(keyword,definition){var RULES=this.RULES;if(RULES.keywords[keyword])throw new Error("Keyword "+keyword+" is already defined");if(!IDENTIFIER.test(keyword))throw new Error("Keyword "+keyword+" is not a valid identifier");if(definition){this.validateKeyword(definition,!0);var dataType=definition.type;if(Array.isArray(dataType))for(var i=0;i<dataType.length;i++)_addRule(keyword,dataType[i],definition);else _addRule(keyword,dataType,definition);var metaSchema=definition.metaSchema;metaSchema&&(definition.$data&&this._opts.$data&&(metaSchema={anyOf:[metaSchema,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),definition.validateSchema=this.compile(metaSchema,!0))}function _addRule(keyword,dataType,definition){for(var ruleGroup,i=0;i<RULES.length;i++){var rg=RULES[i];if(rg.type==dataType){ruleGroup=rg;break}}ruleGroup||(ruleGroup={type:dataType,rules:[]},RULES.push(ruleGroup));var rule={keyword:keyword,definition:definition,custom:!0,code:customRuleCode,implements:definition.implements};ruleGroup.rules.push(rule),RULES.custom[keyword]=rule}return RULES.keywords[keyword]=RULES.all[keyword]=!0,this},get:function(keyword){var rule=this.RULES.custom[keyword];return rule?rule.definition:this.RULES.keywords[keyword]||!1},remove:function(keyword){var RULES=this.RULES;delete RULES.keywords[keyword],delete RULES.all[keyword],delete RULES.custom[keyword];for(var i=0;i<RULES.length;i++)for(var rules=RULES[i].rules,j=0;j<rules.length;j++)if(rules[j].keyword==keyword){rules.splice(j,1);break}return this},validate:function validateKeyword(definition,throwError){validateKeyword.errors=null;var v=this._validateKeyword=this._validateKeyword||this.compile(definitionSchema,!0);if(v(definition))return!0;if(validateKeyword.errors=v.errors,throwError)throw new Error("custom keyword definition is invalid: "+this.errorsText(v.errors));return!1}}},{"./definition_schema":72,"./dotjs/custom":82}],100:[function(require,module,exports){module.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],101:[function(require,module,exports){module.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"http://json-schema.org/draft-06/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},title:{type:"string"},description:{type:"string"},default:{},examples:{type:"array",items:{}},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:{},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:{}}},{}],102:[function(require,module,exports){module.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},{}],103:[function(require,module,exports){"use strict";const asn1=exports;asn1.bignum=require("bn.js"),asn1.define=require("./asn1/api").define,asn1.base=require("./asn1/base"),asn1.constants=require("./asn1/constants"),asn1.decoders=require("./asn1/decoders"),asn1.encoders=require("./asn1/encoders")},{"./asn1/api":104,"./asn1/base":106,"./asn1/constants":110,"./asn1/decoders":112,"./asn1/encoders":115,"bn.js":117}],104:[function(require,module,exports){"use strict";const encoders=require("./encoders"),decoders=require("./decoders"),inherits=require("inherits");function Entity(name,body){this.name=name,this.body=body,this.decoders={},this.encoders={}}exports.define=function(name,body){return new Entity(name,body)},Entity.prototype._createNamed=function(Base){const name=this.name;function Generated(entity){this._initNamed(entity,name)}return inherits(Generated,Base),Generated.prototype._initNamed=function(entity,name){Base.call(this,entity,name)},new Generated(this)},Entity.prototype._getDecoder=function(enc){return enc=enc||"der",this.decoders.hasOwnProperty(enc)||(this.decoders[enc]=this._createNamed(decoders[enc])),this.decoders[enc]},Entity.prototype.decode=function(data,enc,options){return this._getDecoder(enc).decode(data,options)},Entity.prototype._getEncoder=function(enc){return enc=enc||"der",this.encoders.hasOwnProperty(enc)||(this.encoders[enc]=this._createNamed(encoders[enc])),this.encoders[enc]},Entity.prototype.encode=function(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}},{"./decoders":112,"./encoders":115,inherits:294}],105:[function(require,module,exports){"use strict";const inherits=require("inherits"),Reporter=require("../base/reporter").Reporter,Buffer=require("safer-buffer").Buffer;function DecoderBuffer(base,options){Reporter.call(this,options),Buffer.isBuffer(base)?(this.base=base,this.offset=0,this.length=base.length):this.error("Input not Buffer")}function EncoderBuffer(value,reporter){if(Array.isArray(value))this.length=0,this.value=value.map((function(item){return EncoderBuffer.isEncoderBuffer(item)||(item=new EncoderBuffer(item,reporter)),this.length+=item.length,item}),this);else if("number"==typeof value){if(!(0<=value&&value<=255))return reporter.error("non-byte EncoderBuffer value");this.value=value,this.length=1}else if("string"==typeof value)this.value=value,this.length=Buffer.byteLength(value);else{if(!Buffer.isBuffer(value))return reporter.error("Unsupported type: "+typeof value);this.value=value,this.length=value.length}}inherits(DecoderBuffer,Reporter),exports.DecoderBuffer=DecoderBuffer,DecoderBuffer.isDecoderBuffer=function(data){if(data instanceof DecoderBuffer)return!0;return"object"==typeof data&&Buffer.isBuffer(data.base)&&"DecoderBuffer"===data.constructor.name&&"number"==typeof data.offset&&"number"==typeof data.length&&"function"==typeof data.save&&"function"==typeof data.restore&&"function"==typeof data.isEmpty&&"function"==typeof data.readUInt8&&"function"==typeof data.skip&&"function"==typeof data.raw},DecoderBuffer.prototype.save=function(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}},DecoderBuffer.prototype.restore=function(save){const res=new DecoderBuffer(this.base);return res.offset=save.offset,res.length=this.offset,this.offset=save.offset,Reporter.prototype.restore.call(this,save.reporter),res},DecoderBuffer.prototype.isEmpty=function(){return this.offset===this.length},DecoderBuffer.prototype.readUInt8=function(fail){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(fail||"DecoderBuffer overrun")},DecoderBuffer.prototype.skip=function(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||"DecoderBuffer overrun");const res=new DecoderBuffer(this.base);return res._reporterState=this._reporterState,res.offset=this.offset,res.length=this.offset+bytes,this.offset+=bytes,res},DecoderBuffer.prototype.raw=function(save){return this.base.slice(save?save.offset:this.offset,this.length)},exports.EncoderBuffer=EncoderBuffer,EncoderBuffer.isEncoderBuffer=function(data){if(data instanceof EncoderBuffer)return!0;return"object"==typeof data&&"EncoderBuffer"===data.constructor.name&&"number"==typeof data.length&&"function"==typeof data.join},EncoderBuffer.prototype.join=function(out,offset){return out||(out=Buffer.alloc(this.length)),offset||(offset=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(item){item.join(out,offset),offset+=item.length})):("number"==typeof this.value?out[offset]=this.value:"string"==typeof this.value?out.write(this.value,offset):Buffer.isBuffer(this.value)&&this.value.copy(out,offset),offset+=this.length)),out}},{"../base/reporter":108,inherits:294,"safer-buffer":435}],106:[function(require,module,exports){"use strict";const base=exports;base.Reporter=require("./reporter").Reporter,base.DecoderBuffer=require("./buffer").DecoderBuffer,base.EncoderBuffer=require("./buffer").EncoderBuffer,base.Node=require("./node")},{"./buffer":105,"./node":107,"./reporter":108}],107:[function(require,module,exports){"use strict";const Reporter=require("../base/reporter").Reporter,EncoderBuffer=require("../base/buffer").EncoderBuffer,DecoderBuffer=require("../base/buffer").DecoderBuffer,assert=require("minimalistic-assert"),tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags);function Node(enc,parent,name){const state={};this._baseState=state,state.name=name,state.enc=enc,state.parent=parent||null,state.children=null,state.tag=null,state.args=null,state.reverseArgs=null,state.choice=null,state.optional=!1,state.any=!1,state.obj=!1,state.use=null,state.useDecoder=null,state.key=null,state.default=null,state.explicit=null,state.implicit=null,state.contains=null,state.parent||(state.children=[],this._wrap())}module.exports=Node;const stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Node.prototype.clone=function(){const state=this._baseState,cstate={};stateProps.forEach((function(prop){cstate[prop]=state[prop]}));const res=new this.constructor(cstate.parent);return res._baseState=cstate,res},Node.prototype._wrap=function(){const state=this._baseState;methods.forEach((function(method){this[method]=function(){const clone=new this.constructor(this);return state.children.push(clone),clone[method].apply(clone,arguments)}}),this)},Node.prototype._init=function(body){const state=this._baseState;assert(null===state.parent),body.call(this),state.children=state.children.filter((function(child){return child._baseState.parent===this}),this),assert.equal(state.children.length,1,"Root node can have only one child")},Node.prototype._useArgs=function(args){const state=this._baseState,children=args.filter((function(arg){return arg instanceof this.constructor}),this);args=args.filter((function(arg){return!(arg instanceof this.constructor)}),this),0!==children.length&&(assert(null===state.children),state.children=children,children.forEach((function(child){child._baseState.parent=this}),this)),0!==args.length&&(assert(null===state.args),state.args=args,state.reverseArgs=args.map((function(arg){if("object"!=typeof arg||arg.constructor!==Object)return arg;const res={};return Object.keys(arg).forEach((function(key){key==(0|key)&&(key|=0);const value=arg[key];res[value]=key})),res})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(method){Node.prototype[method]=function(){const state=this._baseState;throw new Error(method+" not implemented for encoding: "+state.enc)}})),tags.forEach((function(tag){Node.prototype[tag]=function(){const state=this._baseState,args=Array.prototype.slice.call(arguments);return assert(null===state.tag),state.tag=tag,this._useArgs(args),this}})),Node.prototype.use=function(item){assert(item);const state=this._baseState;return assert(null===state.use),state.use=item,this},Node.prototype.optional=function(){return this._baseState.optional=!0,this},Node.prototype.def=function(val){const state=this._baseState;return assert(null===state.default),state.default=val,state.optional=!0,this},Node.prototype.explicit=function(num){const state=this._baseState;return assert(null===state.explicit&&null===state.implicit),state.explicit=num,this},Node.prototype.implicit=function(num){const state=this._baseState;return assert(null===state.explicit&&null===state.implicit),state.implicit=num,this},Node.prototype.obj=function(){const state=this._baseState,args=Array.prototype.slice.call(arguments);return state.obj=!0,0!==args.length&&this._useArgs(args),this},Node.prototype.key=function(newKey){const state=this._baseState;return assert(null===state.key),state.key=newKey,this},Node.prototype.any=function(){return this._baseState.any=!0,this},Node.prototype.choice=function(obj){const state=this._baseState;return assert(null===state.choice),state.choice=obj,this._useArgs(Object.keys(obj).map((function(key){return obj[key]}))),this},Node.prototype.contains=function(item){const state=this._baseState;return assert(null===state.use),state.contains=item,this},Node.prototype._decode=function(input,options){const state=this._baseState;if(null===state.parent)return input.wrapResult(state.children[0]._decode(input,options));let prevObj,result=state.default,present=!0,prevKey=null;if(null!==state.key&&(prevKey=input.enterKey(state.key)),state.optional){let tag=null;if(null!==state.explicit?tag=state.explicit:null!==state.implicit?tag=state.implicit:null!==state.tag&&(tag=state.tag),null!==tag||state.any){if(present=this._peekTag(input,tag,state.any),input.isError(present))return present}else{const save=input.save();try{null===state.choice?this._decodeGeneric(state.tag,input,options):this._decodeChoice(input,options),present=!0}catch(e){present=!1}input.restore(save)}}if(state.obj&&present&&(prevObj=input.enterObject()),present){if(null!==state.explicit){const explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}const start=input.offset;if(null===state.use&&null===state.choice){let save;state.any&&(save=input.save());const body=this._decodeTag(input,null!==state.implicit?state.implicit:state.tag,state.any);if(input.isError(body))return body;state.any?result=input.raw(save):input=body}if(options&&options.track&&null!==state.tag&&options.track(input.path(),start,input.length,"tagged"),options&&options.track&&null!==state.tag&&options.track(input.path(),input.offset,input.length,"content"),state.any||(result=null===state.choice?this._decodeGeneric(state.tag,input,options):this._decodeChoice(input,options)),input.isError(result))return result;if(state.any||null!==state.choice||null===state.children||state.children.forEach((function(child){child._decode(input,options)})),state.contains&&("octstr"===state.tag||"bitstr"===state.tag)){const data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options)}}return state.obj&&present&&(result=input.leaveObject(prevObj)),null===state.key||null===result&&!0!==present?null!==prevKey&&input.exitKey(prevKey):input.leaveKey(prevKey,state.key,result),result},Node.prototype._decodeGeneric=function(tag,input,options){const state=this._baseState;return"seq"===tag||"set"===tag?null:"seqof"===tag||"setof"===tag?this._decodeList(input,tag,state.args[0],options):/str$/.test(tag)?this._decodeStr(input,tag,options):"objid"===tag&&state.args?this._decodeObjid(input,state.args[0],state.args[1],options):"objid"===tag?this._decodeObjid(input,null,null,options):"gentime"===tag||"utctime"===tag?this._decodeTime(input,tag,options):"null_"===tag?this._decodeNull(input,options):"bool"===tag?this._decodeBool(input,options):"objDesc"===tag?this._decodeStr(input,tag,options):"int"===tag||"enum"===tag?this._decodeInt(input,state.args&&state.args[0],options):null!==state.use?this._getUse(state.use,input._reporterState.obj)._decode(input,options):input.error("unknown tag: "+tag)},Node.prototype._getUse=function(entity,obj){const state=this._baseState;return state.useDecoder=this._use(entity,obj),assert(null===state.useDecoder._baseState.parent),state.useDecoder=state.useDecoder._baseState.children[0],state.implicit!==state.useDecoder._baseState.implicit&&(state.useDecoder=state.useDecoder.clone(),state.useDecoder._baseState.implicit=state.implicit),state.useDecoder},Node.prototype._decodeChoice=function(input,options){const state=this._baseState;let result=null,match=!1;return Object.keys(state.choice).some((function(key){const save=input.save(),node=state.choice[key];try{const value=node._decode(input,options);if(input.isError(value))return!1;result={type:key,value:value},match=!0}catch(e){return input.restore(save),!1}return!0}),this),match?result:input.error("Choice not matched")},Node.prototype._createEncoderBuffer=function(data){return new EncoderBuffer(data,this.reporter)},Node.prototype._encode=function(data,reporter,parent){const state=this._baseState;if(null!==state.default&&state.default===data)return;const result=this._encodeValue(data,reporter,parent);return void 0===result||this._skipDefault(result,reporter,parent)?void 0:result},Node.prototype._encodeValue=function(data,reporter,parent){const state=this._baseState;if(null===state.parent)return state.children[0]._encode(data,reporter||new Reporter);let result=null;if(this.reporter=reporter,state.optional&&void 0===data){if(null===state.default)return;data=state.default}let content=null,primitive=!1;if(state.any)result=this._createEncoderBuffer(data);else if(state.choice)result=this._encodeChoice(data,reporter);else if(state.contains)content=this._getUse(state.contains,parent)._encode(data,reporter),primitive=!0;else if(state.children)content=state.children.map((function(child){if("null_"===child._baseState.tag)return child._encode(null,reporter,data);if(null===child._baseState.key)return reporter.error("Child should have a key");const prevKey=reporter.enterKey(child._baseState.key);if("object"!=typeof data)return reporter.error("Child expected, but input is not object");const res=child._encode(data[child._baseState.key],reporter,data);return reporter.leaveKey(prevKey),res}),this).filter((function(child){return child})),content=this._createEncoderBuffer(content);else if("seqof"===state.tag||"setof"===state.tag){if(!state.args||1!==state.args.length)return reporter.error("Too many args for : "+state.tag);if(!Array.isArray(data))return reporter.error("seqof/setof, but data is not Array");const child=this.clone();child._baseState.implicit=null,content=this._createEncoderBuffer(data.map((function(item){const state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter)}),child))}else null!==state.use?result=this._getUse(state.use,parent)._encode(data,reporter):(content=this._encodePrimitive(state.tag,data),primitive=!0);if(!state.any&&null===state.choice){const tag=null!==state.implicit?state.implicit:state.tag,cls=null===state.implicit?"universal":"context";null===tag?null===state.use&&reporter.error("Tag could be omitted only for .use()"):null===state.use&&(result=this._encodeComposite(tag,primitive,cls,content))}return null!==state.explicit&&(result=this._encodeComposite(state.explicit,!1,"context",result)),result},Node.prototype._encodeChoice=function(data,reporter){const state=this._baseState,node=state.choice[data.type];return node||assert(!1,data.type+" not found in "+JSON.stringify(Object.keys(state.choice))),node._encode(data.value,reporter)},Node.prototype._encodePrimitive=function(tag,data){const state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);if("objid"===tag&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);if("objid"===tag)return this._encodeObjid(data,null,null);if("gentime"===tag||"utctime"===tag)return this._encodeTime(data,tag);if("null_"===tag)return this._encodeNull();if("int"===tag||"enum"===tag)return this._encodeInt(data,state.args&&state.reverseArgs[0]);if("bool"===tag)return this._encodeBool(data);if("objDesc"===tag)return this._encodeStr(data,tag);throw new Error("Unsupported tag: "+tag)},Node.prototype._isNumstr=function(str){return/^[0-9 ]*$/.test(str)},Node.prototype._isPrintstr=function(str){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(str)}},{"../base/buffer":105,"../base/reporter":108,"minimalistic-assert":346}],108:[function(require,module,exports){"use strict";const inherits=require("inherits");function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}function ReporterError(path,msg){this.path=path,this.rethrow(msg)}exports.Reporter=Reporter,Reporter.prototype.isError=function(obj){return obj instanceof ReporterError},Reporter.prototype.save=function(){const state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}},Reporter.prototype.restore=function(data){const state=this._reporterState;state.obj=data.obj,state.path=state.path.slice(0,data.pathLen)},Reporter.prototype.enterKey=function(key){return this._reporterState.path.push(key)},Reporter.prototype.exitKey=function(index){const state=this._reporterState;state.path=state.path.slice(0,index-1)},Reporter.prototype.leaveKey=function(index,key,value){const state=this._reporterState;this.exitKey(index),null!==state.obj&&(state.obj[key]=value)},Reporter.prototype.path=function(){return this._reporterState.path.join("/")},Reporter.prototype.enterObject=function(){const state=this._reporterState,prev=state.obj;return state.obj={},prev},Reporter.prototype.leaveObject=function(prev){const state=this._reporterState,now=state.obj;return state.obj=prev,now},Reporter.prototype.error=function(msg){let err;const state=this._reporterState,inherited=msg instanceof ReporterError;if(err=inherited?msg:new ReporterError(state.path.map((function(elem){return"["+JSON.stringify(elem)+"]"})).join(""),msg.message||msg,msg.stack),!state.options.partial)throw err;return inherited||state.errors.push(err),err},Reporter.prototype.wrapResult=function(result){const state=this._reporterState;return state.options.partial?{result:this.isError(result)?null:result,errors:state.errors}:result},inherits(ReporterError,Error),ReporterError.prototype.rethrow=function(msg){if(this.message=msg+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,ReporterError),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},{inherits:294}],109:[function(require,module,exports){"use strict";function reverse(map){const res={};return Object.keys(map).forEach((function(key){(0|key)==key&&(key|=0);const value=map[key];res[value]=key})),res}exports.tagClass={0:"universal",1:"application",2:"context",3:"private"},exports.tagClassByName=reverse(exports.tagClass),exports.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},exports.tagByName=reverse(exports.tag)},{}],110:[function(require,module,exports){"use strict";const constants=exports;constants._reverse=function(map){const res={};return Object.keys(map).forEach((function(key){(0|key)==key&&(key|=0);const value=map[key];res[value]=key})),res},constants.der=require("./der")},{"./der":109}],111:[function(require,module,exports){"use strict";const inherits=require("inherits"),bignum=require("bn.js"),DecoderBuffer=require("../base/buffer").DecoderBuffer,Node=require("../base/node"),der=require("../constants/der");function DERDecoder(entity){this.enc="der",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}function DERNode(parent){Node.call(this,"der",parent)}function derDecodeTag(buf,fail){let tag=buf.readUInt8(fail);if(buf.isError(tag))return tag;const cls=der.tagClass[tag>>6],primitive=0==(32&tag);if(31==(31&tag)){let oct=tag;for(tag=0;128==(128&oct);){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=127&oct}}else tag&=31;return{cls:cls,primitive:primitive,tag:tag,tagStr:der.tag[tag]}}function derDecodeLen(buf,primitive,fail){let len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&128===len)return null;if(0==(128&len))return len;const num=127&len;if(num>4)return buf.error("length octect is too long");len=0;for(let i=0;i<num;i++){len<<=8;const j=buf.readUInt8(fail);if(buf.isError(j))return j;len|=j}return len}module.exports=DERDecoder,DERDecoder.prototype.decode=function(data,options){return DecoderBuffer.isDecoderBuffer(data)||(data=new DecoderBuffer(data,options)),this.tree._decode(data,options)},inherits(DERNode,Node),DERNode.prototype._peekTag=function(buffer,tag,any){if(buffer.isEmpty())return!1;const state=buffer.save(),decodedTag=derDecodeTag(buffer,'Failed to peek tag: "'+tag+'"');return buffer.isError(decodedTag)?decodedTag:(buffer.restore(state),decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+"of"===tag||any)},DERNode.prototype._decodeTag=function(buffer,tag,any){const decodedTag=derDecodeTag(buffer,'Failed to decode tag of "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;let len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of "'+tag+'"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+"of"!==tag)return buffer.error('Failed to match tag: "'+tag+'"');if(decodedTag.primitive||null!==len)return buffer.skip(len,'Failed to match body of: "'+tag+'"');const state=buffer.save(),res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: "'+this.tag+'"');return buffer.isError(res)?res:(len=buffer.offset-state.offset,buffer.restore(state),buffer.skip(len,'Failed to match body of: "'+tag+'"'))},DERNode.prototype._skipUntilEnd=function(buffer,fail){for(;;){const tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;const len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;let res;if(res=tag.primitive||null!==len?buffer.skip(len):this._skipUntilEnd(buffer,fail),buffer.isError(res))return res;if("end"===tag.tagStr)break}},DERNode.prototype._decodeList=function(buffer,tag,decoder,options){const result=[];for(;!buffer.isEmpty();){const possibleEnd=this._peekTag(buffer,"end");if(buffer.isError(possibleEnd))return possibleEnd;const res=decoder.decode(buffer,"der",options);if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result},DERNode.prototype._decodeStr=function(buffer,tag){if("bitstr"===tag){const unused=buffer.readUInt8();return buffer.isError(unused)?unused:{unused:unused,data:buffer.raw()}}if("bmpstr"===tag){const raw=buffer.raw();if(raw.length%2==1)return buffer.error("Decoding of string type: bmpstr length mismatch");let str="";for(let i=0;i<raw.length/2;i++)str+=String.fromCharCode(raw.readUInt16BE(2*i));return str}if("numstr"===tag){const numstr=buffer.raw().toString("ascii");return this._isNumstr(numstr)?numstr:buffer.error("Decoding of string type: numstr unsupported characters")}if("octstr"===tag)return buffer.raw();if("objDesc"===tag)return buffer.raw();if("printstr"===tag){const printstr=buffer.raw().toString("ascii");return this._isPrintstr(printstr)?printstr:buffer.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(tag)?buffer.raw().toString():buffer.error("Decoding of string type: "+tag+" unsupported")},DERNode.prototype._decodeObjid=function(buffer,values,relative){let result;const identifiers=[];let ident=0,subident=0;for(;!buffer.isEmpty();)subident=buffer.readUInt8(),ident<<=7,ident|=127&subident,0==(128&subident)&&(identifiers.push(ident),ident=0);128&subident&&identifiers.push(ident);const first=identifiers[0]/40|0,second=identifiers[0]%40;if(result=relative?identifiers:[first,second].concat(identifiers.slice(1)),values){let tmp=values[result.join(" ")];void 0===tmp&&(tmp=values[result.join(".")]),void 0!==tmp&&(result=tmp)}return result},DERNode.prototype._decodeTime=function(buffer,tag){const str=buffer.raw().toString();let year,mon,day,hour,min,sec;if("gentime"===tag)year=0|str.slice(0,4),mon=0|str.slice(4,6),day=0|str.slice(6,8),hour=0|str.slice(8,10),min=0|str.slice(10,12),sec=0|str.slice(12,14);else{if("utctime"!==tag)return buffer.error("Decoding "+tag+" time is not supported yet");year=0|str.slice(0,2),mon=0|str.slice(2,4),day=0|str.slice(4,6),hour=0|str.slice(6,8),min=0|str.slice(8,10),sec=0|str.slice(10,12),year=year<70?2e3+year:1900+year}return Date.UTC(year,mon-1,day,hour,min,sec,0)},DERNode.prototype._decodeNull=function(){return null},DERNode.prototype._decodeBool=function(buffer){const res=buffer.readUInt8();return buffer.isError(res)?res:0!==res},DERNode.prototype._decodeInt=function(buffer,values){const raw=buffer.raw();let res=new bignum(raw);return values&&(res=values[res.toString(10)]||res),res},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getDecoder("der").tree}},{"../base/buffer":105,"../base/node":107,"../constants/der":109,"bn.js":117,inherits:294}],112:[function(require,module,exports){"use strict";const decoders=exports;decoders.der=require("./der"),decoders.pem=require("./pem")},{"./der":111,"./pem":113}],113:[function(require,module,exports){"use strict";const inherits=require("inherits"),Buffer=require("safer-buffer").Buffer,DERDecoder=require("./der");function PEMDecoder(entity){DERDecoder.call(this,entity),this.enc="pem"}inherits(PEMDecoder,DERDecoder),module.exports=PEMDecoder,PEMDecoder.prototype.decode=function(data,options){const lines=data.toString().split(/[\r\n]+/g),label=options.label.toUpperCase(),re=/^-----(BEGIN|END) ([^-]+)-----$/;let start=-1,end=-1;for(let i=0;i<lines.length;i++){const match=lines[i].match(re);if(null!==match&&match[2]===label){if(-1!==start){if("END"!==match[1])break;end=i;break}if("BEGIN"!==match[1])break;start=i}}if(-1===start||-1===end)throw new Error("PEM section not found for: "+label);const base64=lines.slice(start+1,end).join("");base64.replace(/[^a-z0-9+/=]+/gi,"");const input=Buffer.from(base64,"base64");return DERDecoder.prototype.decode.call(this,input,options)}},{"./der":111,inherits:294,"safer-buffer":435}],114:[function(require,module,exports){"use strict";const inherits=require("inherits"),Buffer=require("safer-buffer").Buffer,Node=require("../base/node"),der=require("../constants/der");function DEREncoder(entity){this.enc="der",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}function DERNode(parent){Node.call(this,"der",parent)}function two(num){return num<10?"0"+num:num}module.exports=DEREncoder,DEREncoder.prototype.encode=function(data,reporter){return this.tree._encode(data,reporter).join()},inherits(DERNode,Node),DERNode.prototype._encodeComposite=function(tag,primitive,cls,content){const encodedTag=function(tag,primitive,cls,reporter){let res;"seqof"===tag?tag="seq":"setof"===tag&&(tag="set");if(der.tagByName.hasOwnProperty(tag))res=der.tagByName[tag];else{if("number"!=typeof tag||(0|tag)!==tag)return reporter.error("Unknown tag: "+tag);res=tag}if(res>=31)return reporter.error("Multi-octet tag encoding unsupported");primitive||(res|=32);return res|=der.tagClassByName[cls||"universal"]<<6,res}(tag,primitive,cls,this.reporter);if(content.length<128){const header=Buffer.alloc(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}let lenOctets=1;for(let i=content.length;i>=256;i>>=8)lenOctets++;const header=Buffer.alloc(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(let i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=255&j;return this._createEncoderBuffer([header,content])},DERNode.prototype._encodeStr=function(str,tag){if("bitstr"===tag)return this._createEncoderBuffer([0|str.unused,str.data]);if("bmpstr"===tag){const buf=Buffer.alloc(2*str.length);for(let i=0;i<str.length;i++)buf.writeUInt16BE(str.charCodeAt(i),2*i);return this._createEncoderBuffer(buf)}return"numstr"===tag?this._isNumstr(str)?this._createEncoderBuffer(str):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===tag?this._isPrintstr(str)?this._createEncoderBuffer(str):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(tag)||"objDesc"===tag?this._createEncoderBuffer(str):this.reporter.error("Encoding of string type: "+tag+" unsupported")},DERNode.prototype._encodeObjid=function(id,values,relative){if("string"==typeof id){if(!values)return this.reporter.error("string objid given, but no values map found");if(!values.hasOwnProperty(id))return this.reporter.error("objid not found in values map");id=values[id].split(/[\s.]+/g);for(let i=0;i<id.length;i++)id[i]|=0}else if(Array.isArray(id)){id=id.slice();for(let i=0;i<id.length;i++)id[i]|=0}if(!Array.isArray(id))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(id));if(!relative){if(id[1]>=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,40*id[0]+id[1])}let size=0;for(let i=0;i<id.length;i++){let ident=id[i];for(size++;ident>=128;ident>>=7)size++}const objid=Buffer.alloc(size);let offset=objid.length-1;for(let i=id.length-1;i>=0;i--){let ident=id[i];for(objid[offset--]=127&ident;(ident>>=7)>0;)objid[offset--]=128|127&ident}return this._createEncoderBuffer(objid)},DERNode.prototype._encodeTime=function(time,tag){let str;const date=new Date(time);return"gentime"===tag?str=[two(date.getUTCFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):"utctime"===tag?str=[two(date.getUTCFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+tag+" time is not supported yet"),this._encodeStr(str,"octstr")},DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer("")},DERNode.prototype._encodeInt=function(num,values){if("string"==typeof num){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num));num=values[num]}if("number"!=typeof num&&!Buffer.isBuffer(num)){const numArray=num.toArray();!num.sign&&128&numArray[0]&&numArray.unshift(0),num=Buffer.from(numArray)}if(Buffer.isBuffer(num)){let size=num.length;0===num.length&&size++;const out=Buffer.alloc(size);return num.copy(out),0===num.length&&(out[0]=0),this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);let size=1;for(let i=num;i>=256;i>>=8)size++;const out=new Array(size);for(let i=out.length-1;i>=0;i--)out[i]=255&num,num>>=8;return 128&out[0]&&out.unshift(0),this._createEncoderBuffer(Buffer.from(out))},DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getEncoder("der").tree},DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){const state=this._baseState;let i;if(null===state.default)return!1;const data=dataBuffer.join();if(void 0===state.defaultBuffer&&(state.defaultBuffer=this._encodeValue(state.default,reporter,parent).join()),data.length!==state.defaultBuffer.length)return!1;for(i=0;i<data.length;i++)if(data[i]!==state.defaultBuffer[i])return!1;return!0}},{"../base/node":107,"../constants/der":109,inherits:294,"safer-buffer":435}],115:[function(require,module,exports){"use strict";const encoders=exports;encoders.der=require("./der"),encoders.pem=require("./pem")},{"./der":114,"./pem":116}],116:[function(require,module,exports){"use strict";const inherits=require("inherits"),DEREncoder=require("./der");function PEMEncoder(entity){DEREncoder.call(this,entity),this.enc="pem"}inherits(PEMEncoder,DEREncoder),module.exports=PEMEncoder,PEMEncoder.prototype.encode=function(data,options){const p=DEREncoder.prototype.encode.call(this,data).toString("base64"),out=["-----BEGIN "+options.label+"-----"];for(let i=0;i<p.length;i+=64)out.push(p.slice(i,i+64));return out.push("-----END "+options.label+"-----"),out.join("\n")}},{"./der":114,inherits:294}],117:[function(require,module,exports){!function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;this.negative=0,this.words=null,this.length=0,this.red=null,null!==number&&("le"!==base&&"be"!==base||(endian=base,base=10),this._init(number||0,base||10,endian||"be"))}var Buffer;"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;try{Buffer=require("buffer").Buffer}catch(e){}function parseHex(str,start,end){for(var r=0,len=Math.min(str.length,end),i=start;i<len;i++){var c=str.charCodeAt(i)-48;r<<=4,r|=c>=49&&c<=54?c-49+10:c>=17&&c<=22?c-17+10:15&c}return r}function parseBase(str,start,end,mul){for(var r=0,len=Math.min(str.length,end),i=start;i<len;i++){var c=str.charCodeAt(i)-48;r*=mul,r+=c>=49?c-49+10:c>=17?c-17+10:c}return r}BN.isBN=function(num){return num instanceof BN||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return left.cmp(right)>0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&start++,16===base?this._parseHex(number,start):this._parseBase(number,base,start),"-"===number[0]&&(this.negative=1),this.strip(),"le"===endian&&this._initArray(this.toArray(),base,endian)},BN.prototype._initNumber=function(number,base,endian){number<0&&(this.negative=1,number=-number),number<67108864?(this.words=[67108863&number],this.length=1):number<4503599627370496?(this.words=[67108863&number,number/67108864&67108863],this.length=2):(assert(number<9007199254740992),this.words=[67108863&number,number/67108864&67108863,1],this.length=3),"le"===endian&&this._initArray(this.toArray(),base,endian)},BN.prototype._initArray=function(number,base,endian){if(assert("number"==typeof number.length),number.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(number.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var j,w,off=0;if("be"===endian)for(i=number.length-1,j=0;i>=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<<off&67108863,this.words[j+1]=w>>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i<number.length;i+=3)w=number[i]|number[i+1]<<8|number[i+2]<<16,this.words[j]|=w<<off&67108863,this.words[j+1]=w>>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this.strip()},BN.prototype._parseHex=function(number,start){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var j,w,off=0;for(i=number.length-6,j=0;i>=start;i-=6)w=parseHex(number,i,i+6),this.words[j]|=w<<off&67108863,this.words[j+1]|=w>>>26-off&4194303,(off+=24)>=26&&(off-=26,j++);i+6!==start&&(w=parseHex(number,start,i+6),this.words[j]|=w<<off&67108863,this.words[j+1]|=w>>>26-off&4194303),this.strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i<end;i+=limbLen)word=parseBase(number,i,i+limbLen,base),this.imuln(limbPow),this.words[0]+word<67108864?this.words[0]+=word:this._iaddn(word);if(0!==mod){var pow=1;for(word=parseBase(number,i,number.length,base),i=0;i<mod;i++)pow*=base;this.imuln(pow),this.words[0]+word<67108864?this.words[0]+=word:this._iaddn(word)}},BN.prototype.copy=function(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++)dest.words[i]=this.words[i];dest.length=this.length,dest.negative=this.negative,dest.red=this.red},BN.prototype.clone=function(){var r=new BN(null);return this.copy(r),r},BN.prototype._expand=function(size){for(;this.length<size;)this.words[this.length++]=0;return this},BN.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k<len;k++){for(var ncarry=carry>>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out.strip()}BN.prototype.toString=function(base,padding){var out;if(padding=0|padding||1,16===(base=base||10)||"hex"===base){out="";for(var off=0,carry=0,i=0;i<this.length;i++){var w=this.words[i],word=(16777215&(w<<off|carry)).toString(16);out=0!==(carry=w>>>24-off&16777215)||i!==this.length-1?zeros[6-word.length]+word+out:word+out,(off+=2)>=26&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(void 0!==Buffer),this.toArrayLike(Buffer,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length"),assert(reqLength>0,"Requested array length <= 0"),this.strip();var b,i,littleEndian="le"===endian,res=new ArrayType(reqLength),q=this.clone();if(littleEndian){for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[i]=b;for(;i<reqLength;i++)res[i]=0}else{for(i=0;i<reqLength-byteLength;i++)res[i]=0;for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[reqLength-i-1]=b}return res},Math.clz32?BN.prototype._countBits=function(w){return 32-Math.clz32(w)}:BN.prototype._countBits=function(w){var t=w,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;i<this.length;i++){var b=this._zeroBits(this.words[i]);if(r+=b,26!==b)break}return r},BN.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},BN.prototype.toTwos=function(width){return 0!==this.negative?this.abs().inotn(width).iaddn(1):this.clone()},BN.prototype.fromTwos=function(width){return this.testn(width-1)?this.notn(width).iaddn(1).ineg():this.clone()},BN.prototype.isNeg=function(){return 0!==this.negative},BN.prototype.neg=function(){return this.clone().ineg()},BN.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},BN.prototype.iuor=function(num){for(;this.length<num.length;)this.words[this.length++]=0;for(var i=0;i<num.length;i++)this.words[i]=this.words[i]|num.words[i];return this.strip()},BN.prototype.ior=function(num){return assert(0==(this.negative|num.negative)),this.iuor(num)},BN.prototype.or=function(num){return this.length>num.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;i<b.length;i++)this.words[i]=this.words[i]&num.words[i];return this.length=b.length,this.strip()},BN.prototype.iand=function(num){return assert(0==(this.negative|num.negative)),this.iuand(num)},BN.prototype.and=function(num){return this.length>num.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;i<b.length;i++)this.words[i]=a.words[i]^b.words[i];if(this!==a)for(;i<a.length;i++)this.words[i]=a.words[i];return this.length=a.length,this.strip()},BN.prototype.ixor=function(num){return assert(0==(this.negative|num.negative)),this.iuxor(num)},BN.prototype.xor=function(num){return this.length>num.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i<bytesNeeded;i++)this.words[i]=67108863&~this.words[i];return bitsLeft>0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<<wbit:this.words[off]&~(1<<wbit),this.strip()},BN.prototype.iadd=function(num){var r,a,b;if(0!==this.negative&&0===num.negative)return this.negative=0,r=this.isub(num),this.negative^=1,this._normSign();if(0===this.negative&&0!==num.negative)return num.negative=0,r=this.isub(num),num.negative=1,r._normSign();this.length>num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i<b.length;i++)r=(0|a.words[i])+(0|b.words[i])+carry,this.words[i]=67108863&r,carry=r>>>26;for(;0!==carry&&i<a.length;i++)r=(0|a.words[i])+carry,this.words[i]=67108863&r,carry=r>>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;i<a.length;i++)this.words[i]=a.words[i];return this},BN.prototype.add=function(num){var res;return 0!==num.negative&&0===this.negative?(num.negative=0,res=this.sub(num),num.negative^=1,res):0===num.negative&&0!==this.negative?(this.negative=0,res=num.sub(this),this.negative=1,res):this.length>num.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i<b.length;i++)carry=(r=(0|a.words[i])-(0|b.words[i])+carry)>>26,this.words[i]=67108863&r;for(;0!==carry&&i<a.length;i++)carry=(r=(0|a.words[i])+carry)>>26,this.words[i]=67108863&r;if(0===carry&&i<a.length&&a!==this)for(;i<a.length;i++)this.words[i]=a.words[i];return this.length=Math.max(this.length,i),a!==this&&(this.negative=1),this.strip()},BN.prototype.sub=function(num){return this.clone().isub(num)};var comb10MulTo=function(self,num,out){var lo,mid,hi,a=self.words,b=num.words,o=out.words,c=0,a0=0|a[0],al0=8191&a0,ah0=a0>>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};function jumboMulTo(self,num,out){return(new FFTM).mulp(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length;return 10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?function(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;for(var rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j,r=(0|self.words[i])*(0|num.words[j]),lo=67108863&r;rword=67108863&(lo=lo+rword|0),hncarry+=(ncarry=(ncarry=ncarry+(r/67108864|0)|0)+(lo>>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out.strip()}(this,num,out):jumboMulTo(this,num,out)},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i<N;i++)t[i]=this.revBin(i,l,N);return t},FFTM.prototype.revBin=function(x,l,N){if(0===x||x===N-1)return x;for(var rb=0,i=0;i<l;i++)rb|=(1&x)<<l-i-1,x>>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i<N;i++)rtws[i]=rws[rbt[i]],itws[i]=iws[rbt[i]]},FFTM.prototype.transform=function(rws,iws,rtws,itws,N,rbt){this.permute(rbt,rws,iws,rtws,itws,N);for(var s=1;s<N;s<<=1)for(var l=s<<1,rtwdf=Math.cos(2*Math.PI/l),itwdf=Math.sin(2*Math.PI/l),p=0;p<N;p+=l)for(var rtwdf_=rtwdf,itwdf_=itwdf,j=0;j<s;j++){var re=rtws[p+j],ie=itws[p+j],ro=rtws[p+j+s],io=itws[p+j+s],rx=rtwdf_*ro-itwdf_*io;io=rtwdf_*io+itwdf_*ro,ro=rx,rtws[p+j]=re+ro,itws[p+j]=ie+io,rtws[p+j+s]=re-ro,itws[p+j+s]=ie-io,j!==l&&(rx=rtwdf*rtwdf_-itwdf*itwdf_,itwdf_=rtwdf*itwdf_+itwdf*rtwdf_,rtwdf_=rx)}},FFTM.prototype.guessLen13b=function(n,m){var N=1|Math.max(m,n),odd=1&N,i=0;for(N=N/2|0;N;N>>>=1)i++;return 1<<i+1+odd},FFTM.prototype.conjugate=function(rws,iws,N){if(!(N<=1))for(var i=0;i<N/2;i++){var t=rws[i];rws[i]=rws[N-i-1],rws[N-i-1]=t,t=iws[i],iws[i]=-iws[N-i-1],iws[N-i-1]=-t}},FFTM.prototype.normalize13b=function(ws,N){for(var carry=0,i=0;i<N/2;i++){var w=8192*Math.round(ws[2*i+1]/N)+Math.round(ws[2*i]/N)+carry;ws[i]=67108863&w,carry=w<67108864?0:w/67108864|0}return ws},FFTM.prototype.convert13b=function(ws,len,rws,N){for(var carry=0,i=0;i<len;i++)carry+=0|ws[i],rws[2*i]=8191&carry,carry>>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i<N;++i)rws[i]=0;assert(0===carry),assert(0==(-8192&carry))},FFTM.prototype.stub=function(N){for(var ph=new Array(N),i=0;i<N;i++)ph[i]=0;return ph},FFTM.prototype.mulp=function(x,y,out){var N=2*this.guessLen13b(x.length,y.length),rbt=this.makeRBT(N),_=this.stub(N),rws=new Array(N),rwst=new Array(N),iwst=new Array(N),nrws=new Array(N),nrwst=new Array(N),niwst=new Array(N),rmws=out.words;rmws.length=N,this.convert13b(x.words,x.length,rws,N),this.convert13b(y.words,y.length,nrws,N),this.transform(rws,_,rwst,iwst,N,rbt),this.transform(nrws,_,nrwst,niwst,N,rbt);for(var i=0;i<N;i++){var rx=rwst[i]*nrwst[i]-iwst[i]*niwst[i];iwst[i]=rwst[i]*niwst[i]+iwst[i]*nrwst[i],rwst[i]=rx}return this.conjugate(rwst,iwst,N),this.transform(rwst,iwst,rmws,_,N,rbt),this.conjugate(rmws,_,N),this.normalize13b(rmws,N),out.negative=x.negative^y.negative,out.length=x.length+y.length,out.strip()},BN.prototype.mul=function(num){var out=new BN(null);return out.words=new Array(this.length+num.length),this.mulTo(num,out)},BN.prototype.mulf=function(num){var out=new BN(null);return out.words=new Array(this.length+num.length),jumboMulTo(this,num,out)},BN.prototype.imul=function(num){return this.clone().mulTo(num,this)},BN.prototype.imuln=function(num){assert("number"==typeof num),assert(num<67108864);for(var carry=0,i=0;i<this.length;i++){var w=(0|this.words[i])*num,lo=(67108863&w)+(67108863&carry);carry>>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit<w.length;bit++){var off=bit/26|0,wbit=bit%26;w[bit]=(num.words[off]&1<<wbit)>>>wbit}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i<w.length&&0===w[i];i++,res=res.sqr());if(++i<w.length)for(var q=res.sqr();i<w.length;i++,q=q.sqr())0!==w[i]&&(res=res.mul(q));return res},BN.prototype.iushln=function(bits){assert("number"==typeof bits&&bits>=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask,c=(0|this.words[i])-newCarry<<r;this.words[i]=c|carry,carry=newCarry>>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i<s;i++)this.words[i]=0;this.length+=s}return this.strip()},BN.prototype.ishln=function(bits){return assert(0===this.negative),this.iushln(bits)},BN.prototype.iushrn=function(bits,hint,extended){var h;assert("number"==typeof bits&&bits>=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<<r,maskedWords=extended;if(h-=s,h=Math.max(0,h),maskedWords){for(var i=0;i<s;i++)maskedWords.words[i]=this.words[i];maskedWords.length=s}if(0===s);else if(this.length>s)for(this.length-=s,i=0;i<this.length;i++)this.words[i]=this.words[i+s];else this.words[0]=0,this.length=1;var carry=0;for(i=this.length-1;i>=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<<r;return!(this.length<=s)&&!!(this.words[s]&q)},BN.prototype.imaskn=function(bits){assert("number"==typeof bits&&bits>=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()},BN.prototype.maskn=function(bits){return this.clone().imaskn(bits)},BN.prototype.iaddn=function(num){return assert("number"==typeof num),assert(num<67108864),num<0?this.isubn(-num):0!==this.negative?1===this.length&&(0|this.words[0])<num?(this.words[0]=num-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(num),this.negative=1,this):this._iaddn(num)},BN.prototype._iaddn=function(num){this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i<this.length&&this.words[i]<0;i++)this.words[i]+=67108864,this.words[i+1]-=1;return this.strip()},BN.prototype.addn=function(num){return this.clone().iaddn(num)},BN.prototype.subn=function(num){return this.clone().isubn(num)},BN.prototype.iabs=function(){return this.negative=0,this},BN.prototype.abs=function(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function(num,mul,shift){var i,w,len=num.length+shift;this._expand(len);var carry=0;for(i=0;i<num.length;i++){w=(0|this.words[i+shift])+carry;var right=(0|num.words[i])*mul;carry=((w-=67108863&right)>>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i<this.length-shift;i++)carry=(w=(0|this.words[i+shift])+carry)>>26,this.words[i+shift]=67108863&w;if(0===carry)return this.strip();for(assert(-1===carry),carry=0,i=0;i<this.length;i++)carry=(w=-(0|this.words[i])+carry)>>26,this.words[i]=67108863&w;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i<q.length;i++)q.words[i]=0}var diff=a.clone()._ishlnsubmul(b,1,m);0===diff.negative&&(a=diff,q&&(q.words[m]=1));for(var j=m-1;j>=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q.strip(),a.strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<<r;if(this.length<=s)return this._expand(s+1),this.words[s]|=q,this;for(var carry=q,i=s;0!==carry&&i<this.length;i++){var w=0|this.words[i];carry=(w+=carry)>>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this.strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:w<num?-1:1}return 0!==this.negative?0|-res:res},BN.prototype.cmp=function(num){if(0!==this.negative&&0===num.negative)return-1;if(0===this.negative&&0!==num.negative)return 1;var res=this.ucmp(num);return 0!==this.negative?0|-res:res},BN.prototype.ucmp=function(num){if(this.length>num.length)return 1;if(this.length<num.length)return-1;for(var res=0,i=this.length-1;i>=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){a<b?res=-1:a>b&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.ucmp(this.p);return 0===cmp?(r.words[0]=0,r.length=1):cmp>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i<outLen;i++)output.words[i]=input.words[i];if(output.length=outLen,input.length<=9)return input.words[0]=0,void(input.length=1);var prev=input.words[9];for(output.words[output.length++]=4194303&prev,i=10;i<input.length;i++){var next=0|input.words[i];input.words[i-10]=(4194303&next)<<4|prev>>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i<num.length;i++){var w=0|num.words[i];lo+=977*w,num.words[i]=67108863&lo,lo=64*w+(lo/67108864|0)}return 0===num.words[num.length-1]&&(num.length--,0===num.words[num.length-1]&&num.length--),num},inherits(P224,MPrime),inherits(P192,MPrime),inherits(P25519,MPrime),P25519.prototype.imulK=function(num){for(var carry=0,i=0;i<num.length;i++){var hi=19*(0|num.words[i])+carry,lo=67108863&hi;hi>>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i<m);var b=this.pow(c,new BN(1).iushln(m-i-1));r=r.redMul(b),c=b.redSqr(),t=t.redMul(c),m=i}return r},Red.prototype.invm=function(a){var inv=a._invmp(this.m);return 0!==inv.negative?(inv.negative=0,this.imod(inv).redNeg()):this.imod(inv)},Red.prototype.pow=function(a,num){if(num.isZero())return new BN(1).toRed(this);if(0===num.cmpn(1))return a.clone();var wnd=new Array(16);wnd[0]=new BN(1).toRed(this),wnd[1]=a;for(var i=2;i<wnd.length;i++)wnd[i]=this.mul(wnd[i-1],a);var res=wnd[0],current=0,currentLen=0,start=num.bitLength()%26;for(0===start&&(start=26),i=num.length-1;i>=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:136}],118:[function(require,module,exports){module.exports={newInvalidAsn1Error:function(msg){var e=new Error;return e.name="InvalidAsn1Error",e.message=msg||"",e}}},{}],119:[function(require,module,exports){var errors=require("./errors"),types=require("./types"),Reader=require("./reader"),Writer=require("./writer");for(var t in module.exports={Reader:Reader,Writer:Writer},types)types.hasOwnProperty(t)&&(module.exports[t]=types[t]);for(var e in errors)errors.hasOwnProperty(e)&&(module.exports[e]=errors[e])},{"./errors":118,"./reader":120,"./types":121,"./writer":122}],120:[function(require,module,exports){var assert=require("assert"),Buffer=require("safer-buffer").Buffer,ASN1=require("./types"),newInvalidAsn1Error=require("./errors").newInvalidAsn1Error;function Reader(data){if(!data||!Buffer.isBuffer(data))throw new TypeError("data must be a node Buffer");this._buf=data,this._size=data.length,this._len=0,this._offset=0}Object.defineProperty(Reader.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(Reader.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(Reader.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(Reader.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),Reader.prototype.readByte=function(peek){if(this._size-this._offset<1)return null;var b=255&this._buf[this._offset];return peek||(this._offset+=1),b},Reader.prototype.peek=function(){return this.readByte(!0)},Reader.prototype.readLength=function(offset){if(void 0===offset&&(offset=this._offset),offset>=this._size)return null;var lenB=255&this._buf[offset++];if(null===lenB)return null;if(128==(128&lenB)){if(0===(lenB&=127))throw newInvalidAsn1Error("Indefinite length not supported");if(lenB>4)throw newInvalidAsn1Error("encoding too long");if(this._size-offset<lenB)return null;this._len=0;for(var i=0;i<lenB;i++)this._len=(this._len<<8)+(255&this._buf[offset++])}else this._len=lenB;return offset},Reader.prototype.readSequence=function(tag){var seq=this.peek();if(null===seq)return null;if(void 0!==tag&&tag!==seq)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+seq.toString(16));var o=this.readLength(this._offset+1);return null===o?null:(this._offset=o,seq)},Reader.prototype.readInt=function(){return this._readTag(ASN1.Integer)},Reader.prototype.readBoolean=function(){return 0!==this._readTag(ASN1.Boolean)},Reader.prototype.readEnumeration=function(){return this._readTag(ASN1.Enumeration)},Reader.prototype.readString=function(tag,retbuf){tag||(tag=ASN1.OctetString);var b=this.peek();if(null===b)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(null===o)return null;if(this.length>this._size-o)return null;if(this._offset=o,0===this.length)return retbuf?Buffer.alloc(0):"";var str=this._buf.slice(this._offset,this._offset+this.length);return this._offset+=this.length,retbuf?str:str.toString("utf8")},Reader.prototype.readOID=function(tag){tag||(tag=ASN1.OID);var b=this.readString(tag,!0);if(null===b)return null;for(var values=[],value=0,i=0;i<b.length;i++){var byte=255&b[i];value<<=7,value+=127&byte,0==(128&byte)&&(values.push(value),value=0)}return value=values.shift(),values.unshift(value%40),values.unshift(value/40>>0),values.join(".")},Reader.prototype._readTag=function(tag){assert.ok(void 0!==tag);var b=this.peek();if(null===b)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(null===o)return null;if(this.length>4)throw newInvalidAsn1Error("Integer too long: "+this.length);if(this.length>this._size-o)return null;this._offset=o;for(var fb=this._buf[this._offset],value=0,i=0;i<this.length;i++)value<<=8,value|=255&this._buf[this._offset++];return 128==(128&fb)&&4!==i&&(value-=1<<8*i),value>>0},module.exports=Reader},{"./errors":118,"./types":121,assert:125,"safer-buffer":435}],121:[function(require,module,exports){module.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}},{}],122:[function(require,module,exports){var assert=require("assert"),Buffer=require("safer-buffer").Buffer,ASN1=require("./types"),newInvalidAsn1Error=require("./errors").newInvalidAsn1Error,DEFAULT_OPTS={size:1024,growthFactor:8};function Writer(options){var from,to;from=DEFAULT_OPTS,to=options||{},assert.ok(from),assert.equal(typeof from,"object"),assert.ok(to),assert.equal(typeof to,"object"),Object.getOwnPropertyNames(from).forEach((function(key){if(!to[key]){var value=Object.getOwnPropertyDescriptor(from,key);Object.defineProperty(to,key,value)}})),options=to,this._buf=Buffer.alloc(options.size||1024),this._size=this._buf.length,this._offset=0,this._options=options,this._seq=[]}Object.defineProperty(Writer.prototype,"buffer",{get:function(){if(this._seq.length)throw newInvalidAsn1Error(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),Writer.prototype.writeByte=function(b){if("number"!=typeof b)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=b},Writer.prototype.writeInt=function(i,tag){if("number"!=typeof i)throw new TypeError("argument must be a Number");"number"!=typeof tag&&(tag=ASN1.Integer);for(var sz=4;(0==(4286578688&i)||-8388608==(4286578688&i))&&sz>1;)sz--,i<<=8;if(sz>4)throw newInvalidAsn1Error("BER ints cannot be > 0xffffffff");for(this._ensure(2+sz),this._buf[this._offset++]=tag,this._buf[this._offset++]=sz;sz-- >0;)this._buf[this._offset++]=(4278190080&i)>>>24,i<<=8},Writer.prototype.writeNull=function(){this.writeByte(ASN1.Null),this.writeByte(0)},Writer.prototype.writeEnumeration=function(i,tag){if("number"!=typeof i)throw new TypeError("argument must be a Number");return"number"!=typeof tag&&(tag=ASN1.Enumeration),this.writeInt(i,tag)},Writer.prototype.writeBoolean=function(b,tag){if("boolean"!=typeof b)throw new TypeError("argument must be a Boolean");"number"!=typeof tag&&(tag=ASN1.Boolean),this._ensure(3),this._buf[this._offset++]=tag,this._buf[this._offset++]=1,this._buf[this._offset++]=b?255:0},Writer.prototype.writeString=function(s,tag){if("string"!=typeof s)throw new TypeError("argument must be a string (was: "+typeof s+")");"number"!=typeof tag&&(tag=ASN1.OctetString);var len=Buffer.byteLength(s);this.writeByte(tag),this.writeLength(len),len&&(this._ensure(len),this._buf.write(s,this._offset),this._offset+=len)},Writer.prototype.writeBuffer=function(buf,tag){if("number"!=typeof tag)throw new TypeError("tag must be a number");if(!Buffer.isBuffer(buf))throw new TypeError("argument must be a buffer");this.writeByte(tag),this.writeLength(buf.length),this._ensure(buf.length),buf.copy(this._buf,this._offset,0,buf.length),this._offset+=buf.length},Writer.prototype.writeStringArray=function(strings){if(!strings instanceof Array)throw new TypeError("argument must be an Array[String]");var self=this;strings.forEach((function(s){self.writeString(s)}))},Writer.prototype.writeOID=function(s,tag){if("string"!=typeof s)throw new TypeError("argument must be a string");if("number"!=typeof tag&&(tag=ASN1.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(s))throw new Error("argument is not a valid OID string");var tmp=s.split("."),bytes=[];bytes.push(40*parseInt(tmp[0],10)+parseInt(tmp[1],10)),tmp.slice(2).forEach((function(b){!function(bytes,octet){octet<128?bytes.push(octet):octet<16384?(bytes.push(octet>>>7|128),bytes.push(127&octet)):octet<2097152?(bytes.push(octet>>>14|128),bytes.push(255&(octet>>>7|128)),bytes.push(127&octet)):octet<268435456?(bytes.push(octet>>>21|128),bytes.push(255&(octet>>>14|128)),bytes.push(255&(octet>>>7|128)),bytes.push(127&octet)):(bytes.push(255&(octet>>>28|128)),bytes.push(255&(octet>>>21|128)),bytes.push(255&(octet>>>14|128)),bytes.push(255&(octet>>>7|128)),bytes.push(127&octet))}(bytes,parseInt(b,10))}));var self=this;this._ensure(2+bytes.length),this.writeByte(tag),this.writeLength(bytes.length),bytes.forEach((function(b){self.writeByte(b)}))},Writer.prototype.writeLength=function(len){if("number"!=typeof len)throw new TypeError("argument must be a Number");if(this._ensure(4),len<=127)this._buf[this._offset++]=len;else if(len<=255)this._buf[this._offset++]=129,this._buf[this._offset++]=len;else if(len<=65535)this._buf[this._offset++]=130,this._buf[this._offset++]=len>>8,this._buf[this._offset++]=len;else{if(!(len<=16777215))throw newInvalidAsn1Error("Length too long (> 4 bytes)");this._buf[this._offset++]=131,this._buf[this._offset++]=len>>16,this._buf[this._offset++]=len>>8,this._buf[this._offset++]=len}},Writer.prototype.startSequence=function(tag){"number"!=typeof tag&&(tag=ASN1.Sequence|ASN1.Constructor),this.writeByte(tag),this._seq.push(this._offset),this._ensure(3),this._offset+=3},Writer.prototype.endSequence=function(){var seq=this._seq.pop(),start=seq+3,len=this._offset-start;if(len<=127)this._shift(start,len,-2),this._buf[seq]=len;else if(len<=255)this._shift(start,len,-1),this._buf[seq]=129,this._buf[seq+1]=len;else if(len<=65535)this._buf[seq]=130,this._buf[seq+1]=len>>8,this._buf[seq+2]=len;else{if(!(len<=16777215))throw newInvalidAsn1Error("Sequence too long");this._shift(start,len,1),this._buf[seq]=131,this._buf[seq+1]=len>>16,this._buf[seq+2]=len>>8,this._buf[seq+3]=len}},Writer.prototype._shift=function(start,len,shift){assert.ok(void 0!==start),assert.ok(void 0!==len),assert.ok(shift),this._buf.copy(this._buf,start+shift,start,start+len),this._offset+=shift},Writer.prototype._ensure=function(len){if(assert.ok(len),this._size-this._offset<len){var sz=this._size*this._options.growthFactor;sz-this._offset<len&&(sz+=len);var buf=Buffer.alloc(sz);this._buf.copy(buf,0,0,this._offset),this._buf=buf,this._size=sz}},module.exports=Writer},{"./errors":118,"./types":121,assert:125,"safer-buffer":435}],123:[function(require,module,exports){var Ber=require("./ber/index");module.exports={Ber:Ber,BerReader:Ber.Reader,BerWriter:Ber.Writer}},{"./ber/index":119}],124:[function(require,module,exports){(function(Buffer,process){(function(){var assert=require("assert"),Stream=require("stream").Stream,util=require("util"),UUID_REGEXP=/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;function _capitalize(str){return str.charAt(0).toUpperCase()+str.slice(1)}function _toss(name,expected,oper,arg,actual){throw new assert.AssertionError({message:util.format("%s (%s) is required",name,expected),actual:void 0===actual?typeof arg:actual(arg),expected:expected,operator:oper||"===",stackStartFunction:_toss.caller})}function _getClass(arg){return Object.prototype.toString.call(arg).slice(8,-1)}function noop(){}var types={bool:{check:function(arg){return"boolean"==typeof arg}},func:{check:function(arg){return"function"==typeof arg}},string:{check:function(arg){return"string"==typeof arg}},object:{check:function(arg){return"object"==typeof arg&&null!==arg}},number:{check:function(arg){return"number"==typeof arg&&!isNaN(arg)}},finite:{check:function(arg){return"number"==typeof arg&&!isNaN(arg)&&isFinite(arg)}},buffer:{check:function(arg){return Buffer.isBuffer(arg)},operator:"Buffer.isBuffer"},array:{check:function(arg){return Array.isArray(arg)},operator:"Array.isArray"},stream:{check:function(arg){return arg instanceof Stream},operator:"instanceof",actual:_getClass},date:{check:function(arg){return arg instanceof Date},operator:"instanceof",actual:_getClass},regexp:{check:function(arg){return arg instanceof RegExp},operator:"instanceof",actual:_getClass},uuid:{check:function(arg){return"string"==typeof arg&&UUID_REGEXP.test(arg)},operator:"isUUID"}};module.exports=function _setExports(ndebug){var out,keys=Object.keys(types);return out=process.env.NODE_NDEBUG?noop:function(arg,msg){arg||_toss(msg,"true",arg)},keys.forEach((function(k){if(ndebug)out[k]=noop;else{var type=types[k];out[k]=function(arg,msg){type.check(arg)||_toss(msg,k,type.operator,arg,type.actual)}}})),keys.forEach((function(k){var name="optional"+_capitalize(k);if(ndebug)out[name]=noop;else{var type=types[k];out[name]=function(arg,msg){null!=arg&&(type.check(arg)||_toss(msg,k,type.operator,arg,type.actual))}}})),keys.forEach((function(k){var name="arrayOf"+_capitalize(k);if(ndebug)out[name]=noop;else{var type=types[k],expected="["+k+"]";out[name]=function(arg,msg){var i;for(Array.isArray(arg)||_toss(msg,expected,type.operator,arg,type.actual),i=0;i<arg.length;i++)type.check(arg[i])||_toss(msg,expected,type.operator,arg,type.actual)}}})),keys.forEach((function(k){var name="optionalArrayOf"+_capitalize(k);if(ndebug)out[name]=noop;else{var type=types[k],expected="["+k+"]";out[name]=function(arg,msg){var i;if(null!=arg)for(Array.isArray(arg)||_toss(msg,expected,type.operator,arg,type.actual),i=0;i<arg.length;i++)type.check(arg[i])||_toss(msg,expected,type.operator,arg,type.actual)}}})),Object.keys(assert).forEach((function(k){out[k]="AssertionError"!==k&&ndebug?noop:assert[k]})),out._setExports=_setExports,out}(process.env.NODE_NDEBUG)}).call(this)}).call(this,{isBuffer:require("../is-buffer/index.js")},require("_process"))},{"../is-buffer/index.js":295,_process:381,assert:125,stream:470,util:507}],125:[function(require,module,exports){(function(global){(function(){"use strict";var objectAssign=require("object-assign");
|
|
1
|
+
!function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){return o(e[i][1][r]||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}({1:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const Pulsar_1=require("./pulsar/Pulsar"),PulsarStaticAnalysis_1=require("./pulsar/PulsarStaticAnalysis");window.PCPulsar=Pulsar_1.PCPulsar,window.PCPulsarStaticAnalysis=PulsarStaticAnalysis_1.PCPulsarStaticAnalysis},{"./pulsar/Pulsar":45,"./pulsar/PulsarStaticAnalysis":47}],2:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportEngine=void 0;const ExportItemWriter_1=require("./writing/writers/ExportItemWriter"),ExportItemProducer_1=require("./items/ExportItemProducer"),ExportDataProducer_1=require("./generation/ExportDataProducer");exports.PCExportEngine=class{constructor(configuration){this.configuration=configuration,this.dataProducer=new ExportDataProducer_1.PCExportDataProducer(configuration),this.itemProducer=new ExportItemProducer_1.PCExportItemProducer(configuration),this.itemWriter=new ExportItemWriter_1.PCExportItemWriter(configuration),this.runId="random-id"}processExportValidate(){return new Promise(((response,reject)=>{this.dataProducer.validateCanProduceData().then((()=>{this.itemProducer.validateCanProduceItems().then((()=>{this.itemWriter.validateCanWriteItems().then((()=>{response(!0)})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))}))}processExport(){return new Promise(((resolve,reject)=>{this.processExportValidate().then((()=>{this.processExportValidated().then((()=>{resolve(this.configuration.outputStore)})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))}))}processExportValidated(){return new Promise(((resolve,reject)=>{this.dataProducer.produceData().then((dataProducerResponses=>{this.itemProducer.produceItemsFromResponses(dataProducerResponses).then((itemProducerResponses=>{this.itemWriter.write(itemProducerResponses).then((writerResponses=>{resolve(writerResponses)})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))})).catch((error=>{reject(error)}))}))}}},{"./generation/ExportDataProducer":4,"./items/ExportItemProducer":21,"./writing/writers/ExportItemWriter":37}],3:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportConfiguration=void 0;const ExportWriterStore_1=require("./../writing/writers/memory/ExportWriterStore"),main_1=require("@supernova-studio/pulsar-language/build/main"),BlueprintLoader_1=require("../loaders/BlueprintLoader"),Logger_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger");exports.PCExportConfiguration=class{constructor(exporter,logger,dsmStore,dsmBridgeConfig,exportMode,sandboxData){this.outputPathPrefix="",this.exporter=exporter,this.exportMode=exportMode,this.logger=logger,this.outputStore=new ExportWriterStore_1.PCExportWriterMemoryStore,this.dsmStore=dsmStore,this.dsmBridgeConfig=dsmBridgeConfig,this.sandboxData=sandboxData}newExecutionContext(){let blueprintLoader=new BlueprintLoader_1.PCBlueprintLoader(this.exporter),blueprintEmitter=new main_1.PLMemoryBlueprintEmitter(!1),logger=new Logger_1.PLLogger,bridge=new main_1.DSMBridge(this.dsmBridgeConfig);return new main_1.DSMExecutionContext(blueprintLoader,blueprintEmitter,logger,bridge,this.sandboxData)}}},{"../loaders/BlueprintLoader":30,"./../writing/writers/memory/ExportWriterStore":40,"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger":613}],4:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataProducer=void 0;const ExportDataQueue_1=require("./queue/ExportDataQueue"),ExportDataEmittedResponseProducer_1=require("./requests/ExportDataEmittedResponseProducer"),ExportDataPrimaryResponseProducer_1=require("./requests/ExportDataPrimaryResponseProducer"),ExportDataRequestProducer_1=require("./requests/ExportDataRequestProducer"),Pulsar_1=require("../../pulsar/Pulsar");exports.PCExportDataProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration,this.processingQueue=new ExportDataQueue_1.PCExportDataQueue(exportConfiguration)}validateCanProduceData(){return new Promise(((resolve,_)=>{resolve()}))}produceData(){return new Promise(((resolve,reject)=>{for(let map of this.configuration.exporter.outputs.values()){let skipGeneration=!1,source=this.configuration.exporter.sourceByIdIgnoringExecutableExtension(map.invoke);if(!source)throw`Output defines unknown source '${map.invoke}'`;switch(this.configuration.exportMode){case Pulsar_1.PCPulsarExporterMode.ci:skipGeneration=!source.targetsCI;break;case Pulsar_1.PCPulsarExporterMode.docs:skipGeneration=!source.targetsDocumentation;break;case Pulsar_1.PCPulsarExporterMode.sandbox:skipGeneration=!source.targetsSandbox}if(!skipGeneration){let requests=this.generateRequestsForMap(map);this.processingQueue.addQueuedRequests(requests)}}this.processingQueue.processQueue().then((processedRequests=>{let primaryResponses=this.generatePrimaryResponsesFromFinishedRequests(processedRequests),emittedResponses=this.generateEmittedResponsesFromFinishedRequests(processedRequests),result=primaryResponses.concat(emittedResponses);resolve(result)})).catch((error=>{reject(error)}))}))}generateRequestsForMap(map){return new ExportDataRequestProducer_1.PCExportDataRequestProducer(this.configuration).produceRequestsForMap(map)}generatePrimaryResponsesFromFinishedRequests(requests){return(new ExportDataPrimaryResponseProducer_1.PCExportDataPrimaryResponseProducer).producePrimaryResponsesFromRequests(requests)}generateEmittedResponsesFromFinishedRequests(requests){return(new ExportDataEmittedResponseProducer_1.PCExportDataEmittedResponseProducer).produceEmittedResponsesFromRequests(requests)}}},{"../../pulsar/Pulsar":45,"./queue/ExportDataQueue":5,"./requests/ExportDataEmittedResponseProducer":7,"./requests/ExportDataPrimaryResponseProducer":8,"./requests/ExportDataRequestProducer":12}],5:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataQueue=void 0;const ExportDataQueueOperation_1=require("./ExportDataQueueOperation");exports.PCExportDataQueue=class{constructor(configuration){this.isLockedForChanges=!1,this.isFinished=!1,this.configuration=configuration,this.waitingOperations=new Array,this.requests=new Array,this.requestsCompleted=0}addQueuedRequest(request){let operation=new ExportDataQueueOperation_1.PCExportDataQueueOperation(request);this.requests.push(request),this.waitingOperations.push(operation)}addQueuedRequests(requests){requests.forEach((r=>{this.addQueuedRequest(r)}))}clearQueue(){this.requestsCompleted=0,this.waitingOperations=[]}processQueue(){return this.isLockedForChanges=!0,this.requestsCompleted=0,new Promise(((resolve,reject)=>{let queue=new Array;for(let operation of this.waitingOperations){let promise=operation.processOperation();queue.push(promise)}Promise.all(queue).then((result=>{resolve(result)})).catch((error=>{reject(error)}))}))}}},{"./ExportDataQueueOperation":6}],6:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataQueueOperation=void 0;exports.PCExportDataQueueOperation=class{constructor(request){this.request=request}processOperation(){return new Promise(((respond,reject)=>{this.request.produceData().then((response=>{respond(response)})).catch((error=>{reject(error)}))}))}}},{}],7:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataEmittedResponseProducer=void 0;const ExportDataResponse_1=require("./ExportDataResponse"),ExportDataRequestDataStore_1=require("./ExportDataRequestDataStore"),ExportDataRequestNameStore_1=require("./ExportDataRequestNameStore");exports.PCExportDataEmittedResponseProducer=class{constructor(){}produceEmittedResponsesFromRequests(requests){let result=[];for(let request of requests){let responses=this.produceEmittedResponsesFromRequest(request);for(let response of responses)result.push(response)}return result}produceEmittedResponsesFromRequest(request){let responses=[];for(let emittedContent of request.emittedContent){let filename=emittedContent.filename,content=emittedContent.content,dataStore=ExportDataRequestDataStore_1.PCExportDataRequestDataStore.storeWithPlainData(content),nameStore=ExportDataRequestNameStore_1.PCExportDataRequestNameStore.storeWithResolvedName(filename),response=new ExportDataResponse_1.PCExportDataResponse(request,request.map,dataStore,nameStore,[]);responses.push(response)}return responses}}},{"./ExportDataRequestDataStore":10,"./ExportDataRequestNameStore":11,"./ExportDataResponse":13}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataPrimaryResponseProducer=void 0;const ExportDataResponse_1=require("./ExportDataResponse");exports.PCExportDataPrimaryResponseProducer=class{constructor(){}producePrimaryResponsesFromRequests(requests){let responses=[];for(let request of requests){let response=this.producePrimaryResponseFromRequest(request);responses.push(response)}return responses}producePrimaryResponseFromRequest(request){return new ExportDataResponse_1.PCExportDataResponse(request,request.map,request.dataStore,request.nameStore,request.emittedContent)}}},{"./ExportDataResponse":13}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequest=void 0;const ExportDataRequestDataStore_1=require("./ExportDataRequestDataStore"),ExportDataRequestNameStore_1=require("./ExportDataRequestNameStore");exports.PCExportDataRequest=class{constructor(configuration,map){this.processingError=null,this.processingFinished=!1,this.map=map,this.configuration=configuration}produceData(){throw Error("Content must be produced by each individual subclass")}requestSuccesfullGeneratingPlainData(plainData,nameData,emittedContent){this.processingFinished=!0,this.dataStore=ExportDataRequestDataStore_1.PCExportDataRequestDataStore.storeWithPlainData(plainData),this.nameStore=ExportDataRequestNameStore_1.PCExportDataRequestNameStore.storeWithPlainData(nameData),this.emittedContent=emittedContent}requestSuccessfullGeneratingMultipartData(multipartData,multipartNameData,emittedContent){this.processingFinished=!0,this.dataStore=ExportDataRequestDataStore_1.PCExportDataRequestDataStore.storeWithMultipartData(multipartData),this.nameStore=ExportDataRequestNameStore_1.PCExportDataRequestNameStore.storeWithMultipartData(multipartNameData),this.emittedContent=emittedContent}requestFailed(error){this.processingFinished=!0,this.processingError=error}}},{"./ExportDataRequestDataStore":10,"./ExportDataRequestNameStore":11}],10:[function(require,module,exports){"use strict";var PCExportDataRequestDataStoreMode;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDataStore=exports.PCExportDataRequestDataStoreMode=void 0,function(PCExportDataRequestDataStoreMode){PCExportDataRequestDataStoreMode[PCExportDataRequestDataStoreMode.plain=0]="plain",PCExportDataRequestDataStoreMode[PCExportDataRequestDataStoreMode.multipart=1]="multipart"}(PCExportDataRequestDataStoreMode=exports.PCExportDataRequestDataStoreMode||(exports.PCExportDataRequestDataStoreMode={}));class PCExportDataRequestDataStore{constructor(mode){this.plainDataKey="_plain_data",this.mode=mode,this.dataStore=new Map}static storeWithPlainData(data){let store=new PCExportDataRequestDataStore(PCExportDataRequestDataStoreMode.plain);return store.dataStore.set(store.plainDataKey,data),store}static storeWithMultipartData(data){let store=new PCExportDataRequestDataStore(PCExportDataRequestDataStoreMode.multipart);return store.dataStore=data,store}plainData(){if(this.mode===PCExportDataRequestDataStoreMode.multipart)throw Error("Using plain data in multipart store is prohibited");return this.dataStore.get(this.plainDataKey)}multipartData(){return this.dataStore}}exports.PCExportDataRequestDataStore=PCExportDataRequestDataStore},{}],11:[function(require,module,exports){"use strict";var PCExportDataRequestNameStoreMode;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestNameStore=exports.PCExportDataRequestNameStoreMode=void 0,function(PCExportDataRequestNameStoreMode){PCExportDataRequestNameStoreMode[PCExportDataRequestNameStoreMode.plain=0]="plain",PCExportDataRequestNameStoreMode[PCExportDataRequestNameStoreMode.multipart=1]="multipart",PCExportDataRequestNameStoreMode[PCExportDataRequestNameStoreMode.resolved=2]="resolved"}(PCExportDataRequestNameStoreMode=exports.PCExportDataRequestNameStoreMode||(exports.PCExportDataRequestNameStoreMode={}));class PCExportDataRequestNameStore{constructor(mode){this.plainDataKey="_plain_data",this.resolvedDataKey="_resolved_name",this.mode=mode,this.nameStore=new Map}static storeWithResolvedName(name){let store=new PCExportDataRequestNameStore(PCExportDataRequestNameStoreMode.resolved),data=new Map;return data.set(store.plainDataKey,name),store.nameStore.set(store.resolvedDataKey,data),store}static storeWithPlainData(data){let store=new PCExportDataRequestNameStore(PCExportDataRequestNameStoreMode.plain);return store.nameStore.set(store.plainDataKey,data),store}static storeWithMultipartData(data){let store=new PCExportDataRequestNameStore(PCExportDataRequestNameStoreMode.multipart);return store.nameStore=data,store}plainData(){return this.checkInCorrectMode(PCExportDataRequestNameStoreMode.plain),this.nameStore.get(this.plainDataKey)}multipartData(){return this.checkInCorrectMode(PCExportDataRequestNameStoreMode.multipart),this.nameStore}resolvedData(){return this.checkInCorrectMode(PCExportDataRequestNameStoreMode.resolved),this.nameStore.get(this.resolvedDataKey).get(this.plainDataKey)}checkInCorrectMode(mode){if(this.mode!==mode)throw Error(`Using data mode ${mode} is prohibited in store that was created as ${this.mode}`);return!0}isPlain(){return this.mode===PCExportDataRequestNameStoreMode.plain}isMultipart(){return this.mode===PCExportDataRequestNameStoreMode.multipart}isResolved(){return this.mode===PCExportDataRequestNameStoreMode.resolved}}exports.PCExportDataRequestNameStore=PCExportDataRequestNameStore},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestProducer=void 0;const ExporterSource_1=require("../../../model/sources/ExporterSource"),ExportDataRequestDSMComponent_1=require("./specific/dsm/ExportDataRequestDSMComponent"),ExportDataRequestDSMGeneric_1=require("./specific/dsm/ExportDataRequestDSMGeneric"),ExportDataRequestDSMTheme_1=require("./specific/dsm/ExportDataRequestDSMTheme"),ExportDataRequestDSMTokenGroup_1=require("./specific/dsm/ExportDataRequestDSMTokenGroup"),ExportDataRequestDSMComponentGroup_1=require("./specific/dsm/ExportDataRequestDSMComponentGroup"),ExportDataRequestDSMTokenType_1=require("./specific/dsm/ExportDataRequestDSMTokenType");exports.PCExportDataRequestProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration}produceRequestsForMap(map){var _a;let sourceId=map.invoke,referencedSource=this.configuration.exporter.sourceByIdIgnoringExecutableExtension(sourceId);if(!referencedSource)throw Error(`Source ${null!==(_a=map.write_using)&&void 0!==_a?_a:""} defined inside output not found`);switch(referencedSource.context){case ExporterSource_1.PCExporterSourceContextType.generic:case ExporterSource_1.PCExporterSourceContextType.component:case ExporterSource_1.PCExporterSourceContextType.componentGroup:case ExporterSource_1.PCExporterSourceContextType.tokenType:case ExporterSource_1.PCExporterSourceContextType.tokenGroup:case ExporterSource_1.PCExporterSourceContextType.theme:return this.createExporterEntryDSMDataRequest(referencedSource,map);default:return[]}}createExporterEntryDSMDataRequest(source,map){switch(source.context){case ExporterSource_1.PCExporterSourceContextType.generic:return this.createExporterEntryRequestsForDSMGenericOption(source,map);case ExporterSource_1.PCExporterSourceContextType.component:return this.createExporterEntryRequestsForDSMComponentOption(source,map);case ExporterSource_1.PCExporterSourceContextType.componentGroup:return this.createExporterEntryRequestsForDSMComponentGroupOption(source,map);case ExporterSource_1.PCExporterSourceContextType.tokenGroup:return this.createExporterEntryRequestsForDSMTokenGroupOption(source,map);case ExporterSource_1.PCExporterSourceContextType.tokenType:return this.createExporterEntryRequestsForDSMTokenTypeOption(source,map);case ExporterSource_1.PCExporterSourceContextType.theme:return this.createExporterEntryRequestsForDSMThemeOption(source,map);default:return[]}}createExporterEntryRequestsForDSMGenericOption(source,map){let executionContext=this.configuration.newExecutionContext();return[new ExportDataRequestDSMGeneric_1.PCExportDataRequestDSMGeneric(source,map,this.configuration,executionContext)]}createExporterEntryRequestsForDSMComponentOption(source,map){let requests=[],components=this.configuration.dsmStore.executableComponents();for(let component of components){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMComponent_1.PCExportDataRequestDSMComponent(component,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMComponentGroupOption(source,map){let requests=[],components=this.configuration.dsmStore.executableComponentGroups();for(let component of components){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMComponentGroup_1.PCExportDataRequestDSMComponentGroup(component,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMTokenGroupOption(source,map){let requests=[],tokenGroups=this.configuration.dsmStore.executableTokenGroups();for(let tokenGroup of tokenGroups){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMTokenGroup_1.PCExportDataRequestDSMTokenGroup(tokenGroup,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMThemeOption(source,map){let requests=[],themes=this.configuration.dsmStore.executableThemes();for(let theme of themes){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMTheme_1.PCExportDataRequestDSMTheme(theme,source,map,this.configuration,executionContext);requests.push(request)}return requests}createExporterEntryRequestsForDSMTokenTypeOption(source,map){let requests=[],tokenTypes=this.configuration.dsmStore.executableTokenTypes();for(let tokenType of tokenTypes){let executionContext=this.configuration.newExecutionContext(),request=new ExportDataRequestDSMTokenType_1.PCExportDataRequestDSMTokenType(tokenType,source,map,this.configuration,executionContext);requests.push(request)}return requests}}},{"../../../model/sources/ExporterSource":44,"./specific/dsm/ExportDataRequestDSMComponent":15,"./specific/dsm/ExportDataRequestDSMComponentGroup":16,"./specific/dsm/ExportDataRequestDSMGeneric":17,"./specific/dsm/ExportDataRequestDSMTheme":18,"./specific/dsm/ExportDataRequestDSMTokenGroup":19,"./specific/dsm/ExportDataRequestDSMTokenType":20}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataResponse=void 0;exports.PCExportDataResponse=class{constructor(request,map,dataStore,nameStore,emittedContent){this.request=request,this.dataStore=dataStore,this.nameStore=nameStore,this.emittedContent=emittedContent,this.map=map}}},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestBlueprint=void 0;const ExportDataRequest_1=require("../../ExportDataRequest"),main_1=require("@supernova-studio/pulsar-language/build/main"),main_2=require("@supernova-studio/pulsar-language/build/main"),main_3=require("@supernova-studio/pulsar-language/build/main");class PCExportDataRequestBlueprint extends ExportDataRequest_1.PCExportDataRequest{constructor(configuration,map,executionContext){super(configuration,map),this.executionContext=executionContext}processBlueprintData(source,context,name){return new Promise((async(resolve,reject)=>{try{name?this.configuration.logger.logInfo(`Exporting source ${source.id} for ${name}`,""):this.configuration.logger.logInfo(`Exporting source ${source.id}`,"");let definitionBlueprint=main_1.PLBlueprintFactory.blueprint(source.content,source.id,this.executionContext),interpretingContext=new main_2.PLInterpreterContext(context),interpreter=new main_3.PLInterpreter,result=await interpreter.interpret(definitionBlueprint,interpretingContext,this.executionContext),emittedContent=this.executionContext.blueprintEmitter.allEmittedContent();name?this.configuration.logger.logInfo(`Finished exporting source ${source.id} for ${name}`,""):this.configuration.logger.logInfo(`Finished exporting source ${source.id}`,""),resolve({data:result,emittedContext:emittedContent})}catch(error){this.logBlueprintProcessingFailure(error,source,name),reject(error)}}))}logBlueprintProcessingFailure(error,source,name){let reason=error.message;name?this.configuration.logger.logError(`Export of source ${source.id} for ${name} failed`,""):this.configuration.logger.logError(`Export of source ${source.id} failed`,""),this.configuration.logger.logError(`Reason: ${reason}`,"")}}exports.PCExportDataRequestBlueprint=PCExportDataRequestBlueprint},{"../../ExportDataRequest":9,"@supernova-studio/pulsar-language/build/main":552}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMComponent=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMComponent extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("componentId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`component ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMComponent=PCExportDataRequestDSMComponent},{"./ExportDataRequestBlueprint":14}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMComponentGroup=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMComponentGroup extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("groupId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`component group ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMComponentGroup=PCExportDataRequestDSMComponentGroup},{"./ExportDataRequestBlueprint":14}],17:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMGeneric=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMGeneric extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source}produceData(){let context=new Map;return new Promise(((resolve,reject)=>{this.processBlueprintData(this.source,context,null).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMGeneric=PCExportDataRequestDSMGeneric},{"./ExportDataRequestBlueprint":14}],18:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMTheme=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMTheme extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("themeId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`theme ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMTheme=PCExportDataRequestDSMTheme},{"./ExportDataRequestBlueprint":14}],19:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMTokenGroup=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMTokenGroup extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("groupId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`token group ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMTokenGroup=PCExportDataRequestDSMTokenGroup},{"./ExportDataRequestBlueprint":14}],20:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportDataRequestDSMTokenType=void 0;const ExportDataRequestBlueprint_1=require("./ExportDataRequestBlueprint");class PCExportDataRequestDSMTokenType extends ExportDataRequestBlueprint_1.PCExportDataRequestBlueprint{constructor(entry,source,map,configuration,executionContext){super(configuration,map,executionContext),this.source=source,this.entry=entry}produceData(){let context=new Map;return context.set("tokenTypeId",this.entry.id),new Promise(((resolve,reject)=>{var _a;let debugName=`token type ${null!==(_a=this.entry.name)&&void 0!==_a?_a:""}`;this.processBlueprintData(this.source,context,debugName).then((result=>{this.requestSuccesfullGeneratingPlainData(result.data,context,result.emittedContext),resolve(this)})).catch((error=>{this.requestFailed(error),reject(error)}))}))}}exports.PCExportDataRequestDSMTokenType=PCExportDataRequestDSMTokenType},{"./ExportDataRequestBlueprint":14}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemProducer=void 0;const ExportItemQueue_1=require("./queue/ExportItemQueue"),ExportItemResponseProducer_1=require("./requests/ExportItemResponseProducer"),ExportItemRequestProducer_1=require("./requests/ExportItemRequestProducer");exports.PCExportItemProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration,this.processingQueue=new ExportItemQueue_1.PCExportItemQueue(exportConfiguration)}validateCanProduceItems(){return new Promise(((resolve,_)=>{resolve()}))}produceItemsFromResponses(responses){return new Promise(((resolve,reject)=>{for(let dataResponse of responses){let requests=this.generateRequestsForDataResponse(dataResponse);this.processingQueue.addQueuedRequests(requests)}this.processingQueue.processQueue().then((processedRequests=>{let responses=this.generateResponsesFromFinishedRequests(processedRequests);resolve(responses)})).catch((error=>{reject(error)}))}))}generateRequestsForDataResponse(dataResponse){return new ExportItemRequestProducer_1.PCExportItemRequestProducer(this.configuration).produceRequestsForDataResponse(dataResponse)}generateResponsesFromFinishedRequests(finishedRequests){return(new ExportItemResponseProducer_1.PCExportItemResponseProducer).produceResponsesFromRequests(finishedRequests)}}},{"./queue/ExportItemQueue":24,"./requests/ExportItemRequestProducer":27,"./requests/ExportItemResponseProducer":29}],22:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItem=void 0;exports.PCExportItem=class{constructor(map,contentData,nameData,resolvedName){this.map=map,this.contentData=contentData,this.nameData=nameData,this.resolvedName=resolvedName}}},{}],23:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemBuilder=void 0;const ExportItem_1=require("./ExportItem");exports.PCExportItemBuilder=class{constructor(){}buildItemsUsingResponse(response){let request=response.request;return this.buildBlueprintItemsUsingRequest(request,response)}buildBlueprintItemsUsingRequest(_request,response){let contentData=response.dataStore.plainData(),nameData=response.nameStore.isPlain()?response.nameStore.plainData():new Map,resolvedName=response.nameStore.isResolved()?response.nameStore.resolvedData():null;return[new ExportItem_1.PCExportItem(response.map,contentData,nameData,resolvedName)]}buildAssetItemsUsingRequest(_request,_response){throw new Error("Unsupported type of request")}}},{"./ExportItem":22}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemQueue=void 0;const ExportItemQueueOperation_1=require("./ExportItemQueueOperation");exports.PCExportItemQueue=class{constructor(configuration){this.isLockedForChanges=!1,this.isFinished=!1,this.configuration=configuration,this.waitingOperations=new Array,this.requests=new Array,this.requestsCompleted=0}addQueuedRequest(request){let operation=new ExportItemQueueOperation_1.PCExportItemQueueOperation(request);this.requests.push(request),this.waitingOperations.push(operation)}addQueuedRequests(requests){requests.forEach((r=>{this.addQueuedRequest(r)}))}clearQueue(){this.requestsCompleted=0,this.waitingOperations=[]}processQueue(){return this.isLockedForChanges=!0,this.requestsCompleted=0,new Promise(((resolve,reject)=>{let queue=new Array;for(let operation of this.waitingOperations){let promise=operation.processOperation();queue.push(promise)}Promise.all(queue).then((_=>{resolve(this.requests)})).catch((error=>{reject(error)}))}))}}},{"./ExportItemQueueOperation":25}],25:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemQueueOperation=void 0;exports.PCExportItemQueueOperation=class{constructor(request){this.request=request}processOperation(){return new Promise(((respond,reject)=>{this.request.produceItem().then((_=>{respond(this.request)})).catch((error=>{reject(error)}))}))}}},{}],26:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemRequest=void 0;const ExportItemBuilder_1=require("./../construction/ExportItemBuilder");exports.PCExportItemRequest=class{constructor(configuration,dataResponse){this.items=null,this.error=null,this.processingError=null,this.processingFinished=!1,this.dataResponse=dataResponse,this.configuration=configuration}produceItem(){return new Promise(((resolve,reject)=>{try{let items=(new ExportItemBuilder_1.PCExportItemBuilder).buildItemsUsingResponse(this.dataResponse);this.requestSuccessful(items),resolve(items)}catch(error){this.requestFailed(error),reject(error)}}))}cancel(){}requestSuccessful(items){this.processingFinished=!0,this.items=items}requestFailed(error){this.processingFinished=!0,this.processingError=error}}},{"./../construction/ExportItemBuilder":23}],27:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemRequestProducer=void 0;const ExportItemRequest_1=require("./ExportItemRequest");exports.PCExportItemRequestProducer=class{constructor(exportConfiguration){this.configuration=exportConfiguration}produceRequestsForDataResponse(dataResponse){return[new ExportItemRequest_1.PCExportItemRequest(this.configuration,dataResponse)]}}},{"./ExportItemRequest":26}],28:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemResponse=void 0;exports.PCExportItemResponse=class{constructor(item,map,request){this.item=item,this.map=map,this.request=request}}},{}],29:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemResponseProducer=void 0;const ExportItemResponse_1=require("./ExportItemResponse");exports.PCExportItemResponseProducer=class{constructor(){}produceResponsesFromRequests(requests){let responses=[];for(let request of requests){let requestResponses=this.produceResponseFromRequest(request);for(let response of requestResponses)responses.push(response)}return responses}produceResponseFromRequest(request){var _a;let responses=[];for(let item of null!==(_a=request.items)&&void 0!==_a?_a:[]){let response=new ExportItemResponse_1.PCExportItemResponse(item,item.map,request);responses.push(response)}return responses}}},{"./ExportItemResponse":28}],30:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCBlueprintLoader=void 0;const BlueprintLoader_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader"),main_1=require("@supernova-studio/pulsar-language/build/main");class PCBlueprintLoader extends BlueprintLoader_1.PLBlueprintLoader{constructor(exporter){super(),this.exporter=exporter}loadBlueprint(blueprintId,executionContext,configuration){let cachedBlueprint=this.cachedBlueprint(blueprintId),containedBlueprint=this.exporter.sourceByIdIgnoringExecutableExtension(blueprintId);if(!cachedBlueprint&&!containedBlueprint)for(const bp of this.exporter.sources.values())if(bp.id===blueprintId){blueprintId=bp.id;break}return this.loadSourceForSourceId(blueprintId,executionContext,configuration)}loadSourceForSourceId(sourceId,executionContext,configuration){let cachedBlueprint=this.cachedBlueprint(sourceId);if(cachedBlueprint)return cachedBlueprint;let containedBlueprint=this.exporter.sourceByIdIgnoringExecutableExtension(sourceId);if(!containedBlueprint)throw Error(`Undefined source ${sourceId}`);let source=main_1.PLBlueprintFactory.blueprint(containedBlueprint.content,sourceId,executionContext,configuration);return this.cache(source,sourceId),source}}exports.PCBlueprintLoader=PCBlueprintLoader},{"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader":611}],31:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterQueue=void 0;const ExportWriterQueueOperation_1=require("./ExportWriterQueueOperation");exports.PCExportWriterQueue=class{constructor(configuration){this.isLockedForChanges=!1,this.isFinished=!1,this.configuration=configuration,this.waitingOperations=new Array,this.requests=new Array,this.requestsCompleted=0}addQueuedRequest(request){let operation=new ExportWriterQueueOperation_1.PCExportWriterQueueOperation(request);this.requests.push(request),this.waitingOperations.push(operation)}addQueuedRequests(requests){requests.forEach((r=>{this.addQueuedRequest(r)}))}clearQueue(){this.requestsCompleted=0,this.waitingOperations=[]}processQueue(){return this.isLockedForChanges=!0,this.requestsCompleted=0,new Promise(((resolve,reject)=>{let queue=new Array;for(let operation of this.waitingOperations){let promise=operation.processOperation();queue.push(promise)}Promise.all(queue).then((_=>{resolve(this.requests)})).catch((error=>{reject(error)}))}))}}},{"./ExportWriterQueueOperation":32}],32:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterQueueOperation=void 0;exports.PCExportWriterQueueOperation=class{constructor(request){this.request=request}processOperation(){return new Promise(((respond,reject)=>{this.request.writeItem().then((_=>{respond(this.request)})).catch((error=>{reject(error)}))}))}}},{}],33:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterRequest=void 0;exports.PCExportWriterRequest=class{constructor(configuration,item,map){this.processingError=null,this.processingFinished=!1,this.item=item,this.map=map,this.configuration=configuration}writeItem(){throw Error("Content must be written by each individual subclass")}requestSuccesful(_){this.processingFinished=!0}requestFailed(error){this.processingFinished=!0,this.processingError=error}}},{}],34:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterRequestProducer=void 0;const ExportWriterMemoryRequest_1=require("./../writers/memory/ExportWriterMemoryRequest");exports.PCExportWriterRequestProducer=class{constructor(configuration){this.configuration=configuration}produceRequestsForItemResponse(response){return[new ExportWriterMemoryRequest_1.PCExportWriterMemoryRequest(this.configuration,response.item,response.map)]}}},{"./../writers/memory/ExportWriterMemoryRequest":39}],35:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterResponse=void 0;exports.PCExportWriterResponse=class{constructor(request,map,item){this.item=item,this.map=map,this.request=request}}},{}],36:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterResponseProducer=void 0;const ExportWriterResponse_1=require("./ExportWriterResponse");exports.PCExportWriterResponseProducer=class{constructor(){}produceResponsesFromRequests(requests){let responses=[];for(let request of requests){let response=this.produceResponseFromRequest(request);responses.push(response)}return responses}produceResponseFromRequest(request){return new ExportWriterResponse_1.PCExportWriterResponse(request,request.map,request.item)}}},{"./ExportWriterResponse":35}],37:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportItemWriter=void 0;const ExportWriterResponseProducer_1=require("./../requests/ExportWriterResponseProducer"),ExportWriterRequestProducer_1=require("./../requests/ExportWriterRequestProducer"),ExportWriterQueue_1=require("../queue/ExportWriterQueue");exports.PCExportItemWriter=class{constructor(exportConfiguration){this.configuration=exportConfiguration,this.processingQueue=new ExportWriterQueue_1.PCExportWriterQueue(exportConfiguration)}validateCanWriteItems(){return new Promise(((resolve,_)=>{resolve()}))}write(itemResponses){return new Promise(((resolve,reject)=>{for(let itemResponse of itemResponses){let requests=this.generateRequestsForItemResponse(itemResponse);this.processingQueue.addQueuedRequests(requests)}this.processingQueue.processQueue().then((processedRequests=>{let responses=this.generateResponsesFromFinishedRequests(processedRequests);resolve(responses)})).catch((error=>{reject(error)}))}))}generateRequestsForItemResponse(itemResponse){return new ExportWriterRequestProducer_1.PCExportWriterRequestProducer(this.configuration).produceRequestsForItemResponse(itemResponse)}generateResponsesFromFinishedRequests(finishedRequests){return(new ExportWriterResponseProducer_1.PCExportWriterResponseProducer).produceResponsesFromRequests(finishedRequests)}}},{"../queue/ExportWriterQueue":31,"./../requests/ExportWriterRequestProducer":34,"./../requests/ExportWriterResponseProducer":36}],38:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterRuleProcessor=void 0;const main_1=require("@supernova-studio/pulsar-language/build/main");exports.PCExportWriterRuleProcessor=class{constructor(configuration){this.configuration=configuration}resolveDestinationURL(dynamicRule,data,root){return new Promise(((resolve,reject)=>{let parsingExecutionContext=this.configuration.newExecutionContext(),source=main_1.PLBlueprintFactory.blueprint(dynamicRule,"",parsingExecutionContext),interpreter=new main_1.PLInterpreter,executionContext=this.configuration.newExecutionContext();interpreter.interpret(source,this.interpreterContext(data),executionContext).then((resolvedRule=>{if(root){resolve(root+resolvedRule)}else resolve(resolvedRule)})).catch((error=>{reject(error)}))}))}resolvedDestinationURL(staticRule,root){if(root){return root+staticRule}return staticRule}interpreterContext(data){return new main_1.PLInterpreterContext(data)}}},{"@supernova-studio/pulsar-language/build/main":552}],39:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterMemoryRequest=void 0;const ExportWriterRequest_1=require("./../../requests/ExportWriterRequest"),ExportWriterRuleProcessor_1=require("./../ExportWriterRuleProcessor");class PCExportWriterMemoryRequest extends ExportWriterRequest_1.PCExportWriterRequest{writeItem(){return new Promise((async(respond,_)=>{let destinationURL,processor=new ExportWriterRuleProcessor_1.PCExportWriterRuleProcessor(this.configuration);if(this.item.resolvedName)destinationURL=processor.resolvedDestinationURL(this.item.resolvedName,this.configuration.outputPathPrefix);else if(this.item.map.write_to)destinationURL=await processor.resolveDestinationURL(this.item.map.write_to,this.item.nameData,this.configuration.outputPathPrefix);else{if(!this.item.map.write_using)throw"Output needs to define one of 'write_to' or 'write_using'";{let source=this.configuration.exporter.sourceByIdIgnoringExecutableExtension(this.item.map.write_using);if(!source)throw`Output defines unknown source '${this.item.map.write_using}'`;destinationURL=await processor.resolveDestinationURL(source.content,this.item.nameData,this.configuration.outputPathPrefix)}}this.configuration.logger.logInfo(`Writing ${destinationURL.replace(this.configuration.outputPathPrefix,"")}`,""),this.configuration.outputStore.storeItem(this.item.contentData,destinationURL),respond(this.item)}))}}exports.PCExportWriterMemoryRequest=PCExportWriterMemoryRequest},{"./../../requests/ExportWriterRequest":33,"./../ExportWriterRuleProcessor":38}],40:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExportWriterMemoryStore=void 0;exports.PCExportWriterMemoryStore=class{constructor(){this.dataStore=new Map}storeItem(item,path){if(this.dataStore.get(path))throw Error(`Item already exists at path ${path}`);this.dataStore.set(path,item)}}},{}],41:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DSMReferenceStore=void 0;const ExporterSource_1=require("../sources/ExporterSource");exports.DSMReferenceStore=class{constructor(data){this.components=data.components,this.componentGroups=data.componentGroups,this.tokenGroups=data.tokenGroups,this.tokenTypes=data.tokenTypes,this.themes=data.themes,0===this.components.length&&this.components.push(this.emptyState()),0===this.componentGroups.length&&this.componentGroups.push(this.emptyState()),0===this.tokenGroups.length&&this.tokenGroups.push(this.emptyState()),0===this.tokenTypes.length&&this.tokenTypes.push(this.emptyState()),0===this.themes.length&&this.themes.push(this.emptyState()),this.contexts=[{id:ExporterSource_1.PCExporterSourceContextType.generic,name:"Generic"},{id:ExporterSource_1.PCExporterSourceContextType.component,name:"Components"},{id:ExporterSource_1.PCExporterSourceContextType.componentGroup,name:"Component Groups"},{id:ExporterSource_1.PCExporterSourceContextType.tokenGroup,name:"Token Group"},{id:ExporterSource_1.PCExporterSourceContextType.tokenType,name:"Token Type"},{id:ExporterSource_1.PCExporterSourceContextType.theme,name:"Themes"}]}emptyState(){return{id:"none",name:"None"}}executableComponentGroups(){return this.retrieveFixingEmptyState(this.componentGroups)}executableComponents(){return this.retrieveFixingEmptyState(this.components)}executableTokenGroups(){return this.retrieveFixingEmptyState(this.tokenGroups)}executableTokenTypes(){return this.retrieveFixingEmptyState(this.tokenTypes)}executableThemes(){return this.retrieveFixingEmptyState(this.themes)}retrieveFixingEmptyState(array){return this.arrayIsEmptyState(array)?[]:array}arrayIsEmptyState(array){return 1===array.length&&"none"===array[0].id}}},{"../sources/ExporterSource":44}],42:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExporter=void 0;exports.PCExporter=class{constructor(data){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m;this.id=data.id,this.name=data.name,this.description=data.description,this.author=null!==(_a=data.author)&&void 0!==_a?_a:null,this.organization=null!==(_b=data.organization)&&void 0!==_b?_b:null,this.homepage=null!==(_c=data.homepage)&&void 0!==_c?_c:null,this.icon=null!==(_d=data.icon)&&void 0!==_d?_d:null,this.sourceDirectory=data.source_dir,this.version=data.version,this.tags=data.tags,this.sourceConfigFilePath=null!==(_f=null===(_e=data.config)||void 0===_e?void 0:_e.sources)&&void 0!==_f?_f:null,this.outputConfigFilePath=null!==(_h=null===(_g=data.config)||void 0===_g?void 0:_g.output)&&void 0!==_h?_h:null,this.pulsarEngineVersion=null!==(_k=null===(_j=data.engines)||void 0===_j?void 0:_j.pulsar)&&void 0!==_k?_k:null,this.supernovaEngineVersion=null!==(_m=null===(_l=data.engines)||void 0===_l?void 0:_l.supernova)&&void 0!==_m?_m:null,this.sources=new Map,this.outputs=new Array}linkSources(sources){for(let source of sources)this.sources.set(source.id,source)}linkOutputs(outputs){for(let output of outputs)this.outputs.push(output)}sourceByIdIgnoringExecutableExtension(sourceId){return sourceId.endsWith(".pr")?this.sourceById(sourceId.substr(0,sourceId.length-3)):this.sourceById(sourceId)}sourceById(sourceId){var _a;return null!==(_a=this.sources.get(sourceId))&&void 0!==_a?_a:null}storeNewSource(source){this.sources.get(source.id)||this.sources.set(source.id,source)}removeSource(source){this.sources.delete(source.id)}removeSourceById(sourceId){this.sources.delete(sourceId)}storeSources(sources){sources.forEach((s=>{this.storeNewSource(s)}))}removeSources(sources){sources.forEach((s=>{this.removeSource(s)}))}moveBlueprintSource(oldId,newId,newPath){if(!this.sources.get(oldId))return;let sourceObject=this.sources.get(oldId);this.sources.delete(oldId),this.sources.set(newId,sourceObject),sourceObject.path=newPath}}},{}],43:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExporterMapBlueprint=void 0;exports.PCExporterMapBlueprint=class{constructor(data){var _a,_b;this.invoke=data.invoke,this.write_to=null!==(_a=data.write_to)&&void 0!==_a?_a:null,this.write_using=null!==(_b=data.write_using)&&void 0!==_b?_b:null}toObject(){let data={invoke:this.invoke};return this.write_using&&(data.write_using=this.write_using),this.write_to&&(data.write_to=this.write_to),data}}},{}],44:[function(require,module,exports){"use strict";var PCExporterSourceContextType;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCExporterSource=exports.PCExporterSourceContextType=void 0,function(PCExporterSourceContextType){PCExporterSourceContextType.generic="generic",PCExporterSourceContextType.component="component",PCExporterSourceContextType.componentGroup="componentGroup",PCExporterSourceContextType.tokenType="tokenType",PCExporterSourceContextType.tokenGroup="tokenGroup",PCExporterSourceContextType.theme="theme"}(PCExporterSourceContextType=exports.PCExporterSourceContextType||(exports.PCExporterSourceContextType={}));exports.PCExporterSource=class{constructor(id,path,content){this.id=id,this.path=null!=path?path:null,this.content=content,this.targetsCI=!0,this.targetsDocumentation=!1,this.targetsSandbox=!1,this.context=PCExporterSourceContextType.generic}loadBlueprintConfiguration(data){data.targets_ci&&(this.targetsCI=data.targets_ci),data.targets_sandbox&&(this.targetsSandbox=data.targets_sandbox),data.targets_documentation&&(this.targetsDocumentation=data.targets_documentation),data.context&&(this.context=data.context)}}},{}],45:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsar=exports.PCPulsarExporterMode=exports.PCPulsarEngineState=void 0;const PulsarInterface_1=require("./PulsarInterface"),PulsarExporterManager_1=require("./managers/PulsarExporterManager"),PulsarCodeManager_1=require("./managers/PulsarCodeManager"),PulsarCIManager_1=require("./managers/PulsarCIManager"),PulsarExporterGitHubLoader_1=require("./managers/loaders/remote/PulsarExporterGitHubLoader"),PulsarExporterJSONLoader_1=require("./managers/loaders/memory/PulsarExporterJSONLoader"),PulsarExporterZIPLoader_1=require("./managers/loaders/remote/PulsarExporterZIPLoader"),PulsarBlueprintManager_1=require("./managers/PulsarBlueprintManager"),PulsarFSLoader_1=require("./managers/loaders/local/PulsarFSLoader");var PCPulsarEngineState,PCPulsarExporterMode;!function(PCPulsarEngineState){PCPulsarEngineState.waiting="waiting",PCPulsarEngineState.loading="loading",PCPulsarEngineState.ready="ready"}(PCPulsarEngineState=exports.PCPulsarEngineState||(exports.PCPulsarEngineState={})),function(PCPulsarExporterMode){PCPulsarExporterMode.ci="ci",PCPulsarExporterMode.sandbox="sandbox",PCPulsarExporterMode.docs="docs"}(PCPulsarExporterMode=exports.PCPulsarExporterMode||(exports.PCPulsarExporterMode={}));exports.PCPulsar=class{constructor(){this.state=PCPulsarEngineState.waiting}async initiateWithExporter(exporter){return this.preInit(),this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithLocalURL(url){this.preInit();let packageManager=new PulsarFSLoader_1.PCPulsarFSLoader(url),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithPackageS3URL(s3URL){this.preInit();let packageManager=new PulsarExporterZIPLoader_1.PCPulsarExporterZIPLoader(s3URL),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithPackageGitHubURL(githubURL){this.preInit();let packageManager=new PulsarExporterGitHubLoader_1.PCPulsarExporterGitHubLoader(githubURL),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}async initiateWithPackageBlob(blob){this.preInit();let packageManager=new PulsarExporterJSONLoader_1.PCPulsarExporterJSONLoader(blob),exporter=await packageManager.initialize();return this.postInit(exporter),this.convertExporterToDetail(exporter)}preInit(){if(this.state!==PCPulsarEngineState.waiting)throw Error("Can't instantiate Pulsar library for the second time. Create new instance to load different exporter.");this.state=PCPulsarEngineState.loading}postInit(exporter){this.exporter=exporter,this.sourceManager=new PulsarBlueprintManager_1.PCPulsarSourceManager(this.exporter),this.ciManager=new PulsarCIManager_1.PCPulsarCIManager(this.exporter),this.codeManager=new PulsarCodeManager_1.PCPulsarCodeManager(this.exporter),this.exporterManager=new PulsarExporterManager_1.PCPulsarExporterManager(this.exporter),this.state=PCPulsarEngineState.ready}getExporterBackingObject(){return this.validateCanManipulateState(),this.exporter}getExporterDetail(){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.getExporterDetail())}updateExporterName(name){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterName(name))}updateExporterDescription(description){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterDescription(description))}updateExporterVersion(version){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterVersion(version))}updateExporterAuthor(author){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterAuthor(author))}updateExporterHomepage(homepage){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterHomepage(homepage))}updateExporterIcon(icon){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterIcon(icon))}updateExporterTags(tags){return this.validateCanManipulateState(),this.convertExporterToDetail(this.exporterManager.updateExporterTags(tags))}getExporterConfigurationJSON(){return this.validateCanManipulateState(),this.configurationManager.getExporterConfigurationJSON()}getSourceConfigurationJSON(){return this.validateCanManipulateState(),this.configurationManager.getSourceConfigurationJSON()}getOutputConfigurationJSON(){return this.validateCanManipulateState(),this.configurationManager.getOutputConfigurationJSON()}updateExporterConfigurationJSON(content){this.validateCanManipulateState(),this.configurationManager.updateExporterConfigurationJSON(content)}updateSourceConfigurationJSON(content){this.validateCanManipulateState(),this.configurationManager.updateSourceConfigurationJSON(content)}updateOutputConfigurationJSON(content){this.validateCanManipulateState(),this.configurationManager.updateOutputConfigurationJSON(content)}getSources(){return this.validateCanManipulateState(),this.convertSourcesToDetails(this.sourceManager.getSources())}getSourceById(blueprintId){return this.validateCanManipulateState(),this.convertSourceToDetail(this.sourceManager.getSourceById(blueprintId))}createNewSource(){return this.validateCanManipulateState(),this.convertSourceToDetail(this.sourceManager.createNewSource())}deleteSourceById(blueprintId){return this.validateCanManipulateState(),this.sourceManager.deleteSourceById(blueprintId)}updateSourceLocation(oldSourceId,newSourceId,newPath){return this.validateCanManipulateState(),this.convertSourceToDetail(this.sourceManager.updateSourceLocation(oldSourceId,newSourceId,newPath))}getDSMContextStore(dsmBridgeConfig){return this.validateCanManipulateState(),this.ciManager.getDSMContextStore(dsmBridgeConfig)}static getDSMContextStoreStatic(dsmBridgeConfig){return PulsarCIManager_1.PCPulsarCIManager.fetchReferenceStoreStatic(dsmBridgeConfig)}async executeSourceById(blueprintId,dsmBridgeConfig,contextKey,contextId){return await this.validateCanManipulateState(),await this.codeManager.executeSourceById(blueprintId,dsmBridgeConfig,contextKey,contextId)}updateSourceCodeDefinitionForSourceId(sourceId,definition){return this.validateCanManipulateState(),this.codeManager.updateSourceCodeDefinitionForSourceId(sourceId,definition)}suggestNextFromSourceCode(code,selectionLocation,selectionLength){return this.validateCanManipulateState(),this.codeManager.suggestNextFromSourceCode(code,selectionLocation,selectionLength)}applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply){return this.validateCanManipulateState(),this.codeManager.applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply)}suggestHighlightFromSourceCode(code){return this.validateCanManipulateState(),this.codeManager.suggestHighlightFromSourceCode(code)}getExporterBlob(){return this.validateCanManipulateState(),this.exporterManager.getExporterBlob()}getExporterBlobJSONSerialized(){return this.validateCanManipulateState(),this.exporterManager.getExporterBlobJSONSerialized()}async executeExporter(dsmBridgeConfig,exportMode=PCPulsarExporterMode.ci){return await this.validateCanManipulateState(),await this.ciManager.executeExporter(dsmBridgeConfig,exportMode)}async executeExporterForSingleSandboxedComponent(dsmBridgeConfig,sandboxComponentId,serializedSandboxData){return await this.validateCanManipulateState(),await this.ciManager.executeExporterForSingleSandboxedComponent(dsmBridgeConfig,PCPulsarExporterMode.ci,sandboxComponentId,serializedSandboxData)}retrieveRunningExporterState(){return this.ciManager.retrieveRunningExporterState()}validateCanManipulateState(){return new Promise(((resolve,reject)=>{this.state===PCPulsarEngineState.ready?resolve():this.state===PCPulsarEngineState.waiting?reject(new Error("Unable to manipulate state because the exporter has to be loaded first")):this.state===PCPulsarEngineState.loading?reject(new Error("Unable to manipulate state because the engine is currently loading an exporter")):reject(new Error("Unhandled manipulation state"))}))}convertExporterToDetail(exporter){let detail=new PulsarInterface_1.PCEngineExporterDetail;return detail.id=exporter.id,detail.name=exporter.name,detail.description=exporter.description,detail.author=exporter.author,detail.organization=exporter.organization,detail.homepage=exporter.homepage,detail.source_dir=exporter.sourceDirectory,detail.version=exporter.version,detail.tags=exporter.tags,detail.icon=exporter.icon,detail.config={sources:exporter.sourceConfigFilePath,output:exporter.outputConfigFilePath},detail.engines={pulsar:exporter.pulsarEngineVersion,supernova:exporter.supernovaEngineVersion},detail}convertSourceToDetail(source){let detail=new PulsarInterface_1.PCEngineSourceDetail;return detail.id=source.id,detail.path=source.path,detail.targetsCI=source.targetsCI,detail.targetsSandbox=source.targetsSandbox,detail.targetsDocumentation=source.targetsDocumentation,detail.context=source.context,detail.content=source.content,detail}convertSourcesToDetails(blueprints){let convertedSources=new Array;for(let source of blueprints)convertedSources.push(this.convertSourceToDetail(source));return convertedSources}}},{"./PulsarInterface":46,"./managers/PulsarBlueprintManager":48,"./managers/PulsarCIManager":49,"./managers/PulsarCodeManager":50,"./managers/PulsarExporterManager":51,"./managers/loaders/local/PulsarFSLoader":54,"./managers/loaders/memory/PulsarExporterJSONLoader":55,"./managers/loaders/remote/PulsarExporterGitHubLoader":57,"./managers/loaders/remote/PulsarExporterZIPLoader":58}],46:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCEngineExporterState=exports.PCEngineFileGroup=exports.PCEngineSourceDetail=exports.PCEngineExporterDetail=void 0;exports.PCEngineExporterDetail=class{};exports.PCEngineSourceDetail=class{};exports.PCEngineFileGroup=class{constructor(name,path,files,groups){this.name=name,this.path=path,this.files=files,this.groups=groups}},function(PCEngineExporterState){PCEngineExporterState.running="running",PCEngineExporterState.finished_success="finished_success",PCEngineExporterState.finished_failure="finished_failure"}(exports.PCEngineExporterState||(exports.PCEngineExporterState={}))},{}],47:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarStaticAnalysis=exports.PCPulsarExporterMode=exports.PCPulsarEngineState=void 0;const main_1=require("@supernova-studio/pulsar-language/build/main"),BlueprintLoader_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader"),Logger_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger");!function(PCPulsarEngineState){PCPulsarEngineState.waiting="waiting",PCPulsarEngineState.loading="loading",PCPulsarEngineState.ready="ready"}(exports.PCPulsarEngineState||(exports.PCPulsarEngineState={})),function(PCPulsarExporterMode){PCPulsarExporterMode.ci="ci",PCPulsarExporterMode.sandbox="sandbox",PCPulsarExporterMode.docs="docs"}(exports.PCPulsarExporterMode||(exports.PCPulsarExporterMode={}));exports.PCPulsarStaticAnalysis=class{constructor(){}analyzeBlueprintCode(code,sourceFileName){let context=new main_1.DSMExecutionContext(new BlueprintLoader_1.PLBlueprintLoader,new main_1.PLBlueprintEmitter,new Logger_1.PLLogger,new main_1.DSMBridge({accessToken:"",apiUrl:"",designSystemId:"",dsVersionId:"",apiVersion:"0.2"}),null);try{return main_1.PLBlueprintFactory.blueprint(code,sourceFileName,context),[]}catch(error){return[error]}}suggestNextFromBlueprintCode(code,selectionLocation,selectionLength){return this.codeManager.suggestNextFromSourceCode(code,selectionLocation,selectionLength)}applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply){return this.codeManager.applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply)}suggestHighlightFromBlueprintCode(code){return this.codeManager.suggestHighlightFromSourceCode(code)}}},{"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader":611,"@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger":613}],48:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarSourceManager=void 0;const ExporterSource_1=require("../../model/sources/ExporterSource");exports.PCPulsarSourceManager=class{constructor(exporter){this.exporter=exporter}getSources(){let sourceStore=new Array;for(let source of this.exporter.sources.values())sourceStore.push(source);return sourceStore}getSourceById(sourceId){for(let source of this.exporter.sources.values())if(source.id===sourceId)return source;throw new Error(`Unknown source ${sourceId}`)}createNewSource(){let count=this.exporter.sources.size,source=new ExporterSource_1.PCExporterSource(`source${count+1}.pr`,null,"");return this.exporter.storeNewSource(source),source}deleteSourceById(sourceId){if(!this.exporter.sourceById(sourceId))throw Error(`Unknown source for deletion ${sourceId}`);this.exporter.removeSourceById(sourceId)}updateSourceLocation(oldSourceId,newSourceId,newPath){let source=this.exporter.sourceById(oldSourceId);if(!source)throw Error(`Unknown source for update ${oldSourceId}`);let sourceId=newSourceId.trim();if(sourceId.length<3)throw Error("Source id must be at least 3 letters long");if(!sourceId.match(/^[0-9a-zA-Z._]+$/))throw Error("Source id must only contain letters, numbers, dots or underscores");return this.exporter.moveBlueprintSource(oldSourceId,newSourceId,newPath),source}}},{"../../model/sources/ExporterSource":44}],49:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarCIManager=void 0;const PulsarInterface_1=require("../PulsarInterface"),DSMReferenceStore_1=require("./../../model/dsm/DSMReferenceStore"),Logger_1=require("./../../tools/Logger"),ExportConfiguration_1=require("./../../engine/configuration/ExportConfiguration"),ExportEngine_1=require("./../../engine/ExportEngine"),main_1=require("@supernova-studio/pulsar-language/build/main");exports.PCPulsarCIManager=class{constructor(exporter){this.exporter=exporter,this.currentExporterInstance=null}async executeExporter(dsmBridgeConfig,exportMode){let store=await this.fetchReferenceStore(dsmBridgeConfig),logger=new Logger_1.PCLogger,configuration=new ExportConfiguration_1.PCExportConfiguration(this.exporter,logger,store,dsmBridgeConfig,exportMode,{}),pulsarEngine=new ExportEngine_1.PCExportEngine(configuration);this.currentExporterInstance=pulsarEngine;let result=await pulsarEngine.processExport(),convertedResult=this.convertExportResultToPulsarResult(result,this.currentExporterInstance);return this.currentExporterInstance,convertedResult}async executeExporterForSingleSandboxedComponent(dsmBridgeConfig,exportMode,sandboxComponentId,serializedSandboxData){let store=await this.fetchReferenceStoreForSandboxedComponent(sandboxComponentId),logger=new Logger_1.PCLogger,sandboxData=JSON.parse(serializedSandboxData),configuration=new ExportConfiguration_1.PCExportConfiguration(this.exporter,logger,store,dsmBridgeConfig,exportMode,sandboxData),pulsarEngine=new ExportEngine_1.PCExportEngine(configuration);this.currentExporterInstance=pulsarEngine;let result=await pulsarEngine.processExport(),convertedResult=this.convertExportResultToPulsarResult(result,this.currentExporterInstance);return this.currentExporterInstance,convertedResult}retrieveRunningExporterState(){if(null!==this.currentExporterInstance){let store=this.currentExporterInstance.configuration.outputStore;return this.convertExportResultToPulsarResult(store,this.currentExporterInstance)}return null}async getDSMContextStore(dsmBridgeConfig){return this.fetchReferenceStore(dsmBridgeConfig)}convertExportResultToPulsarResult(sourceStore,exportEngine){let files=new Array;for(let[path,partialResult]of sourceStore.dataStore.entries()){if("string"!=typeof partialResult)throw new Error("Unsupported type of produced file for write");{let pathDescriptor=this.parseName(path),fileDescriptor={name:pathDescriptor.fullname,path:pathDescriptor.path,content:partialResult,type:"string",source:"primary"};files.push(fileDescriptor)}}return{exporterId:this.exporter.id,runId:exportEngine.runId,emittedFiles:files,state:PulsarInterface_1.PCEngineExporterState.finished_success,rootGroup:this.computeRootFileGroupFromFiles(files)}}parseName(fullPath){let components=fullPath.split("/"),filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");if(!(nameParts.length>=2))throw Error("Unable to properly parse output file");return extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join("."),{fullname:filename,name:name,extension:extension,folder:directory,path:fullpath}}async fetchReferenceStore(dsmBridgeConfig){let dsmBridge=new main_1.DSMBridge(dsmBridgeConfig),result=await dsmBridge.getDSMDataFromEndpoint("bff/structure",null);return new DSMReferenceStore_1.DSMReferenceStore(result)}static async fetchReferenceStoreStatic(dsmBridgeConfig){let dsmBridge=new main_1.DSMBridge(dsmBridgeConfig),result=await dsmBridge.getDSMDataFromEndpoint("bff/structure",null);return new DSMReferenceStore_1.DSMReferenceStore(result)}async fetchReferenceStoreForSandboxedComponent(componentId){return new DSMReferenceStore_1.DSMReferenceStore({components:[{id:componentId,name:"Sandboxed Component"}],componentGroups:[],tokenGroups:[],tokenTypes:[],themes:[]})}computeRootFileGroupFromFiles(files){let rootGroup=new PulsarInterface_1.PCEngineFileGroup("Root","/",[],[]),subgroups=new Map,currentParent=rootGroup;for(let file of files){currentParent=rootGroup;let permutations=this.pathPermutations(file.path);if(0===permutations.length)rootGroup.files.push(file);else for(let[index,permutation]of permutations.entries()){let group=subgroups.get(permutation.path);group?currentParent=group:(group=new PulsarInterface_1.PCEngineFileGroup(permutation.lastComponent,permutation.path,[],[]),currentParent.groups.push(group),subgroups.set(permutation.path,group)),index===permutations.length-1&&group.files.push(file)}}return rootGroup}pathPermutations(path){let pathComponents=path.split("/");pathComponents.pop();let buffer=new Array,stringBuffer="";for(let component of pathComponents)stringBuffer+=`/${component}`,buffer.push({path:stringBuffer,lastComponent:component});return buffer}}},{"../PulsarInterface":46,"./../../engine/ExportEngine":2,"./../../engine/configuration/ExportConfiguration":3,"./../../model/dsm/DSMReferenceStore":41,"./../../tools/Logger":59,"@supernova-studio/pulsar-language/build/main":552}],50:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarCodeManager=void 0;const Logger_1=require("@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger"),BlueprintLoader_1=require("./../../engine/loaders/BlueprintLoader"),main_1=require("@supernova-studio/pulsar-language/build/main"),BlueprintLoader_2=require("@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader"),ExporterSource_1=require("../../model/sources/ExporterSource");exports.PCPulsarCodeManager=class{constructor(exporter){this.exporter=exporter,this.codeExecutionContext=new main_1.DSMExecutionContext(new BlueprintLoader_2.PLBlueprintLoader,new main_1.PLBlueprintEmitter,new Logger_1.PLLogger,new main_1.DSMBridge({accessToken:"",apiUrl:"",designSystemId:"",dsVersionId:"",apiVersion:"0.2"}),null)}async executeSourceById(sourceId,dsmBridgeConfig,contextKey,contextId){let source=this.exporter.sourceById(sourceId);if(!source)throw Error(`Unknown source to execute ${sourceId}`);let contextData=this.createContextData(contextKey,contextId),logger=new Logger_1.PLLogger,loader=new BlueprintLoader_1.PCBlueprintLoader(this.exporter),emitter=new main_1.PLMemoryBlueprintEmitter(!1),configuredBridge=new main_1.DSMBridge(dsmBridgeConfig),executionContext=new main_1.DSMExecutionContext(loader,emitter,logger,configuredBridge,null),parsedSource=await this.parseSource(source.content,executionContext),producedPrimaryFile={name:"Main",path:"",content:await this.interpretSource(parsedSource,contextData,executionContext),source:"primary",type:"string"},producedEmittedFiles=new Array;for(let emittedResult of emitter.allEmittedContent()){let producedEmittedFile={name:emittedResult.filename,path:"",content:emittedResult.content,source:"emitter",type:"string"};producedEmittedFiles.push(producedEmittedFile)}return{sourceId:sourceId,producedContent:[producedPrimaryFile,...producedEmittedFiles],logger:logger}}updateSourceCodeDefinitionForSourceId(sourceId,definition){let source=this.exporter.sourceById(sourceId);if(!source)throw Error(`Unknown source to update ${sourceId}`);source.content=definition}updateSourceLocation(oldSourceId,newSourceId,newPath){if(!this.exporter.sourceById(oldSourceId))throw Error(`Unknown source to update ${oldSourceId}`);this.exporter.moveBlueprintSource(oldSourceId,newSourceId,newPath)}suggestNextFromSourceCode(code,selectionLocation,selectionLength){let suggestionEngine=new main_1.PLBlueprintAutocompleteEngine(this.codeExecutionContext);return suggestionEngine.loadSnippets((new main_1.PLAutocompleteBlueprintSnippets).snippetPool()),suggestionEngine.suggestNextBasedOnString(code,selectionLocation,selectionLength)}applyAutocompletionResultToCode(code,selectionLocation,selectionLength,apply){return new main_1.PLBlueprintAutocompleteEngine(this.codeExecutionContext).applySuggestion(apply,code,selectionLocation,selectionLength,0)}suggestHighlightFromSourceCode(code){return new main_1.PLBlueprintHighlightEngine(this.codeExecutionContext).tokenize(code)}createContextData(contextKey,contextId){let data=new Map;if("none"===contextId){if(contextKey===ExporterSource_1.PCExporterSourceContextType.generic)return data;if(contextKey===ExporterSource_1.PCExporterSourceContextType.component)throw new Error("Source with component context can only be tested against design system with one or more defined components. Create new component and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.componentGroup)throw new Error("Source with component group context can only be tested against design system with one or more defined component groups. Create new component group and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.tokenType)throw new Error("Source with token type context can only be tested against design system with one or more token types. Create new token and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.tokenGroup)throw new Error("Source with token group context can only be tested against design system with one or more defined token groups. Create new token group and run this source again.");if(contextKey===ExporterSource_1.PCExporterSourceContextType.theme)throw new Error("Source with theme context can only be tested against design system with one or more defined themes. Create new theme and run this source again.")}else{if(contextKey===ExporterSource_1.PCExporterSourceContextType.generic)return data;contextKey===ExporterSource_1.PCExporterSourceContextType.component?data.set("componentId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.componentGroup?data.set("groupId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.tokenType?data.set("tokenTypeId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.tokenGroup?data.set("groupId",contextId):contextKey===ExporterSource_1.PCExporterSourceContextType.theme&&data.set("themeId",contextId)}return data}async parseSource(declaration,executionContext){return main_1.PLBlueprintFactory.blueprint(declaration,"test",executionContext,null)}async interpretSource(source,data,executionContext){let renderingContext=new main_1.PLInterpreterContext(data);return(new main_1.PLInterpreter).interpret(source,renderingContext,executionContext)}}},{"../../model/sources/ExporterSource":44,"./../../engine/loaders/BlueprintLoader":30,"@supernova-studio/pulsar-language/build/main":552,"@supernova-studio/pulsar-language/build/main/interpreter/loaders/BlueprintLoader":611,"@supernova-studio/pulsar-language/build/main/interpreter/loggers/Logger":613}],51:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterManager=void 0;const PulsarExporterJSONGenerator_1=require("./generators/PulsarExporterJSONGenerator"),URL_REGEX=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");exports.PCPulsarExporterManager=class{constructor(exporter){this.exporter=exporter}getExporterDetail(){return this.exporter}updateExporterName(name){let trimmedName=name.trim();if(trimmedName.length<6)throw Error("Exporter name must be at least 6 letters long");if(!trimmedName.match(/^[0-9a-zA-Z -]+$/))throw Error("Exporter name must only contain letters, numbers, spaces and hyphens");return this.exporter.name=trimmedName,this.exporter}updateExporterDescription(description){let trimmedOverview=description.trim();if(trimmedOverview.length<=0)throw Error("Exporter description must be at least 20 characters longs");return this.exporter.description=trimmedOverview,this.exporter}updateExporterVersion(version){let trimmedVersion=version.trim();if(!trimmedVersion.match(/^\d+(\.\d+){1,2}$/))throw Error("Exporter version must be in formatted as major.minor.patch. Major and minor version is required, patch is optional");return this.exporter.version=trimmedVersion,this.exporter}updateExporterAuthor(author){let trimmedAuthor=author.trim();if(!trimmedAuthor||0===trimmedAuthor.length)return this.exporter.author=null,this.exporter;if(!trimmedAuthor.match(/^[\s,.'\-\p{L}]+$/u))throw Error("Exporter author name cannot contain numbers or special characters");return this.exporter.author=trimmedAuthor,this.exporter}updateExporterHomepage(homepage){let trimmedHomepage=homepage.trim();if(!trimmedHomepage||0===trimmedHomepage.length)return this.exporter.homepage=null,this.exporter;if(!trimmedHomepage.match(URL_REGEX))throw Error("Exporter home page must be a valid url");return this.exporter.homepage=trimmedHomepage,this.exporter}updateExporterTags(tags){for(const tag of tags)if(!tag.match(/^[0-9a-zA-Z]+$/))throw Error("Exporter tags must only contain letters or numbers");return this.exporter.tags=tags,this.exporter}updateExporterIcon(icon){let trimmedIcon=icon.trim();if(!trimmedIcon||0===trimmedIcon.length)return this.exporter.icon=null,this.exporter;if(!trimmedIcon.match(URL_REGEX))throw Error("Exporter icon must be a valid url");return this.exporter.icon=trimmedIcon,this.exporter}getExporterBlob(){return new PulsarExporterJSONGenerator_1.PCPulsarExporterJSONGenerator(this.exporter).constructBlob()}getExporterBlobJSONSerialized(){return new PulsarExporterJSONGenerator_1.PCPulsarExporterJSONGenerator(this.exporter).constructBlobJSON()}}},{"./generators/PulsarExporterJSONGenerator":52}],52:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterJSONGenerator=void 0;const ExporterSource_1=require("../../../model/sources/ExporterSource");exports.PCPulsarExporterJSONGenerator=class{constructor(exporter){this.exporter=exporter}constructBlob(){return[this.constructConfigurationFile(),this.constructBlueprintConfigurationFile(),this.constructOutputConfigurationFile(),...this.constructBlueprintSourceFiles()]}constructBlobJSON(){let blob=this.constructBlob();return JSON.stringify(blob)}constructConfigurationFile(){let content=this.exporterConfigurationDescriptor();return this.constructFileExtractionData("exporter","json","",content)}exporterConfigurationDescriptor(){let data={id:this.exporter.id,name:this.exporter.name,description:this.exporter.description,source_dir:this.exporter.sourceDirectory,version:this.exporter.version,tags:this.exporter.tags};if(this.exporter.author&&(data.author=this.exporter.author),this.exporter.organization&&(data.organization=this.exporter.organization),this.exporter.homepage&&(data.homepage=this.exporter.homepage),this.exporter.icon&&(data.icon=this.exporter.icon),null!==this.exporter.outputConfigFilePath||null!==this.exporter.sourceConfigFilePath){let config={};null!==this.exporter.outputConfigFilePath&&(config.output=this.exporter.outputConfigFilePath),null!==this.exporter.sourceConfigFilePath&&(config.sources=this.exporter.sourceConfigFilePath),data.config=config}if(null!==this.exporter.pulsarEngineVersion||null!==this.exporter.supernovaEngineVersion){let engines={};null!==this.exporter.pulsarEngineVersion&&(engines.pulsar=this.exporter.pulsarEngineVersion),null!==this.exporter.supernovaEngineVersion&&(engines.supernova=this.exporter.supernovaEngineVersion),data.engines=engines}return data}constructBlueprintConfigurationFile(){let content=this.blueprintConfigurationDescriptor(),descriptor=this.exporter.sourceConfigFilePath?this.fileDescriptorOfPath(this.exporter.sourceConfigFilePath):this.fileDescriptorOfPath("blueprints.json");return this.constructFileExtractionData(descriptor.name,descriptor.extension,descriptor.directory,content)}blueprintConfigurationDescriptor(){let data=new Object;for(let source of this.exporter.sources.values()){let object=new Object;source.context!=ExporterSource_1.PCExporterSourceContextType.generic&&(object.context=source.context.toString()),source.targetsCI&&(object.targets_ci=!0),source.targetsSandbox&&(object.targets_sandbox=!0),source.targetsDocumentation&&(object.targets_docs=!0),data[source.id]=object}return data}constructOutputConfigurationFile(){let content=this.outputConfigurationDescriptor(),descriptor=this.exporter.outputConfigFilePath?this.fileDescriptorOfPath(this.exporter.outputConfigFilePath):this.fileDescriptorOfPath("output.json");return this.constructFileExtractionData(descriptor.name,descriptor.extension,descriptor.directory,content)}outputConfigurationDescriptor(){let blueprintOutput=new Array;for(let map of this.exporter.outputs){let object={invoke:map.invoke};null!==map.write_to&&(object.write_to=map.write_to),null!==map.write_using&&(object.write_using=map.write_using),blueprintOutput.push(object)}return{blueprints:blueprintOutput}}constructBlueprintSourceFiles(){var files=new Array;for(let source of this.exporter.sources.values()){let name=source.id,directory=source.path?`${source.path}`:"",content=source.content,nameComponents=name.split("."),extension=nameComponents[nameComponents.length-1],file=this.constructFileExtractionData(name,extension,directory,content);files.push(file)}return files}fileDescriptorOfPath(filePath){let components=filePath.split("/");if(0==components.length)return null;let filename=components[components.length-1];components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");return nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension?null:{filename:filename,name:name,extension:extension,directory:directory}}constructFileExtractionData(name,extension,directory,content){let resultingContent,filename=`${name}.${extension}`,key=filename;return directory&&(key=`${directory}/${key}`),resultingContent=content instanceof Object?JSON.stringify(content):content,{key:key,directory:null!=directory?directory:"",filename:filename,name:name,extension:extension,content:resultingContent}}}},{"../../../model/sources/ExporterSource":44}],53:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarBaseLoader=void 0;exports.PCPulsarBaseLoader=class{constructor(){}initialize(){throw new Error("Initializer must provide its own implementation of init procedure")}}},{}],54:[function(require,module,exports){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarFSLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("../memory/PulsarExporterMemoryLoader"),fs_1=__importDefault(require("fs")),util_1=require("util"),path_1=require("path"),readdir=util_1.promisify&&(null===fs_1.default||void 0===fs_1.default?void 0:fs_1.default.readdir)?util_1.promisify(fs_1.default.readdir):null,stat=util_1.promisify&&(null===fs_1.default||void 0===fs_1.default?void 0:fs_1.default.stat)?util_1.promisify(fs_1.default.stat):null;class PCPulsarFSLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(sourceZIPURL){super(),this.exporterRootURL=sourceZIPURL}async initialize(){let processedFiles=await this.loadFilesFromRootDirectory(this.exporterRootURL),unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}async loadFilesFromRootDirectory(rootDirectory){let processedFiles=new Map,files=await this.getFiles(rootDirectory);for(let file of files){let parsedFile=await this.loadFileAtUrl(file,rootDirectory);parsedFile&&processedFiles.set(parsedFile.key,parsedFile)}return processedFiles}async getFiles(directory){const subdirs=await readdir(directory);return(await Promise.all(subdirs.map((async subdir=>{const res=path_1.resolve(directory,subdir);return(await stat(res)).isDirectory()?this.getFiles(res):res})))).reduce(((a,f)=>a.concat(f)),[])}async loadFileAtUrl(filePath,rootDirectory){let components=filePath.split("/"),filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");if(nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension)return null;let content=fs_1.default.readFileSync(filePath,"utf-8");return{key:fullpath.substring(rootDirectory.length+1),filename:filename,name:name,extension:extension,directory:directory.substring(rootDirectory.length+1),content:content}}}exports.PCPulsarFSLoader=PCPulsarFSLoader},{"../PulsarBaseLoader":53,"../memory/PulsarExporterMemoryLoader":56,fs:181,path:372,util:507}],55:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterJSONLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("./PulsarExporterMemoryLoader");class PCPulsarExporterJSONLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(blob){super(),this.blob=blob}async initialize(){let processedBlob,processedFiles=new Map;if("object"==typeof this.blob)processedBlob=this.blob;else{if("string"!=typeof this.blob)throw new Error("Unsupported blob type, supported: Object or JSON representation");processedBlob=JSON.parse(this.blob)}if(processedBlob instanceof Array){for(let item of processedBlob){this.validateBlobEntry(item);let correctItem=item;processedFiles.set(correctItem.key,correctItem)}let unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}throw new Error("Blob must contain array of file descriptors")}validateBlobEntry(entry){if(!(entry instanceof Object))throw new Error("File descriptor must be provided and must be object");if("string"!=typeof entry.directory)throw new Error("File descriptor must contain directory attribute");if("string"!=typeof entry.content)throw new Error("File descriptor must contain content attribute");if("string"!=typeof entry.extension)throw new Error("File descriptor must contain extension attribute");if("string"!=typeof entry.filename)throw new Error("File descriptor must contain filename attribute");if("string"!=typeof entry.key)throw new Error("File descriptor must contain key attribute");if("string"!=typeof entry.name)throw new Error("File descriptor must contain name attribute")}}exports.PCPulsarExporterJSONLoader=PCPulsarExporterJSONLoader},{"../PulsarBaseLoader":53,"./PulsarExporterMemoryLoader":56}],56:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterMemoryLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),Exporter_1=require("../../../../model/exporters/Exporter"),ExporterSource_1=require("../../../../model/sources/ExporterSource"),ExporterMapBlueprint_1=require("../../../../model/maps/ExporterMapBlueprint");class PCPulsarExporterMemoryLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(sourceFiles){super(),this.sourceFiles=sourceFiles}async constructExporterFromSourceFiles(){let configurationFile=this.sourceFiles.get("exporter.json");if(!configurationFile)throw new Error("exporter.json not found it root directory of the exporter package");try{let parsedConfiguration=JSON.parse(configurationFile.content);this.validateExporterConfiguration(parsedConfiguration);let exporter=new Exporter_1.PCExporter(parsedConfiguration);return this.loadSourcesFromSourceDirectory(exporter),this.enhanceSourcesWithConfiguration(exporter),this.loadOutputMapping(exporter),exporter}catch(error){throw error}}loadSourcesFromSourceDirectory(exporter){let sources=new Array;for(let sourceDefinition of this.sourceFiles.values())if(sourceDefinition.directory.startsWith(exporter.sourceDirectory)){let source=new ExporterSource_1.PCExporterSource(sourceDefinition.name,sourceDefinition.directory,sourceDefinition.content);sources.push(source)}exporter.linkSources(sources)}enhanceSourcesWithConfiguration(exporter){if(null==exporter.sourceConfigFilePath)return;let configPath=exporter.sourceConfigFilePath,configFile=this.sourceFiles.get(configPath);if(!configFile)throw`Could not find source configuration file at ${configPath}`;let parsedConfiguration=JSON.parse(configFile.content);for(const[sourceId,configuration]of Object.entries(parsedConfiguration)){let source=exporter.sourceById(sourceId);if(!source)throw`Source configuration file defines source id ${sourceId} but there is no such file`;if(!(configuration instanceof Object))throw`Source configuration for source id ${sourceId} must be key/value object`;source.loadBlueprintConfiguration(configuration)}}loadOutputMapping(exporter){if(null==exporter.outputConfigFilePath)throw"Output configuration file is not defined inside exporter.json file";let configPath=exporter.outputConfigFilePath,configFile=this.sourceFiles.get(configPath);if(!configFile)throw`Could not find output configuration file at ${configPath}`;let outputDefinition=JSON.parse(configFile.content).blueprints;if(!outputDefinition)throw"Output configuration file must define 'blueprints' key";if(!(outputDefinition instanceof Array))throw"Output configuration file 'blueprints' key must be an array";for(let configuration of outputDefinition){if(!(configuration instanceof Object))throw"Output configuration source entry must be a key/value object";let invoke=configuration.invoke,writeTo=configuration.write_to,writeUsing=configuration.write_using;if(!invoke)throw"Output configuration source entry must define 'invoke' key";if(!writeTo&&!writeUsing)throw"Output configuration source entry must define either 'write_to' or 'write_using' key";if(writeTo&&writeUsing)throw"Output configuration source entry must define one of 'write_to' or 'write_using' keys, but not both";if(writeUsing&&!exporter.sources.get(writeUsing))throw`Output configuration source entry references unknown source '${writeUsing}'`;let map=new ExporterMapBlueprint_1.PCExporterMapBlueprint(configuration);exporter.linkOutputs([map])}}validateExporterConfiguration(parsedConfiguration){if(!parsedConfiguration.id||"string"!=typeof parsedConfiguration.id)throw new Error("Invalid exporter.json configuration, missing or invalid 'id'");if(!parsedConfiguration.name||"string"!=typeof parsedConfiguration.name)throw new Error("Invalid exporter.json configuration, missing or invalid 'name'");if(!parsedConfiguration.description||"string"!=typeof parsedConfiguration.description)throw new Error("Invalid exporter.json configuration, missing or invalid 'description'");if(!parsedConfiguration.source_dir||"string"!=typeof parsedConfiguration.source_dir)throw new Error("Invalid exporter.json configuration, missing or invalid 'source_dir'");if(!parsedConfiguration.version||"string"!=typeof parsedConfiguration.version)throw new Error("Invalid exporter.json configuration, missing or invalid 'version'");if(!(parsedConfiguration.tags&&parsedConfiguration.tags instanceof Array))throw new Error("Invalid exporter.json configuration, missing or invalid 'tags'");if(0===parsedConfiguration.tags.length)throw new Error("Invalid exporter.json configuration, 'tags' must not be empty");if(parsedConfiguration.author&&"string"!=typeof parsedConfiguration.author)throw new Error("Invalid exporter.json configuration, invalid 'author'");if(parsedConfiguration.organization&&"string"!=typeof parsedConfiguration.organization)throw new Error("Invalid exporter.json configuration, invalid 'organization'");if(parsedConfiguration.homepage&&"string"!=typeof parsedConfiguration.homepage)throw new Error("Invalid exporter.json configuration, invalid 'homepage'")}}exports.PCPulsarExporterMemoryLoader=PCPulsarExporterMemoryLoader},{"../../../../model/exporters/Exporter":42,"../../../../model/maps/ExporterMapBlueprint":43,"../../../../model/sources/ExporterSource":44,"../PulsarBaseLoader":53}],57:[function(require,module,exports){(function(Buffer){(function(){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterGitHubLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("../memory/PulsarExporterMemoryLoader"),request_1=__importDefault(require("request")),parse_github_url_1=__importDefault(require("parse-github-url")),jszip_1=__importDefault(require("jszip"));class PCPulsarExporterGitHubLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(githubURL){super(),this.repositoryURL=githubURL}async initialize(){let url=parse_github_url_1.default(this.repositoryURL);if(url){let rawZIP,owner=url.owner,name=url.name;try{let zipballURL=`https://github.com/${owner}/${name}/archive/main.zip`;rawZIP=await this.downloadZIPFromURL(zipballURL)}catch(_a){try{let zipballURL=`https://github.com/${owner}/${name}/archive/master.zip`;rawZIP=await this.downloadZIPFromURL(zipballURL)}catch(_b){throw new Error("Unable to obtain releases from GitHub repository")}}if(!rawZIP)throw new Error("Unable to obtain releases from GitHub repository");let processedFiles=await this.processZIP(rawZIP),unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}throw new Error("Unable to obtain releases from GitHub repository")}async downloadZIPFromURL(url){return new Promise(((resolve,reject)=>{let buffer,buffers=[];request_1.default.get(url).on("end",(()=>{buffer=Buffer.concat(buffers),jszip_1.default.loadAsync(buffer).then((zip=>{resolve(zip)})).catch((error=>{reject(error)}))})).on("error",(error=>{reject(error)})).on("data",(d=>{buffers.push(d)}))}))}async processZIP(zip){let processedFiles=new Map,values=Object.values(zip.files);for(let file of values){if(file.dir)continue;let parsedFile=await this.parseUnzippedFile(file);parsedFile&&processedFiles.set(parsedFile.key,parsedFile)}return processedFiles}async parseUnzippedFile(file){let components=file.name.split("/");components.shift();let filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");return nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension?null:{key:fullpath,filename:filename,name:name,extension:extension,directory:directory,content:await file.async("string")}}}exports.PCPulsarExporterGitHubLoader=PCPulsarExporterGitHubLoader}).call(this)}).call(this,require("buffer").Buffer)},{"../PulsarBaseLoader":53,"../memory/PulsarExporterMemoryLoader":56,buffer:183,jszip:313,"parse-github-url":371,request:417}],58:[function(require,module,exports){(function(Buffer){(function(){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCPulsarExporterZIPLoader=void 0;const PulsarBaseLoader_1=require("../PulsarBaseLoader"),PulsarExporterMemoryLoader_1=require("../memory/PulsarExporterMemoryLoader"),request_1=__importDefault(require("request")),jszip_1=__importDefault(require("jszip"));class PCPulsarExporterZIPLoader extends PulsarBaseLoader_1.PCPulsarBaseLoader{constructor(sourceZIPURL){super(),this.zipSourceURL=sourceZIPURL}async initialize(){let rawZIP=await this.downloadZIPFromURL(this.zipSourceURL),processedFiles=await this.processZIP(rawZIP),unpackager=new PulsarExporterMemoryLoader_1.PCPulsarExporterMemoryLoader(processedFiles);return await unpackager.constructExporterFromSourceFiles()}async downloadZIPFromURL(url){return new Promise(((resolve,reject)=>{let buffer,buffers=[];request_1.default.get(url).on("end",(()=>{buffer=Buffer.concat(buffers),jszip_1.default.loadAsync(buffer).then((zip=>{resolve(zip)})).catch((error=>{reject(error)}))})).on("error",(error=>{reject(error)})).on("data",(d=>{buffers.push(d)}))}))}async processZIP(zip){let processedFiles=new Map,values=Object.values(zip.files);for(let file of values){if(file.dir)continue;let parsedFile=await this.parseUnzippedFile(file);parsedFile&&processedFiles.set(parsedFile.key,parsedFile)}return processedFiles}async parseUnzippedFile(file){let components=file.name.split("/"),filename=components[components.length-1],fullpath=components.join("/");components.pop();let extension,name,directory=components.join("/"),nameParts=filename.split(".");return nameParts.length>=2&&(extension=nameParts[nameParts.length-1],nameParts.pop(),name=nameParts.join(".")),"pr"!==extension&&"json"!==extension?null:{key:fullpath,filename:filename,name:name,extension:extension,directory:directory,content:await file.async("string")}}}exports.PCPulsarExporterZIPLoader=PCPulsarExporterZIPLoader}).call(this)}).call(this,require("buffer").Buffer)},{"../PulsarBaseLoader":53,"../memory/PulsarExporterMemoryLoader":56,buffer:183,jszip:313,request:417}],59:[function(require,module,exports){"use strict";var PCLogType;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PCLogger=exports.PCLogType=void 0,function(PCLogType){PCLogType[PCLogType.success=0]="success",PCLogType[PCLogType.info=1]="info",PCLogType[PCLogType.warning=2]="warning",PCLogType[PCLogType.error=3]="error",PCLogType[PCLogType.user=4]="user"}(PCLogType=exports.PCLogType||(exports.PCLogType={}));exports.PCLogger=class{constructor(){this.logs=[]}emptyLogs(){this.logs=[]}store(log){return this.logs.push(log),log}logSuccess(message,id){let log={id:id,message:message,type:PCLogType.success,time:new Date};return this.store(log)}logInfo(message,id){let log={id:id,message:message,type:PCLogType.info,time:new Date};return this.store(log)}logWarning(message,id){let log={id:id,message:message,type:PCLogType.warning,time:new Date};return this.store(log)}logError(message,id){let log={id:id,message:message,type:PCLogType.error,time:new Date};return this.store(log)}logUser(message,id){let log={id:id,message:message,type:PCLogType.user,time:new Date};return this.store(log)}logType(type,message,id){let log={id:id,message:message,type:type,time:new Date};return this.store(log)}logSystem(systemMessage,id){return this.logType(systemMessage.type,systemMessage.message,id)}}},{}],60:[function(require,module,exports){"use strict";var compileSchema=require("./compile"),resolve=require("./compile/resolve"),Cache=require("./cache"),SchemaObject=require("./compile/schema_obj"),stableStringify=require("fast-json-stable-stringify"),formats=require("./compile/formats"),rules=require("./compile/rules"),$dataMetaSchema=require("./data"),util=require("./compile/util");module.exports=Ajv,Ajv.prototype.validate=function(schemaKeyRef,data){var v;if("string"==typeof schemaKeyRef){if(!(v=this.getSchema(schemaKeyRef)))throw new Error('no schema with key or ref "'+schemaKeyRef+'"')}else{var schemaObj=this._addSchema(schemaKeyRef);v=schemaObj.validate||this._compile(schemaObj)}var valid=v(data);!0!==v.$async&&(this.errors=v.errors);return valid},Ajv.prototype.compile=function(schema,_meta){var schemaObj=this._addSchema(schema,void 0,_meta);return schemaObj.validate||this._compile(schemaObj)},Ajv.prototype.addSchema=function(schema,key,_skipValidation,_meta){if(Array.isArray(schema)){for(var i=0;i<schema.length;i++)this.addSchema(schema[i],void 0,_skipValidation,_meta);return this}var id=this._getId(schema);if(void 0!==id&&"string"!=typeof id)throw new Error("schema id must be string");return checkUnique(this,key=resolve.normalizeId(key||id)),this._schemas[key]=this._addSchema(schema,_skipValidation,_meta,!0),this},Ajv.prototype.addMetaSchema=function(schema,key,skipValidation){return this.addSchema(schema,key,skipValidation,!0),this},Ajv.prototype.validateSchema=function(schema,throwOrLogError){var $schema=schema.$schema;if(void 0!==$schema&&"string"!=typeof $schema)throw new Error("$schema must be a string");if(!($schema=$schema||this._opts.defaultMeta||function(self){var meta=self._opts.meta;return self._opts.defaultMeta="object"==typeof meta?self._getId(meta)||meta:self.getSchema(META_SCHEMA_ID)?META_SCHEMA_ID:void 0,self._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var valid=this.validate($schema,schema);if(!valid&&throwOrLogError){var message="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(message);this.logger.error(message)}return valid},Ajv.prototype.getSchema=function(keyRef){var schemaObj=_getSchemaObj(this,keyRef);switch(typeof schemaObj){case"object":return schemaObj.validate||this._compile(schemaObj);case"string":return this.getSchema(schemaObj);case"undefined":return function(self,ref){var res=resolve.schema.call(self,{schema:{}},ref);if(res){var schema=res.schema,root=res.root,baseId=res.baseId,v=compileSchema.call(self,schema,root,void 0,baseId);return self._fragments[ref]=new SchemaObject({ref:ref,fragment:!0,schema:schema,root:root,baseId:baseId,validate:v}),v}}(this,keyRef)}},Ajv.prototype.removeSchema=function(schemaKeyRef){if(schemaKeyRef instanceof RegExp)return _removeAllSchemas(this,this._schemas,schemaKeyRef),_removeAllSchemas(this,this._refs,schemaKeyRef),this;switch(typeof schemaKeyRef){case"undefined":return _removeAllSchemas(this,this._schemas),_removeAllSchemas(this,this._refs),this._cache.clear(),this;case"string":var schemaObj=_getSchemaObj(this,schemaKeyRef);return schemaObj&&this._cache.del(schemaObj.cacheKey),delete this._schemas[schemaKeyRef],delete this._refs[schemaKeyRef],this;case"object":var serialize=this._opts.serialize,cacheKey=serialize?serialize(schemaKeyRef):schemaKeyRef;this._cache.del(cacheKey);var id=this._getId(schemaKeyRef);id&&(id=resolve.normalizeId(id),delete this._schemas[id],delete this._refs[id])}return this},Ajv.prototype.addFormat=function(name,format){"string"==typeof format&&(format=new RegExp(format));return this._formats[name]=format,this},Ajv.prototype.errorsText=function(errors,options){if(!(errors=errors||this.errors))return"No errors";for(var separator=void 0===(options=options||{}).separator?", ":options.separator,dataVar=void 0===options.dataVar?"data":options.dataVar,text="",i=0;i<errors.length;i++){var e=errors[i];e&&(text+=dataVar+e.dataPath+" "+e.message+separator)}return text.slice(0,-separator.length)},Ajv.prototype._addSchema=function(schema,skipValidation,meta,shouldAddSchema){if("object"!=typeof schema&&"boolean"!=typeof schema)throw new Error("schema should be object or boolean");var serialize=this._opts.serialize,cacheKey=serialize?serialize(schema):schema,cached=this._cache.get(cacheKey);if(cached)return cached;shouldAddSchema=shouldAddSchema||!1!==this._opts.addUsedSchema;var id=resolve.normalizeId(this._getId(schema));id&&shouldAddSchema&&checkUnique(this,id);var recursiveMeta,willValidate=!1!==this._opts.validateSchema&&!skipValidation;willValidate&&!(recursiveMeta=id&&id==resolve.normalizeId(schema.$schema))&&this.validateSchema(schema,!0);var localRefs=resolve.ids.call(this,schema),schemaObj=new SchemaObject({id:id,schema:schema,localRefs:localRefs,cacheKey:cacheKey,meta:meta});"#"!=id[0]&&shouldAddSchema&&(this._refs[id]=schemaObj);this._cache.put(cacheKey,schemaObj),willValidate&&recursiveMeta&&this.validateSchema(schema,!0);return schemaObj},Ajv.prototype._compile=function(schemaObj,root){if(schemaObj.compiling)return schemaObj.validate=callValidate,callValidate.schema=schemaObj.schema,callValidate.errors=null,callValidate.root=root||callValidate,!0===schemaObj.schema.$async&&(callValidate.$async=!0),callValidate;var currentOpts,v;schemaObj.compiling=!0,schemaObj.meta&&(currentOpts=this._opts,this._opts=this._metaOpts);try{v=compileSchema.call(this,schemaObj.schema,root,schemaObj.localRefs)}catch(e){throw delete schemaObj.validate,e}finally{schemaObj.compiling=!1,schemaObj.meta&&(this._opts=currentOpts)}return schemaObj.validate=v,schemaObj.refs=v.refs,schemaObj.refVal=v.refVal,schemaObj.root=v.root,v;function callValidate(){var _validate=schemaObj.validate,result=_validate.apply(this,arguments);return callValidate.errors=_validate.errors,result}},Ajv.prototype.compileAsync=require("./compile/async");var customKeyword=require("./keyword");Ajv.prototype.addKeyword=customKeyword.add,Ajv.prototype.getKeyword=customKeyword.get,Ajv.prototype.removeKeyword=customKeyword.remove,Ajv.prototype.validateKeyword=customKeyword.validate;var errorClasses=require("./compile/error_classes");Ajv.ValidationError=errorClasses.Validation,Ajv.MissingRefError=errorClasses.MissingRef,Ajv.$dataMetaSchema=$dataMetaSchema;var META_SCHEMA_ID="http://json-schema.org/draft-07/schema",META_IGNORE_OPTIONS=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],META_SUPPORT_DATA=["/properties"];function Ajv(opts){if(!(this instanceof Ajv))return new Ajv(opts);opts=this._opts=util.copy(opts)||{},function(self){var logger=self._opts.logger;if(!1===logger)self.logger={log:noop,warn:noop,error:noop};else{if(void 0===logger&&(logger=console),!("object"==typeof logger&&logger.log&&logger.warn&&logger.error))throw new Error("logger must implement log, warn and error methods");self.logger=logger}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=formats(opts.format),this._cache=opts.cache||new Cache,this._loadingSchemas={},this._compilations=[],this.RULES=rules(),this._getId=function(opts){switch(opts.schemaId){case"auto":return _get$IdOrId;case"id":return _getId;default:return _get$Id}}(opts),opts.loopRequired=opts.loopRequired||1/0,"property"==opts.errorDataPath&&(opts._errorDataPathProperty=!0),void 0===opts.serialize&&(opts.serialize=stableStringify),this._metaOpts=function(self){for(var metaOpts=util.copy(self._opts),i=0;i<META_IGNORE_OPTIONS.length;i++)delete metaOpts[META_IGNORE_OPTIONS[i]];return metaOpts}(this),opts.formats&&function(self){for(var name in self._opts.formats){var format=self._opts.formats[name];self.addFormat(name,format)}}(this),opts.keywords&&function(self){for(var name in self._opts.keywords){var keyword=self._opts.keywords[name];self.addKeyword(name,keyword)}}(this),function(self){var $dataSchema;self._opts.$data&&($dataSchema=require("./refs/data.json"),self.addMetaSchema($dataSchema,$dataSchema.$id,!0));if(!1===self._opts.meta)return;var metaSchema=require("./refs/json-schema-draft-07.json");self._opts.$data&&(metaSchema=$dataMetaSchema(metaSchema,META_SUPPORT_DATA));self.addMetaSchema(metaSchema,META_SCHEMA_ID,!0),self._refs["http://json-schema.org/schema"]=META_SCHEMA_ID}(this),"object"==typeof opts.meta&&this.addMetaSchema(opts.meta),opts.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(self){var optsSchemas=self._opts.schemas;if(!optsSchemas)return;if(Array.isArray(optsSchemas))self.addSchema(optsSchemas);else for(var key in optsSchemas)self.addSchema(optsSchemas[key],key)}(this)}function _getSchemaObj(self,keyRef){return keyRef=resolve.normalizeId(keyRef),self._schemas[keyRef]||self._refs[keyRef]||self._fragments[keyRef]}function _removeAllSchemas(self,schemas,regex){for(var keyRef in schemas){var schemaObj=schemas[keyRef];schemaObj.meta||regex&&!regex.test(keyRef)||(self._cache.del(schemaObj.cacheKey),delete schemas[keyRef])}}function _getId(schema){return schema.$id&&this.logger.warn("schema $id ignored",schema.$id),schema.id}function _get$Id(schema){return schema.id&&this.logger.warn("schema id ignored",schema.id),schema.$id}function _get$IdOrId(schema){if(schema.$id&&schema.id&&schema.$id!=schema.id)throw new Error("schema $id is different from id");return schema.$id||schema.id}function checkUnique(self,id){if(self._schemas[id]||self._refs[id])throw new Error('schema with key or id "'+id+'" already exists')}function noop(){}},{"./cache":61,"./compile":65,"./compile/async":62,"./compile/error_classes":63,"./compile/formats":64,"./compile/resolve":66,"./compile/rules":67,"./compile/schema_obj":68,"./compile/util":70,"./data":71,"./keyword":99,"./refs/data.json":100,"./refs/json-schema-draft-07.json":102,"fast-json-stable-stringify":233}],61:[function(require,module,exports){"use strict";var Cache=module.exports=function(){this._cache={}};Cache.prototype.put=function(key,value){this._cache[key]=value},Cache.prototype.get=function(key){return this._cache[key]},Cache.prototype.del=function(key){delete this._cache[key]},Cache.prototype.clear=function(){this._cache={}}},{}],62:[function(require,module,exports){"use strict";var MissingRefError=require("./error_classes").MissingRef;module.exports=function compileAsync(schema,meta,callback){var self=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof meta&&(callback=meta,meta=void 0);var p=loadMetaSchemaOf(schema).then((function(){var schemaObj=self._addSchema(schema,void 0,meta);return schemaObj.validate||_compileAsync(schemaObj)}));callback&&p.then((function(v){callback(null,v)}),callback);return p;function loadMetaSchemaOf(sch){var $schema=sch.$schema;return $schema&&!self.getSchema($schema)?compileAsync.call(self,{$ref:$schema},!0):Promise.resolve()}function _compileAsync(schemaObj){try{return self._compile(schemaObj)}catch(e){if(e instanceof MissingRefError)return function(e){var ref=e.missingSchema;if(added(ref))throw new Error("Schema "+ref+" is loaded but "+e.missingRef+" cannot be resolved");var schemaPromise=self._loadingSchemas[ref];schemaPromise||(schemaPromise=self._loadingSchemas[ref]=self._opts.loadSchema(ref)).then(removePromise,removePromise);return schemaPromise.then((function(sch){if(!added(ref))return loadMetaSchemaOf(sch).then((function(){added(ref)||self.addSchema(sch,ref,void 0,meta)}))})).then((function(){return _compileAsync(schemaObj)}));function removePromise(){delete self._loadingSchemas[ref]}function added(ref){return self._refs[ref]||self._schemas[ref]}}(e);throw e}}}},{"./error_classes":63}],63:[function(require,module,exports){"use strict";var resolve=require("./resolve");function MissingRefError(baseId,ref,message){this.message=message||MissingRefError.message(baseId,ref),this.missingRef=resolve.url(baseId,ref),this.missingSchema=resolve.normalizeId(resolve.fullPath(this.missingRef))}function errorSubclass(Subclass){return Subclass.prototype=Object.create(Error.prototype),Subclass.prototype.constructor=Subclass,Subclass}module.exports={Validation:errorSubclass((function(errors){this.message="validation failed",this.errors=errors,this.ajv=this.validation=!0})),MissingRef:errorSubclass(MissingRefError)},MissingRefError.message=function(baseId,ref){return"can't resolve reference "+ref+" from id "+baseId}},{"./resolve":66}],64:[function(require,module,exports){"use strict";var util=require("./util"),DATE=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,DAYS=[0,31,28,31,30,31,30,31,31,30,31,30,31],TIME=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,HOSTNAME=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,URI=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,URITEMPLATE=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,URL=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,UUID=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,JSON_POINTER=/^(?:\/(?:[^~/]|~0|~1)*)*$/,JSON_POINTER_URI_FRAGMENT=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,RELATIVE_JSON_POINTER=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function formats(mode){return mode="full"==mode?"full":"fast",util.copy(formats[mode])}function date(str){var matches=str.match(DATE);if(!matches)return!1;var year=+matches[1],month=+matches[2],day=+matches[3];return month>=1&&month<=12&&day>=1&&day<=(2==month&&function(year){return year%4==0&&(year%100!=0||year%400==0)}(year)?29:DAYS[month])}function time(str,full){var matches=str.match(TIME);if(!matches)return!1;var hour=matches[1],minute=matches[2],second=matches[3],timeZone=matches[5];return(hour<=23&&minute<=59&&second<=59||23==hour&&59==minute&&60==second)&&(!full||timeZone)}module.exports=formats,formats.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":URITEMPLATE,url:URL,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:HOSTNAME,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:regex,uuid:UUID,"json-pointer":JSON_POINTER,"json-pointer-uri-fragment":JSON_POINTER_URI_FRAGMENT,"relative-json-pointer":RELATIVE_JSON_POINTER},formats.full={date:date,time:time,"date-time":function(str){var dateTime=str.split(DATE_TIME_SEPARATOR);return 2==dateTime.length&&date(dateTime[0])&&time(dateTime[1],!0)},uri:function(str){return NOT_URI_FRAGMENT.test(str)&&URI.test(str)},"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":URITEMPLATE,url:URL,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:HOSTNAME,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:regex,uuid:UUID,"json-pointer":JSON_POINTER,"json-pointer-uri-fragment":JSON_POINTER_URI_FRAGMENT,"relative-json-pointer":RELATIVE_JSON_POINTER};var DATE_TIME_SEPARATOR=/t|\s/i;var NOT_URI_FRAGMENT=/\/|:/;var Z_ANCHOR=/[^\\]\\Z/;function regex(str){if(Z_ANCHOR.test(str))return!1;try{return new RegExp(str),!0}catch(e){return!1}}},{"./util":70}],65:[function(require,module,exports){"use strict";var resolve=require("./resolve"),util=require("./util"),errorClasses=require("./error_classes"),stableStringify=require("fast-json-stable-stringify"),validateGenerator=require("../dotjs/validate"),ucs2length=util.ucs2length,equal=require("fast-deep-equal"),ValidationError=errorClasses.Validation;function checkCompiling(schema,root,baseId){var index=compIndex.call(this,schema,root,baseId);return index>=0?{index:index,compiling:!0}:(index=this._compilations.length,this._compilations[index]={schema:schema,root:root,baseId:baseId},{index:index,compiling:!1})}function endCompiling(schema,root,baseId){var i=compIndex.call(this,schema,root,baseId);i>=0&&this._compilations.splice(i,1)}function compIndex(schema,root,baseId){for(var i=0;i<this._compilations.length;i++){var c=this._compilations[i];if(c.schema==schema&&c.root==root&&c.baseId==baseId)return i}return-1}function patternCode(i,patterns){return"var pattern"+i+" = new RegExp("+util.toQuotedString(patterns[i])+");"}function defaultCode(i){return"var default"+i+" = defaults["+i+"];"}function refValCode(i,refVal){return void 0===refVal[i]?"":"var refVal"+i+" = refVal["+i+"];"}function customRuleCode(i){return"var customRule"+i+" = customRules["+i+"];"}function vars(arr,statement){if(!arr.length)return"";for(var code="",i=0;i<arr.length;i++)code+=statement(i,arr);return code}module.exports=function compile(schema,root,localRefs,baseId){var self=this,opts=this._opts,refVal=[void 0],refs={},patterns=[],patternsHash={},defaults=[],defaultsHash={},customRules=[];root=root||{schema:schema,refVal:refVal,refs:refs};var c=checkCompiling.call(this,schema,root,baseId),compilation=this._compilations[c.index];if(c.compiling)return compilation.callValidate=function callValidate(){var validate=compilation.validate,result=validate.apply(this,arguments);return callValidate.errors=validate.errors,result};var formats=this._formats,RULES=this.RULES;try{var v=localCompile(schema,root,localRefs,baseId);compilation.validate=v;var cv=compilation.callValidate;return cv&&(cv.schema=v.schema,cv.errors=null,cv.refs=v.refs,cv.refVal=v.refVal,cv.root=v.root,cv.$async=v.$async,opts.sourceCode&&(cv.source=v.source)),v}finally{endCompiling.call(this,schema,root,baseId)}function localCompile(_schema,_root,localRefs,baseId){var isRoot=!_root||_root&&_root.schema==_schema;if(_root.schema!=root.schema)return compile.call(self,_schema,_root,localRefs,baseId);var validate,$async=!0===_schema.$async,sourceCode=validateGenerator({isTop:!0,schema:_schema,isRoot:isRoot,baseId:baseId,root:_root,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:errorClasses.MissingRef,RULES:RULES,validate:validateGenerator,util:util,resolve:resolve,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:opts,formats:formats,logger:self.logger,self:self});sourceCode=vars(refVal,refValCode)+vars(patterns,patternCode)+vars(defaults,defaultCode)+vars(customRules,customRuleCode)+sourceCode,opts.processCode&&(sourceCode=opts.processCode(sourceCode,_schema));try{validate=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",sourceCode)(self,RULES,formats,root,refVal,defaults,customRules,equal,ucs2length,ValidationError),refVal[0]=validate}catch(e){throw self.logger.error("Error compiling schema, function code:",sourceCode),e}return validate.schema=_schema,validate.errors=null,validate.refs=refs,validate.refVal=refVal,validate.root=isRoot?validate:_root,$async&&(validate.$async=!0),!0===opts.sourceCode&&(validate.source={code:sourceCode,patterns:patterns,defaults:defaults}),validate}function resolveRef(baseId,ref,isRoot){ref=resolve.url(baseId,ref);var _refVal,refCode,refIndex=refs[ref];if(void 0!==refIndex)return resolvedRef(_refVal=refVal[refIndex],refCode="refVal["+refIndex+"]");if(!isRoot&&root.refs){var rootRefId=root.refs[ref];if(void 0!==rootRefId)return resolvedRef(_refVal=root.refVal[rootRefId],refCode=addLocalRef(ref,_refVal))}refCode=addLocalRef(ref);var v=resolve.call(self,localCompile,root,ref);if(void 0===v){var localSchema=localRefs&&localRefs[ref];localSchema&&(v=resolve.inlineRef(localSchema,opts.inlineRefs)?localSchema:compile.call(self,localSchema,root,localRefs,baseId))}if(void 0!==v)return function(ref,v){var refId=refs[ref];refVal[refId]=v}(ref,v),resolvedRef(v,refCode);!function(ref){delete refs[ref]}(ref)}function addLocalRef(ref,v){var refId=refVal.length;return refVal[refId]=v,refs[ref]=refId,"refVal"+refId}function resolvedRef(refVal,code){return"object"==typeof refVal||"boolean"==typeof refVal?{code:code,schema:refVal,inline:!0}:{code:code,$async:refVal&&!!refVal.$async}}function usePattern(regexStr){var index=patternsHash[regexStr];return void 0===index&&(index=patternsHash[regexStr]=patterns.length,patterns[index]=regexStr),"pattern"+index}function useDefault(value){switch(typeof value){case"boolean":case"number":return""+value;case"string":return util.toQuotedString(value);case"object":if(null===value)return"null";var valueStr=stableStringify(value),index=defaultsHash[valueStr];return void 0===index&&(index=defaultsHash[valueStr]=defaults.length,defaults[index]=value),"default"+index}}function useCustomRule(rule,schema,parentSchema,it){if(!1!==self._opts.validateSchema){var deps=rule.definition.dependencies;if(deps&&!deps.every((function(keyword){return Object.prototype.hasOwnProperty.call(parentSchema,keyword)})))throw new Error("parent schema must have all required keywords: "+deps.join(","));var validateSchema=rule.definition.validateSchema;if(validateSchema)if(!validateSchema(schema)){var message="keyword schema is invalid: "+self.errorsText(validateSchema.errors);if("log"!=self._opts.validateSchema)throw new Error(message);self.logger.error(message)}}var validate,compile=rule.definition.compile,inline=rule.definition.inline,macro=rule.definition.macro;if(compile)validate=compile.call(self,schema,parentSchema,it);else if(macro)validate=macro.call(self,schema,parentSchema,it),!1!==opts.validateSchema&&self.validateSchema(validate,!0);else if(inline)validate=inline.call(self,it,rule.keyword,schema,parentSchema);else if(!(validate=rule.definition.validate))return;if(void 0===validate)throw new Error('custom keyword "'+rule.keyword+'"failed to compile');var index=customRules.length;return customRules[index]=validate,{code:"customRule"+index,validate:validate}}}},{"../dotjs/validate":98,"./error_classes":63,"./resolve":66,"./util":70,"fast-deep-equal":232,"fast-json-stable-stringify":233}],66:[function(require,module,exports){"use strict";var URI=require("uri-js"),equal=require("fast-deep-equal"),util=require("./util"),SchemaObject=require("./schema_obj"),traverse=require("json-schema-traverse");function resolve(compile,root,ref){var refVal=this._refs[ref];if("string"==typeof refVal){if(!this._refs[refVal])return resolve.call(this,compile,root,refVal);refVal=this._refs[refVal]}if((refVal=refVal||this._schemas[ref])instanceof SchemaObject)return inlineRef(refVal.schema,this._opts.inlineRefs)?refVal.schema:refVal.validate||this._compile(refVal);var schema,v,baseId,res=resolveSchema.call(this,root,ref);return res&&(schema=res.schema,root=res.root,baseId=res.baseId),schema instanceof SchemaObject?v=schema.validate||compile.call(this,schema.schema,root,void 0,baseId):void 0!==schema&&(v=inlineRef(schema,this._opts.inlineRefs)?schema:compile.call(this,schema,root,void 0,baseId)),v}function resolveSchema(root,ref){var p=URI.parse(ref),refPath=_getFullPath(p),baseId=getFullPath(this._getId(root.schema));if(0===Object.keys(root.schema).length||refPath!==baseId){var id=normalizeId(refPath),refVal=this._refs[id];if("string"==typeof refVal)return resolveRecursive.call(this,root,refVal,p);if(refVal instanceof SchemaObject)refVal.validate||this._compile(refVal),root=refVal;else{if(!((refVal=this._schemas[id])instanceof SchemaObject))return;if(refVal.validate||this._compile(refVal),id==normalizeId(ref))return{schema:refVal,root:root,baseId:baseId};root=refVal}if(!root.schema)return;baseId=getFullPath(this._getId(root.schema))}return getJsonPointer.call(this,p,baseId,root.schema,root)}function resolveRecursive(root,ref,parsedRef){var res=resolveSchema.call(this,root,ref);if(res){var schema=res.schema,baseId=res.baseId;root=res.root;var id=this._getId(schema);return id&&(baseId=resolveUrl(baseId,id)),getJsonPointer.call(this,parsedRef,baseId,schema,root)}}module.exports=resolve,resolve.normalizeId=normalizeId,resolve.fullPath=getFullPath,resolve.url=resolveUrl,resolve.ids=function(schema){var schemaId=normalizeId(this._getId(schema)),baseIds={"":schemaId},fullPaths={"":getFullPath(schemaId,!1)},localRefs={},self=this;return traverse(schema,{allKeys:!0},(function(sch,jsonPtr,rootSchema,parentJsonPtr,parentKeyword,parentSchema,keyIndex){if(""!==jsonPtr){var id=self._getId(sch),baseId=baseIds[parentJsonPtr],fullPath=fullPaths[parentJsonPtr]+"/"+parentKeyword;if(void 0!==keyIndex&&(fullPath+="/"+("number"==typeof keyIndex?keyIndex:util.escapeFragment(keyIndex))),"string"==typeof id){id=baseId=normalizeId(baseId?URI.resolve(baseId,id):id);var refVal=self._refs[id];if("string"==typeof refVal&&(refVal=self._refs[refVal]),refVal&&refVal.schema){if(!equal(sch,refVal.schema))throw new Error('id "'+id+'" resolves to more than one schema')}else if(id!=normalizeId(fullPath))if("#"==id[0]){if(localRefs[id]&&!equal(sch,localRefs[id]))throw new Error('id "'+id+'" resolves to more than one schema');localRefs[id]=sch}else self._refs[id]=fullPath}baseIds[jsonPtr]=baseId,fullPaths[jsonPtr]=fullPath}})),localRefs},resolve.inlineRef=inlineRef,resolve.schema=resolveSchema;var PREVENT_SCOPE_CHANGE=util.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(parsedRef,baseId,schema,root){if(parsedRef.fragment=parsedRef.fragment||"","/"==parsedRef.fragment.slice(0,1)){for(var parts=parsedRef.fragment.split("/"),i=1;i<parts.length;i++){var part=parts[i];if(part){if(void 0===(schema=schema[part=util.unescapeFragment(part)]))break;var id;if(!PREVENT_SCOPE_CHANGE[part]&&((id=this._getId(schema))&&(baseId=resolveUrl(baseId,id)),schema.$ref)){var $ref=resolveUrl(baseId,schema.$ref),res=resolveSchema.call(this,root,$ref);res&&(schema=res.schema,root=res.root,baseId=res.baseId)}}}return void 0!==schema&&schema!==root.schema?{schema:schema,root:root,baseId:baseId}:void 0}}var SIMPLE_INLINED=util.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function inlineRef(schema,limit){return!1!==limit&&(void 0===limit||!0===limit?checkNoRef(schema):limit?countKeys(schema)<=limit:void 0)}function checkNoRef(schema){var item;if(Array.isArray(schema)){for(var i=0;i<schema.length;i++)if("object"==typeof(item=schema[i])&&!checkNoRef(item))return!1}else for(var key in schema){if("$ref"==key)return!1;if("object"==typeof(item=schema[key])&&!checkNoRef(item))return!1}return!0}function countKeys(schema){var item,count=0;if(Array.isArray(schema)){for(var i=0;i<schema.length;i++)if("object"==typeof(item=schema[i])&&(count+=countKeys(item)),count==1/0)return 1/0}else for(var key in schema){if("$ref"==key)return 1/0;if(SIMPLE_INLINED[key])count++;else if("object"==typeof(item=schema[key])&&(count+=countKeys(item)+1),count==1/0)return 1/0}return count}function getFullPath(id,normalize){return!1!==normalize&&(id=normalizeId(id)),_getFullPath(URI.parse(id))}function _getFullPath(p){return URI.serialize(p).split("#")[0]+"#"}var TRAILING_SLASH_HASH=/#\/?$/;function normalizeId(id){return id?id.replace(TRAILING_SLASH_HASH,""):""}function resolveUrl(baseId,id){return id=normalizeId(id),URI.resolve(baseId,id)}},{"./schema_obj":68,"./util":70,"fast-deep-equal":232,"json-schema-traverse":300,"uri-js":501}],67:[function(require,module,exports){"use strict";var ruleModules=require("../dotjs"),toHash=require("./util").toHash;module.exports=function(){var RULES=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],ALL=["type","$comment"];return RULES.all=toHash(ALL),RULES.types=toHash(["number","integer","string","array","object","boolean","null"]),RULES.forEach((function(group){group.rules=group.rules.map((function(keyword){var implKeywords;if("object"==typeof keyword){var key=Object.keys(keyword)[0];implKeywords=keyword[key],keyword=key,implKeywords.forEach((function(k){ALL.push(k),RULES.all[k]=!0}))}return ALL.push(keyword),RULES.all[keyword]={keyword:keyword,code:ruleModules[keyword],implements:implKeywords}})),RULES.all.$comment={keyword:"$comment",code:ruleModules.$comment},group.type&&(RULES.types[group.type]=group)})),RULES.keywords=toHash(ALL.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),RULES.custom={},RULES}},{"../dotjs":87,"./util":70}],68:[function(require,module,exports){"use strict";var util=require("./util");module.exports=function(obj){util.copy(obj,this)}},{"./util":70}],69:[function(require,module,exports){"use strict";module.exports=function(str){for(var value,length=0,len=str.length,pos=0;pos<len;)length++,(value=str.charCodeAt(pos++))>=55296&&value<=56319&&pos<len&&56320==(64512&(value=str.charCodeAt(pos)))&&pos++;return length}},{}],70:[function(require,module,exports){"use strict";function checkDataType(dataType,data,strictNumbers,negate){var EQUAL=negate?" !== ":" === ",AND=negate?" || ":" && ",OK=negate?"!":"",NOT=negate?"":"!";switch(dataType){case"null":return data+EQUAL+"null";case"array":return OK+"Array.isArray("+data+")";case"object":return"("+OK+data+AND+"typeof "+data+EQUAL+'"object"'+AND+NOT+"Array.isArray("+data+"))";case"integer":return"(typeof "+data+EQUAL+'"number"'+AND+NOT+"("+data+" % 1)"+AND+data+EQUAL+data+(strictNumbers?AND+OK+"isFinite("+data+")":"")+")";case"number":return"(typeof "+data+EQUAL+'"'+dataType+'"'+(strictNumbers?AND+OK+"isFinite("+data+")":"")+")";default:return"typeof "+data+EQUAL+'"'+dataType+'"'}}module.exports={copy:function(o,to){for(var key in to=to||{},o)to[key]=o[key];return to},checkDataType:checkDataType,checkDataTypes:function(dataTypes,data,strictNumbers){switch(dataTypes.length){case 1:return checkDataType(dataTypes[0],data,strictNumbers,!0);default:var code="",types=toHash(dataTypes);for(var t in types.array&&types.object&&(code=types.null?"(":"(!"+data+" || ",code+="typeof "+data+' !== "object")',delete types.null,delete types.array,delete types.object),types.number&&delete types.integer,types)code+=(code?" && ":"")+checkDataType(t,data,strictNumbers,!0);return code}},coerceToTypes:function(optionCoerceTypes,dataTypes){if(Array.isArray(dataTypes)){for(var types=[],i=0;i<dataTypes.length;i++){var t=dataTypes[i];(COERCE_TO_TYPES[t]||"array"===optionCoerceTypes&&"array"===t)&&(types[types.length]=t)}if(types.length)return types}else{if(COERCE_TO_TYPES[dataTypes])return[dataTypes];if("array"===optionCoerceTypes&&"array"===dataTypes)return["array"]}},toHash:toHash,getProperty:getProperty,escapeQuotes:escapeQuotes,equal:require("fast-deep-equal"),ucs2length:require("./ucs2length"),varOccurences:function(str,dataVar){dataVar+="[^0-9]";var matches=str.match(new RegExp(dataVar,"g"));return matches?matches.length:0},varReplace:function(str,dataVar,expr){return dataVar+="([^0-9])",expr=expr.replace(/\$/g,"$$$$"),str.replace(new RegExp(dataVar,"g"),expr+"$1")},schemaHasRules:function(schema,rules){if("boolean"==typeof schema)return!schema;for(var key in schema)if(rules[key])return!0},schemaHasRulesExcept:function(schema,rules,exceptKeyword){if("boolean"==typeof schema)return!schema&&"not"!=exceptKeyword;for(var key in schema)if(key!=exceptKeyword&&rules[key])return!0},schemaUnknownRules:function(schema,rules){if("boolean"==typeof schema)return;for(var key in schema)if(!rules[key])return key},toQuotedString:toQuotedString,getPathExpr:function(currentPath,expr,jsonPointers,isNumber){return joinPaths(currentPath,jsonPointers?"'/' + "+expr+(isNumber?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):isNumber?"'[' + "+expr+" + ']'":"'[\\'' + "+expr+" + '\\']'")},getPath:function(currentPath,prop,jsonPointers){var path=toQuotedString(jsonPointers?"/"+escapeJsonPointer(prop):getProperty(prop));return joinPaths(currentPath,path)},getData:function($data,lvl,paths){var up,jsonPointer,data,matches;if(""===$data)return"rootData";if("/"==$data[0]){if(!JSON_POINTER.test($data))throw new Error("Invalid JSON-pointer: "+$data);jsonPointer=$data,data="rootData"}else{if(!(matches=$data.match(RELATIVE_JSON_POINTER)))throw new Error("Invalid JSON-pointer: "+$data);if(up=+matches[1],"#"==(jsonPointer=matches[2])){if(up>=lvl)throw new Error("Cannot access property/index "+up+" levels up, current level is "+lvl);return paths[lvl-up]}if(up>lvl)throw new Error("Cannot access data "+up+" levels up, current level is "+lvl);if(data="data"+(lvl-up||""),!jsonPointer)return data}for(var expr=data,segments=jsonPointer.split("/"),i=0;i<segments.length;i++){var segment=segments[i];segment&&(data+=getProperty(unescapeJsonPointer(segment)),expr+=" && "+data)}return expr},unescapeFragment:function(str){return unescapeJsonPointer(decodeURIComponent(str))},unescapeJsonPointer:unescapeJsonPointer,escapeFragment:function(str){return encodeURIComponent(escapeJsonPointer(str))},escapeJsonPointer:escapeJsonPointer};var COERCE_TO_TYPES=toHash(["string","number","integer","boolean","null"]);function toHash(arr){for(var hash={},i=0;i<arr.length;i++)hash[arr[i]]=!0;return hash}var IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i,SINGLE_QUOTE=/'|\\/g;function getProperty(key){return"number"==typeof key?"["+key+"]":IDENTIFIER.test(key)?"."+key:"['"+escapeQuotes(key)+"']"}function escapeQuotes(str){return str.replace(SINGLE_QUOTE,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function toQuotedString(str){return"'"+escapeQuotes(str)+"'"}var JSON_POINTER=/^\/(?:[^~]|~0|~1)*$/,RELATIVE_JSON_POINTER=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function joinPaths(a,b){return'""'==a?b:(a+" + "+b).replace(/([^\\])' \+ '/g,"$1")}function escapeJsonPointer(str){return str.replace(/~/g,"~0").replace(/\//g,"~1")}function unescapeJsonPointer(str){return str.replace(/~1/g,"/").replace(/~0/g,"~")}},{"./ucs2length":69,"fast-deep-equal":232}],71:[function(require,module,exports){"use strict";var KEYWORDS=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];module.exports=function(metaSchema,keywordsJsonPointers){for(var i=0;i<keywordsJsonPointers.length;i++){metaSchema=JSON.parse(JSON.stringify(metaSchema));var j,segments=keywordsJsonPointers[i].split("/"),keywords=metaSchema;for(j=1;j<segments.length;j++)keywords=keywords[segments[j]];for(j=0;j<KEYWORDS.length;j++){var key=KEYWORDS[j],schema=keywords[key];schema&&(keywords[key]={anyOf:[schema,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return metaSchema}},{}],72:[function(require,module,exports){"use strict";var metaSchema=require("./refs/json-schema-draft-07.json");module.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:metaSchema.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:metaSchema.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},{"./refs/json-schema-draft-07.json":102}],73:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema;var $isMax="maximum"==$keyword,$exclusiveKeyword=$isMax?"exclusiveMaximum":"exclusiveMinimum",$schemaExcl=it.schema[$exclusiveKeyword],$isDataExcl=it.opts.$data&&$schemaExcl&&$schemaExcl.$data,$op=$isMax?"<":">",$notOp=$isMax?">":"<",$errorKeyword=void 0;if(!$isData&&"number"!=typeof $schema&&void 0!==$schema)throw new Error($keyword+" must be number");if(!$isDataExcl&&void 0!==$schemaExcl&&"number"!=typeof $schemaExcl&&"boolean"!=typeof $schemaExcl)throw new Error($exclusiveKeyword+" must be number or boolean");if($isDataExcl){var $schemaValueExcl=it.util.getData($schemaExcl.$data,$dataLvl,it.dataPathArr),$exclusive="exclusive"+$lvl,$exclType="exclType"+$lvl,$exclIsNumber="exclIsNumber"+$lvl,$opStr="' + "+($opExpr="op"+$lvl)+" + '";out+=" var schemaExcl"+$lvl+" = "+$schemaValueExcl+"; ",out+=" var "+$exclusive+"; var "+$exclType+" = typeof "+($schemaValueExcl="schemaExcl"+$lvl)+"; if ("+$exclType+" != 'boolean' && "+$exclType+" != 'undefined' && "+$exclType+" != 'number') { ";var $$outStack;$errorKeyword=$exclusiveKeyword;($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: '"+$exclusiveKeyword+" should be boolean' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),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+"='; ",void 0===$schema&&($errorKeyword=$exclusiveKeyword,$errSchemaPath=it.errSchemaPath+"/"+$exclusiveKeyword,$schemaValue=$schemaValueExcl,$isData=$isDataExcl)}else{$opStr=$op;if(($exclIsNumber="number"==typeof $schemaExcl)&&$isData){var $opExpr="'"+$opStr+"'";out+=" if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" ( "+$schemaValue+" === undefined || "+$schemaExcl+" "+$op+"= "+$schemaValue+" ? "+$data+" "+$notOp+"= "+$schemaExcl+" : "+$data+" "+$notOp+" "+$schemaValue+" ) || "+$data+" !== "+$data+") { "}else{$exclIsNumber&&void 0===$schema?($exclusive=!0,$errorKeyword=$exclusiveKeyword,$errSchemaPath=it.errSchemaPath+"/"+$exclusiveKeyword,$schemaValue=$schemaExcl,$notOp+="="):($exclIsNumber&&($schemaValue=Math[$isMax?"min":"max"]($schemaExcl,$schema)),$schemaExcl===(!$exclIsNumber||$schemaValue)?($exclusive=!0,$errorKeyword=$exclusiveKeyword,$errSchemaPath=it.errSchemaPath+"/"+$exclusiveKeyword,$notOp+="="):($exclusive=!1,$opStr+="="));$opExpr="'"+$opStr+"'";out+=" if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" "+$data+" "+$notOp+" "+$schemaValue+" || "+$data+" !== "+$data+") { "}}$errorKeyword=$errorKeyword||$keyword,($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limit")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { comparison: "+$opExpr+", limit: "+$schemaValue+", exclusive: "+$exclusive+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be "+$opStr+" ",out+=$isData?"' + "+$schemaValue:$schemaValue+"'"),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$breakOnError&&(out+=" else { "),out}},{}],74:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" "+$data+".length "+("maxItems"==$keyword?">":"<")+" "+$schemaValue+") { ";var $errorKeyword=$keyword,$$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limitItems")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have ",out+="maxItems"==$keyword?"more":"fewer",out+=" than ",out+=$isData?"' + "+$schemaValue+" + '":""+$schema,out+=" items' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],75:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");var $op="maxLength"==$keyword?">":"<";out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),!1===it.opts.unicode?out+=" "+$data+".length ":out+=" ucs2length("+$data+") ",out+=" "+$op+" "+$schemaValue+") { ";var $errorKeyword=$keyword,$$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limitLength")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT be ",out+="maxLength"==$keyword?"longer":"shorter",out+=" than ",out+=$isData?"' + "+$schemaValue+" + '":""+$schema,out+=" characters' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],76:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'number') || "),out+=" Object.keys("+$data+").length "+("maxProperties"==$keyword?">":"<")+" "+$schemaValue+") { ";var $errorKeyword=$keyword,$$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"_limitProperties")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have ",out+="maxProperties"==$keyword?"more":"fewer",out+=" than ",out+=$isData?"' + "+$schemaValue+" + '":""+$schema,out+=" properties' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],77:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$currentBaseId=$it.baseId,$allSchemasEmpty=!0,arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)$sch=arr1[$i+=1],(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all))&&($allSchemasEmpty=!1,$it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}"));return $breakOnError&&(out+=$allSchemasEmpty?" if (true) { ":" "+$closingBraces.slice(0,-1)+" "),out}},{}],78:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level;if($schema.every((function($sch){return it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)}))){var $currentBaseId=$it.baseId;out+=" var "+$errs+" = errors; var "+$valid+" = false; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)$sch=arr1[$i+=1],$it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" "+$valid+" = "+$valid+" || "+$nextValid+"; if (!"+$valid+") { ",$closingBraces+="}";it.compositeRule=$it.compositeRule=$wasComposite,out+=" "+$closingBraces+" if (!"+$valid+") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should match some schema in anyOf' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),out+=" } else { errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } ",it.opts.allErrors&&(out+=" } ")}else $breakOnError&&(out+=" if (true) { ");return out}},{}],79:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$schema=it.schema[$keyword],$errSchemaPath=it.errSchemaPath+"/"+$keyword,$comment=(it.opts.allErrors,it.util.toQuotedString($schema));return!0===it.opts.$comment?out+=" console.log("+$comment+");":"function"==typeof it.opts.$comment&&(out+=" self._opts.$comment("+$comment+", "+it.util.toQuotedString($errSchemaPath)+", validate.root.schema);"),out}},{}],80:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData&&(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; "),$isData||(out+=" var schema"+$lvl+" = validate.schema"+$schemaPath+";"),out+="var "+$valid+" = equal("+$data+", schema"+$lvl+"); if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'const' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { allowedValue: schema"+$lvl+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be equal to constant' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" }",$breakOnError&&(out+=" else { "),out}},{}],81:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level,$idx="i"+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData="data"+$dataNxt,$currentBaseId=it.baseId,$nonEmptySchema=it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all);if(out+="var "+$errs+" = errors;var "+$valid+";",$nonEmptySchema){var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" var "+$nextValid+" = false; for (var "+$idx+" = 0; "+$idx+" < "+$data+".length; "+$idx+"++) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,!0);var $passData=$data+"["+$idx+"]";$it.dataPathArr[$dataNxt]=$idx;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",out+=" if ("+$nextValid+") break; } ",it.compositeRule=$it.compositeRule=$wasComposite,out+=" if (!"+$nextValid+") {"}else out+=" if ("+$data+".length == 0) {";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should contain a valid item' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { ",$nonEmptySchema&&(out+=" errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } "),it.opts.allErrors&&(out+=" } "),out}},{}],82:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $errorKeyword,$schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema;var $compile,$inline,$macro,$ruleValidate,$validateCode,$definition="definition"+$lvl,$rDef=this.definition,$closingBraces="";if($isData&&$rDef.$data){$validateCode="keywordValidate"+$lvl;var $validateSchema=$rDef.validateSchema;out+=" var "+$definition+" = RULES.custom['"+$keyword+"'].definition; var "+$validateCode+" = "+$definition+".validate;"}else{if(!($ruleValidate=it.useCustomRule(this,$schema,it.schema,it)))return;$schemaValue="validate.schema"+$schemaPath,$validateCode=$ruleValidate.code,$compile=$rDef.compile,$inline=$rDef.inline,$macro=$rDef.macro}var $ruleErrs=$validateCode+".errors",$i="i"+$lvl,$ruleErr="ruleErr"+$lvl,$asyncKeyword=$rDef.async;if($asyncKeyword&&!it.async)throw new Error("async keyword in sync schema");if($inline||$macro||(out+=$ruleErrs+" = null;"),out+="var "+$errs+" = errors;var "+$valid+";",$isData&&$rDef.$data&&($closingBraces+="}",out+=" if ("+$schemaValue+" === undefined) { "+$valid+" = true; } else { ",$validateSchema&&($closingBraces+="}",out+=" "+$valid+" = "+$definition+".validateSchema("+$schemaValue+"); if ("+$valid+") { ")),$inline)$rDef.statements?out+=" "+$ruleValidate.validate+" ":out+=" "+$valid+" = "+$ruleValidate.validate+"; ";else if($macro){var $it=it.util.copy(it);$closingBraces="";$it.level++;var $nextValid="valid"+$it.level;$it.schema=$ruleValidate.validate,$it.schemaPath="";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var $code=it.validate($it).replace(/validate\.schema/g,$validateCode);it.compositeRule=$it.compositeRule=$wasComposite,out+=" "+$code}else{($$outStack=$$outStack||[]).push(out),out="",out+=" "+$validateCode+".call( ",it.opts.passContext?out+="this":out+="self",$compile||!1===$rDef.schema?out+=" , "+$data+" ":out+=" , "+$schemaValue+" , "+$data+" , validate.schema"+it.schemaPath+" ",out+=" , (dataPath || '')",'""'!=it.errorPath&&(out+=" + "+it.errorPath);var $parentData=$dataLvl?"data"+($dataLvl-1||""):"parentData",$parentDataProperty=$dataLvl?it.dataPathArr[$dataLvl]:"parentDataProperty",def_callRuleValidate=out+=" , "+$parentData+" , "+$parentDataProperty+" , rootData ) ";out=$$outStack.pop(),!1===$rDef.errors?(out+=" "+$valid+" = ",$asyncKeyword&&(out+="await "),out+=def_callRuleValidate+"; "):out+=$asyncKeyword?" var "+($ruleErrs="customErrors"+$lvl)+" = null; try { "+$valid+" = await "+def_callRuleValidate+"; } catch (e) { "+$valid+" = false; if (e instanceof ValidationError) "+$ruleErrs+" = e.errors; else throw e; } ":" "+$ruleErrs+" = null; "+$valid+" = "+def_callRuleValidate+"; "}if($rDef.modifying&&(out+=" if ("+$parentData+") "+$data+" = "+$parentData+"["+$parentDataProperty+"];"),out+=""+$closingBraces,$rDef.valid)$breakOnError&&(out+=" if (true) { ");else{var $$outStack;out+=" if ( ",void 0===$rDef.valid?(out+=" !",out+=$macro?""+$nextValid:""+$valid):out+=" "+!$rDef.valid+" ",out+=") { ",$errorKeyword=this.keyword,($$outStack=$$outStack||[]).push(out),out="",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"custom")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { keyword: '"+this.keyword+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var def_customError=out;out=$$outStack.pop(),$inline?$rDef.errors?"full"!=$rDef.errors&&(out+=" for (var "+$i+"="+$errs+"; "+$i+"<errors; "+$i+"++) { var "+$ruleErr+" = vErrors["+$i+"]; if ("+$ruleErr+".dataPath === undefined) "+$ruleErr+".dataPath = (dataPath || '') + "+it.errorPath+"; if ("+$ruleErr+".schemaPath === undefined) { "+$ruleErr+'.schemaPath = "'+$errSchemaPath+'"; } ',it.opts.verbose&&(out+=" "+$ruleErr+".schema = "+$schemaValue+"; "+$ruleErr+".data = "+$data+"; "),out+=" } "):!1===$rDef.errors?out+=" "+def_customError+" ":(out+=" if ("+$errs+" == errors) { "+def_customError+" } else { for (var "+$i+"="+$errs+"; "+$i+"<errors; "+$i+"++) { var "+$ruleErr+" = vErrors["+$i+"]; if ("+$ruleErr+".dataPath === undefined) "+$ruleErr+".dataPath = (dataPath || '') + "+it.errorPath+"; if ("+$ruleErr+".schemaPath === undefined) { "+$ruleErr+'.schemaPath = "'+$errSchemaPath+'"; } ',it.opts.verbose&&(out+=" "+$ruleErr+".schema = "+$schemaValue+"; "+$ruleErr+".data = "+$data+"; "),out+=" } } "):$macro?(out+=" var err = ",!1!==it.createErrors?(out+=" { keyword: '"+($errorKeyword||"custom")+"' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { keyword: '"+this.keyword+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; ")):!1===$rDef.errors?out+=" "+def_customError+" ":(out+=" if (Array.isArray("+$ruleErrs+")) { if (vErrors === null) vErrors = "+$ruleErrs+"; else vErrors = vErrors.concat("+$ruleErrs+"); errors = vErrors.length; for (var "+$i+"="+$errs+"; "+$i+"<errors; "+$i+"++) { var "+$ruleErr+" = vErrors["+$i+"]; if ("+$ruleErr+".dataPath === undefined) "+$ruleErr+".dataPath = (dataPath || '') + "+it.errorPath+"; "+$ruleErr+'.schemaPath = "'+$errSchemaPath+'"; ',it.opts.verbose&&(out+=" "+$ruleErr+".schema = "+$schemaValue+"; "+$ruleErr+".data = "+$data+"; "),out+=" } } else { "+def_customError+" } "),out+=" } ",$breakOnError&&(out+=" else { ")}return out}},{}],83:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$schemaDeps={},$propertyDeps={},$ownProperties=it.opts.ownProperties;for($property in $schema)if("__proto__"!=$property){var $sch=$schema[$property],$deps=Array.isArray($sch)?$propertyDeps:$schemaDeps;$deps[$property]=$sch}out+="var "+$errs+" = errors;";var $currentErrorPath=it.errorPath;for(var $property in out+="var missing"+$lvl+";",$propertyDeps)if(($deps=$propertyDeps[$property]).length){if(out+=" if ( "+$data+it.util.getProperty($property)+" !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($property)+"') "),$breakOnError){out+=" && ( ";var arr1=$deps;if(arr1)for(var $i=-1,l1=arr1.length-1;$i<l1;){$propertyKey=arr1[$i+=1],$i&&(out+=" || "),out+=" ( ( "+($useData=$data+($prop=it.util.getProperty($propertyKey)))+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") && (missing"+$lvl+" = "+it.util.toQuotedString(it.opts.jsonPointers?$propertyKey:$prop)+") ) "}out+=")) { ";var $propertyPath="missing"+$lvl,$missingProperty="' + "+$propertyPath+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.opts.jsonPointers?it.util.getPathExpr($currentErrorPath,$propertyPath,!0):$currentErrorPath+" + "+$propertyPath);var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(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(1==$deps.length?$deps[0]:$deps.join(", "))+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should have ",1==$deps.length?out+="property "+it.util.escapeQuotes($deps[0]):out+="properties "+it.util.escapeQuotes($deps.join(", ")),out+=" when property "+it.util.escapeQuotes($property)+" is present' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{out+=" ) { ";var arr2=$deps;if(arr2)for(var $propertyKey,i2=-1,l2=arr2.length-1;i2<l2;){$propertyKey=arr2[i2+=1];var $prop=it.util.getProperty($propertyKey),$useData=($missingProperty=it.util.escapeQuotes($propertyKey),$data+$prop);it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers)),out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { var err = ",!1!==it.createErrors?(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(1==$deps.length?$deps[0]:$deps.join(", "))+"' } ",!1!==it.opts.messages&&(out+=" , message: 'should have ",1==$deps.length?out+="property "+it.util.escapeQuotes($deps[0]):out+="properties "+it.util.escapeQuotes($deps.join(", ")),out+=" when property "+it.util.escapeQuotes($property)+" is present' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}out+=" } ",$breakOnError&&($closingBraces+="}",out+=" else { ")}it.errorPath=$currentErrorPath;var $currentBaseId=$it.baseId;for(var $property in $schemaDeps){$sch=$schemaDeps[$property];(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all))&&(out+=" "+$nextValid+" = true; if ( "+$data+it.util.getProperty($property)+" !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($property)+"') "),out+=") { ",$it.schema=$sch,$it.schemaPath=$schemaPath+it.util.getProperty($property),$it.errSchemaPath=$errSchemaPath+"/"+it.util.escapeFragment($property),out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}"))}return $breakOnError&&(out+=" "+$closingBraces+" if ("+$errs+" == errors) {"),out}},{}],84:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData&&(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ");var $i="i"+$lvl,$vSchema="schema"+$lvl;$isData||(out+=" var "+$vSchema+" = validate.schema"+$schemaPath+";"),out+="var "+$valid+";",$isData&&(out+=" if (schema"+$lvl+" === undefined) "+$valid+" = true; else if (!Array.isArray(schema"+$lvl+")) "+$valid+" = false; else {"),out+=$valid+" = false;for (var "+$i+"=0; "+$i+"<"+$vSchema+".length; "+$i+"++) if (equal("+$data+", "+$vSchema+"["+$i+"])) { "+$valid+" = true; break; }",$isData&&(out+=" } "),out+=" if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { allowedValues: schema"+$lvl+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be equal to one of the allowed values' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" }",$breakOnError&&(out+=" else { "),out}},{}],85:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||"");if(!1===it.opts.format)return $breakOnError&&(out+=" if (true) { "),out;var $schemaValue,$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema;var $unknownFormats=it.opts.unknownFormats,$allowUnknown=Array.isArray($unknownFormats);if($isData){out+=" var "+($format="format"+$lvl)+" = formats["+$schemaValue+"]; var "+($isObject="isObject"+$lvl)+" = typeof "+$format+" == 'object' && !("+$format+" instanceof RegExp) && "+$format+".validate; var "+($formatType="formatType"+$lvl)+" = "+$isObject+" && "+$format+".type || 'string'; if ("+$isObject+") { ",it.async&&(out+=" var async"+$lvl+" = "+$format+".async; "),out+=" "+$format+" = "+$format+".validate; } if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'string') || "),out+=" (","ignore"!=$unknownFormats&&(out+=" ("+$schemaValue+" && !"+$format+" ",$allowUnknown&&(out+=" && self._opts.unknownFormats.indexOf("+$schemaValue+") == -1 "),out+=") || "),out+=" ("+$format+" && "+$formatType+" == '"+$ruleType+"' && !(typeof "+$format+" == 'function' ? ",it.async?out+=" (async"+$lvl+" ? await "+$format+"("+$data+") : "+$format+"("+$data+")) ":out+=" "+$format+"("+$data+") ",out+=" : "+$format+".test("+$data+"))))) {"}else{var $format;if(!($format=it.formats[$schema])){if("ignore"==$unknownFormats)return it.logger.warn('unknown format "'+$schema+'" ignored in schema at path "'+it.errSchemaPath+'"'),$breakOnError&&(out+=" if (true) { "),out;if($allowUnknown&&$unknownFormats.indexOf($schema)>=0)return $breakOnError&&(out+=" if (true) { "),out;throw new Error('unknown format "'+$schema+'" is used in schema at path "'+it.errSchemaPath+'"')}var $isObject,$formatType=($isObject="object"==typeof $format&&!($format instanceof RegExp)&&$format.validate)&&$format.type||"string";if($isObject){var $async=!0===$format.async;$format=$format.validate}if($formatType!=$ruleType)return $breakOnError&&(out+=" if (true) { "),out;if($async){if(!it.async)throw new Error("async format in sync schema");out+=" if (!(await "+($formatRef="formats"+it.util.getProperty($schema)+".validate")+"("+$data+"))) { "}else{out+=" if (! ";var $formatRef="formats"+it.util.getProperty($schema);$isObject&&($formatRef+=".validate"),out+="function"==typeof $format?" "+$formatRef+"("+$data+") ":" "+$formatRef+".test("+$data+") ",out+=") { "}}var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'format' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { format: ",out+=$isData?""+$schemaValue:""+it.util.toQuotedString($schema),out+=" } ",!1!==it.opts.messages&&(out+=" , message: 'should match format \"",out+=$isData?"' + "+$schemaValue+" + '":""+it.util.escapeQuotes($schema),out+="\"' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+it.util.toQuotedString($schema),out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$breakOnError&&(out+=" else { "),out}},{}],86:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level,$thenSch=it.schema.then,$elseSch=it.schema.else,$thenPresent=void 0!==$thenSch&&(it.opts.strictKeywords?"object"==typeof $thenSch&&Object.keys($thenSch).length>0||!1===$thenSch:it.util.schemaHasRules($thenSch,it.RULES.all)),$elsePresent=void 0!==$elseSch&&(it.opts.strictKeywords?"object"==typeof $elseSch&&Object.keys($elseSch).length>0||!1===$elseSch:it.util.schemaHasRules($elseSch,it.RULES.all)),$currentBaseId=$it.baseId;if($thenPresent||$elsePresent){var $ifClause;$it.createErrors=!1,$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" var "+$errs+" = errors; var "+$valid+" = true; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,$it.createErrors=!0,out+=" errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } ",it.compositeRule=$it.compositeRule=$wasComposite,$thenPresent?(out+=" if ("+$nextValid+") { ",$it.schema=it.schema.then,$it.schemaPath=it.schemaPath+".then",$it.errSchemaPath=it.errSchemaPath+"/then",out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" "+$valid+" = "+$nextValid+"; ",$thenPresent&&$elsePresent?out+=" var "+($ifClause="ifClause"+$lvl)+" = 'then'; ":$ifClause="'then'",out+=" } ",$elsePresent&&(out+=" else { ")):out+=" if (!"+$nextValid+") { ",$elsePresent&&($it.schema=it.schema.else,$it.schemaPath=it.schemaPath+".else",$it.errSchemaPath=it.errSchemaPath+"/else",out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId,out+=" "+$valid+" = "+$nextValid+"; ",$thenPresent&&$elsePresent?out+=" var "+($ifClause="ifClause"+$lvl)+" = 'else'; ":$ifClause="'else'",out+=" } "),out+=" if (!"+$valid+") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'if' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { failingKeyword: "+$ifClause+" } ",!1!==it.opts.messages&&(out+=" , message: 'should match \"' + "+$ifClause+" + '\" schema' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),out+=" } ",$breakOnError&&(out+=" else { ")}else $breakOnError&&(out+=" if (true) { ");return out}},{}],87:[function(require,module,exports){"use strict";module.exports={$ref:require("./ref"),allOf:require("./allOf"),anyOf:require("./anyOf"),$comment:require("./comment"),const:require("./const"),contains:require("./contains"),dependencies:require("./dependencies"),enum:require("./enum"),format:require("./format"),if:require("./if"),items:require("./items"),maximum:require("./_limit"),minimum:require("./_limit"),maxItems:require("./_limitItems"),minItems:require("./_limitItems"),maxLength:require("./_limitLength"),minLength:require("./_limitLength"),maxProperties:require("./_limitProperties"),minProperties:require("./_limitProperties"),multipleOf:require("./multipleOf"),not:require("./not"),oneOf:require("./oneOf"),pattern:require("./pattern"),properties:require("./properties"),propertyNames:require("./propertyNames"),required:require("./required"),uniqueItems:require("./uniqueItems"),validate:require("./validate")}},{"./_limit":73,"./_limitItems":74,"./_limitLength":75,"./_limitProperties":76,"./allOf":77,"./anyOf":78,"./comment":79,"./const":80,"./contains":81,"./dependencies":83,"./enum":84,"./format":85,"./if":86,"./items":88,"./multipleOf":89,"./not":90,"./oneOf":91,"./pattern":92,"./properties":93,"./propertyNames":94,"./ref":95,"./required":96,"./uniqueItems":97,"./validate":98}],88:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$idx="i"+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData="data"+$dataNxt,$currentBaseId=it.baseId;if(out+="var "+$errs+" = errors;var "+$valid+";",Array.isArray($schema)){var $additionalItems=it.schema.additionalItems;if(!1===$additionalItems){out+=" "+$valid+" = "+$data+".length <= "+$schema.length+"; ";var $currErrSchemaPath=$errSchemaPath;$errSchemaPath=it.errSchemaPath+"/additionalItems",out+=" if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { limit: "+$schema.length+" } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have more than "+$schema.length+" items' "),it.opts.verbose&&(out+=" , schema: false , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$errSchemaPath=$currErrSchemaPath,$breakOnError&&($closingBraces+="}",out+=" else { ")}var arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)if($sch=arr1[$i+=1],it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)){out+=" "+$nextValid+" = true; if ("+$data+".length > "+$i+") { ";var $passData=$data+"["+$i+"]";$it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,$it.errorPath=it.util.getPathExpr(it.errorPath,$i,it.opts.jsonPointers,!0),$it.dataPathArr[$dataNxt]=$i;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}if("object"==typeof $additionalItems&&(it.opts.strictKeywords?"object"==typeof $additionalItems&&Object.keys($additionalItems).length>0||!1===$additionalItems:it.util.schemaHasRules($additionalItems,it.RULES.all))){$it.schema=$additionalItems,$it.schemaPath=it.schemaPath+".additionalItems",$it.errSchemaPath=it.errSchemaPath+"/additionalItems",out+=" "+$nextValid+" = true; if ("+$data+".length > "+$schema.length+") { for (var "+$idx+" = "+$schema.length+"; "+$idx+" < "+$data+".length; "+$idx+"++) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,!0);$passData=$data+"["+$idx+"]";$it.dataPathArr[$dataNxt]=$idx;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; "),out+=" } } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}}else if(it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" for (var "+$idx+" = 0; "+$idx+" < "+$data+".length; "+$idx+"++) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$idx,it.opts.jsonPointers,!0);$passData=$data+"["+$idx+"]";$it.dataPathArr[$dataNxt]=$idx;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; "),out+=" }"}return $breakOnError&&(out+=" "+$closingBraces+" if ("+$errs+" == errors) {"),out}},{}],89:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,!$isData&&"number"!=typeof $schema)throw new Error($keyword+" must be number");out+="var division"+$lvl+";if (",$isData&&(out+=" "+$schemaValue+" !== undefined && ( typeof "+$schemaValue+" != 'number' || "),out+=" (division"+$lvl+" = "+$data+" / "+$schemaValue+", ",it.opts.multipleOfPrecision?out+=" Math.abs(Math.round(division"+$lvl+") - division"+$lvl+") > 1e-"+it.opts.multipleOfPrecision+" ":out+=" division"+$lvl+" !== parseInt(division"+$lvl+") ",out+=" ) ",$isData&&(out+=" ) "),out+=" ) { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { multipleOf: "+$schemaValue+" } ",!1!==it.opts.messages&&(out+=" , message: 'should be multiple of ",out+=$isData?"' + "+$schemaValue:$schemaValue+"'"),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],90:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level;if(it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath,out+=" var "+$errs+" = errors; ";var $allErrorsOption,$wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,$it.createErrors=!1,$it.opts.allErrors&&($allErrorsOption=$it.opts.allErrors,$it.opts.allErrors=!1),out+=" "+it.validate($it)+" ",$it.createErrors=!0,$allErrorsOption&&($it.opts.allErrors=$allErrorsOption),it.compositeRule=$it.compositeRule=$wasComposite,out+=" if ("+$nextValid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'not' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should NOT be valid' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; } ",it.opts.allErrors&&(out+=" } ")}else out+=" var err = ",!1!==it.createErrors?(out+=" { keyword: 'not' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'should NOT be valid' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$breakOnError&&(out+=" if (false) { ");return out}},{}],91:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$currentBaseId=$it.baseId,$prevValid="prevValid"+$lvl,$passingSchemas="passingSchemas"+$lvl;out+="var "+$errs+" = errors , "+$prevValid+" = false , "+$valid+" = false , "+$passingSchemas+" = null; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var arr1=$schema;if(arr1)for(var $sch,$i=-1,l1=arr1.length-1;$i<l1;)$sch=arr1[$i+=1],(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all))?($it.schema=$sch,$it.schemaPath=$schemaPath+"["+$i+"]",$it.errSchemaPath=$errSchemaPath+"/"+$i,out+=" "+it.validate($it)+" ",$it.baseId=$currentBaseId):out+=" var "+$nextValid+" = true; ",$i&&(out+=" if ("+$nextValid+" && "+$prevValid+") { "+$valid+" = false; "+$passingSchemas+" = ["+$passingSchemas+", "+$i+"]; } else { ",$closingBraces+="}"),out+=" if ("+$nextValid+") { "+$valid+" = "+$prevValid+" = true; "+$passingSchemas+" = "+$i+"; }";return it.compositeRule=$it.compositeRule=$wasComposite,out+=$closingBraces+"if (!"+$valid+") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { passingSchemas: "+$passingSchemas+" } ",!1!==it.opts.messages&&(out+=" , message: 'should match exactly one schema in oneOf' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),out+="} else { errors = "+$errs+"; if (vErrors !== null) { if ("+$errs+") vErrors.length = "+$errs+"; else vErrors = null; }",it.opts.allErrors&&(out+=" } "),out}},{}],92:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$isData=it.opts.$data&&$schema&&$schema.$data;$isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,out+="if ( ",$isData&&(out+=" ("+$schemaValue+" !== undefined && typeof "+$schemaValue+" != 'string') || "),out+=" !"+($isData?"(new RegExp("+$schemaValue+"))":it.usePattern($schema))+".test("+$data+") ) { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { pattern: ",out+=$isData?""+$schemaValue:""+it.util.toQuotedString($schema),out+=" } ",!1!==it.opts.messages&&(out+=" , message: 'should match pattern \"",out+=$isData?"' + "+$schemaValue+" + '":""+it.util.escapeQuotes($schema),out+="\"' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+it.util.toQuotedString($schema),out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;return out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+="} ",$breakOnError&&(out+=" else { "),out}},{}],93:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it),$closingBraces="";$it.level++;var $nextValid="valid"+$it.level,$key="key"+$lvl,$idx="idx"+$lvl,$dataNxt=$it.dataLevel=it.dataLevel+1,$nextData="data"+$dataNxt,$dataProperties="dataProperties"+$lvl,$schemaKeys=Object.keys($schema||{}).filter(notProto),$pProperties=it.schema.patternProperties||{},$pPropertyKeys=Object.keys($pProperties).filter(notProto),$aProperties=it.schema.additionalProperties,$someProperties=$schemaKeys.length||$pPropertyKeys.length,$noAdditional=!1===$aProperties,$additionalIsSchema="object"==typeof $aProperties&&Object.keys($aProperties).length,$removeAdditional=it.opts.removeAdditional,$checkAdditional=$noAdditional||$additionalIsSchema||$removeAdditional,$ownProperties=it.opts.ownProperties,$currentBaseId=it.baseId,$required=it.schema.required;if($required&&(!it.opts.$data||!$required.$data)&&$required.length<it.opts.loopRequired)var $requiredHash=it.util.toHash($required);function notProto(p){return"__proto__"!==p}if(out+="var "+$errs+" = errors;var "+$nextValid+" = true;",$ownProperties&&(out+=" var "+$dataProperties+" = undefined;"),$checkAdditional){if(out+=$ownProperties?" "+$dataProperties+" = "+$dataProperties+" || Object.keys("+$data+"); for (var "+$idx+"=0; "+$idx+"<"+$dataProperties+".length; "+$idx+"++) { var "+$key+" = "+$dataProperties+"["+$idx+"]; ":" for (var "+$key+" in "+$data+") { ",$someProperties){if(out+=" var isAdditional"+$lvl+" = !(false ",$schemaKeys.length)if($schemaKeys.length>8)out+=" || validate.schema"+$schemaPath+".hasOwnProperty("+$key+") ";else{var arr1=$schemaKeys;if(arr1)for(var i1=-1,l1=arr1.length-1;i1<l1;)$propertyKey=arr1[i1+=1],out+=" || "+$key+" == "+it.util.toQuotedString($propertyKey)+" "}if($pPropertyKeys.length){var arr2=$pPropertyKeys;if(arr2)for(var $i=-1,l2=arr2.length-1;$i<l2;)$pProperty=arr2[$i+=1],out+=" || "+it.usePattern($pProperty)+".test("+$key+") "}out+=" ); if (isAdditional"+$lvl+") { "}if("all"==$removeAdditional)out+=" delete "+$data+"["+$key+"]; ";else{var $currentErrorPath=it.errorPath,$additionalProperty="' + "+$key+" + '";if(it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers)),$noAdditional)if($removeAdditional)out+=" delete "+$data+"["+$key+"]; ";else{out+=" "+$nextValid+" = false; ";var $currErrSchemaPath=$errSchemaPath;$errSchemaPath=it.errSchemaPath+"/additionalProperties",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { additionalProperty: '"+$additionalProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is an invalid additional property":out+="should NOT have additional properties",out+="' "),it.opts.verbose&&(out+=" , schema: false , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$errSchemaPath=$currErrSchemaPath,$breakOnError&&(out+=" break; ")}else if($additionalIsSchema)if("failing"==$removeAdditional){out+=" var "+$errs+" = errors; ";var $wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0,$it.schema=$aProperties,$it.schemaPath=it.schemaPath+".additionalProperties",$it.errSchemaPath=it.errSchemaPath+"/additionalProperties",$it.errorPath=it.opts._errorDataPathProperty?it.errorPath:it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);var $passData=$data+"["+$key+"]";$it.dataPathArr[$dataNxt]=$key;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",out+=" if (!"+$nextValid+") { errors = "+$errs+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+$data+"["+$key+"]; } ",it.compositeRule=$it.compositeRule=$wasComposite}else{$it.schema=$aProperties,$it.schemaPath=it.schemaPath+".additionalProperties",$it.errSchemaPath=it.errSchemaPath+"/additionalProperties",$it.errorPath=it.opts._errorDataPathProperty?it.errorPath:it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);$passData=$data+"["+$key+"]";$it.dataPathArr[$dataNxt]=$key;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; ")}it.errorPath=$currentErrorPath}$someProperties&&(out+=" } "),out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}var $useDefaults=it.opts.useDefaults&&!it.compositeRule;if($schemaKeys.length){var arr3=$schemaKeys;if(arr3)for(var $propertyKey,i3=-1,l3=arr3.length-1;i3<l3;){var $sch=$schema[$propertyKey=arr3[i3+=1]];if(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)){var $prop=it.util.getProperty($propertyKey),$hasDefault=($passData=$data+$prop,$useDefaults&&void 0!==$sch.default);$it.schema=$sch,$it.schemaPath=$schemaPath+$prop,$it.errSchemaPath=$errSchemaPath+"/"+it.util.escapeFragment($propertyKey),$it.errorPath=it.util.getPath(it.errorPath,$propertyKey,it.opts.jsonPointers),$it.dataPathArr[$dataNxt]=it.util.toQuotedString($propertyKey);$code=it.validate($it);if($it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2){$code=it.util.varReplace($code,$nextData,$passData);var $useData=$passData}else{$useData=$nextData;out+=" var "+$nextData+" = "+$passData+"; "}if($hasDefault)out+=" "+$code+" ";else{if($requiredHash&&$requiredHash[$propertyKey]){out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { "+$nextValid+" = false; ";$currentErrorPath=it.errorPath,$currErrSchemaPath=$errSchemaPath;var $$outStack,$missingProperty=it.util.escapeQuotes($propertyKey);it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers)),$errSchemaPath=it.errSchemaPath+"/required",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$errSchemaPath=$currErrSchemaPath,it.errorPath=$currentErrorPath,out+=" } else { "}else $breakOnError?(out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { "+$nextValid+" = true; } else { "):(out+=" if ("+$useData+" !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=" ) { ");out+=" "+$code+" } "}}$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}}if($pPropertyKeys.length){var arr4=$pPropertyKeys;if(arr4)for(var $pProperty,i4=-1,l4=arr4.length-1;i4<l4;){$sch=$pProperties[$pProperty=arr4[i4+=1]];if(it.opts.strictKeywords?"object"==typeof $sch&&Object.keys($sch).length>0||!1===$sch:it.util.schemaHasRules($sch,it.RULES.all)){$it.schema=$sch,$it.schemaPath=it.schemaPath+".patternProperties"+it.util.getProperty($pProperty),$it.errSchemaPath=it.errSchemaPath+"/patternProperties/"+it.util.escapeFragment($pProperty),out+=$ownProperties?" "+$dataProperties+" = "+$dataProperties+" || Object.keys("+$data+"); for (var "+$idx+"=0; "+$idx+"<"+$dataProperties+".length; "+$idx+"++) { var "+$key+" = "+$dataProperties+"["+$idx+"]; ":" for (var "+$key+" in "+$data+") { ",out+=" if ("+it.usePattern($pProperty)+".test("+$key+")) { ",$it.errorPath=it.util.getPathExpr(it.errorPath,$key,it.opts.jsonPointers);$passData=$data+"["+$key+"]";$it.dataPathArr[$dataNxt]=$key;$code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",$breakOnError&&(out+=" if (!"+$nextValid+") break; "),out+=" } ",$breakOnError&&(out+=" else "+$nextValid+" = true; "),out+=" } ",$breakOnError&&(out+=" if ("+$nextValid+") { ",$closingBraces+="}")}}}return $breakOnError&&(out+=" "+$closingBraces+" if ("+$errs+" == errors) {"),out}},{}],94:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$errs="errs__"+$lvl,$it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level;if(out+="var "+$errs+" = errors;",it.opts.strictKeywords?"object"==typeof $schema&&Object.keys($schema).length>0||!1===$schema:it.util.schemaHasRules($schema,it.RULES.all)){$it.schema=$schema,$it.schemaPath=$schemaPath,$it.errSchemaPath=$errSchemaPath;var $key="key"+$lvl,$idx="idx"+$lvl,$i="i"+$lvl,$invalidName="' + "+$key+" + '",$nextData="data"+($it.dataLevel=it.dataLevel+1),$dataProperties="dataProperties"+$lvl,$ownProperties=it.opts.ownProperties,$currentBaseId=it.baseId;$ownProperties&&(out+=" var "+$dataProperties+" = undefined; "),out+=$ownProperties?" "+$dataProperties+" = "+$dataProperties+" || Object.keys("+$data+"); for (var "+$idx+"=0; "+$idx+"<"+$dataProperties+".length; "+$idx+"++) { var "+$key+" = "+$dataProperties+"["+$idx+"]; ":" for (var "+$key+" in "+$data+") { ",out+=" var startErrs"+$lvl+" = errors; ";var $passData=$key,$wasComposite=it.compositeRule;it.compositeRule=$it.compositeRule=!0;var $code=it.validate($it);$it.baseId=$currentBaseId,it.util.varOccurences($code,$nextData)<2?out+=" "+it.util.varReplace($code,$nextData,$passData)+" ":out+=" var "+$nextData+" = "+$passData+"; "+$code+" ",it.compositeRule=$it.compositeRule=$wasComposite,out+=" if (!"+$nextValid+") { for (var "+$i+"=startErrs"+$lvl+"; "+$i+"<errors; "+$i+"++) { vErrors["+$i+"].propertyName = "+$key+"; } var err = ",!1!==it.createErrors?(out+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { propertyName: '"+$invalidName+"' } ",!1!==it.opts.messages&&(out+=" , message: 'property name \\'"+$invalidName+"\\' is invalid' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!it.compositeRule&&$breakOnError&&(it.async?out+=" throw new ValidationError(vErrors); ":out+=" validate.errors = vErrors; return false; "),$breakOnError&&(out+=" break; "),out+=" } }"}return $breakOnError&&(out+=" if ("+$errs+" == errors) {"),out}},{}],95:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $async,$refCode,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl;if("#"==$schema||"#/"==$schema)it.isRoot?($async=it.async,$refCode="validate"):($async=!0===it.root.schema.$async,$refCode="root.refVal[0]");else{var $refVal=it.resolveRef(it.baseId,$schema,it.isRoot);if(void 0===$refVal){var $message=it.MissingRefError.message(it.baseId,$schema);if("fail"==it.opts.missingRefs){it.logger.error($message),($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { ref: '"+it.util.escapeQuotes($schema)+"' } ",!1!==it.opts.messages&&(out+=" , message: 'can\\'t resolve reference "+it.util.escapeQuotes($schema)+"' "),it.opts.verbose&&(out+=" , schema: "+it.util.toQuotedString($schema)+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",$breakOnError&&(out+=" if (false) { ")}else{if("ignore"!=it.opts.missingRefs)throw new it.MissingRefError(it.baseId,$schema,$message);it.logger.warn($message),$breakOnError&&(out+=" if (true) { ")}}else if($refVal.inline){var $it=it.util.copy(it);$it.level++;var $nextValid="valid"+$it.level;$it.schema=$refVal.schema,$it.schemaPath="",$it.errSchemaPath=$schema,out+=" "+it.validate($it).replace(/validate\.schema/g,$refVal.code)+" ",$breakOnError&&(out+=" if ("+$nextValid+") { ")}else $async=!0===$refVal.$async||it.async&&!1!==$refVal.$async,$refCode=$refVal.code}if($refCode){var $$outStack;($$outStack=$$outStack||[]).push(out),out="",it.opts.passContext?out+=" "+$refCode+".call(this, ":out+=" "+$refCode+"( ",out+=" "+$data+", (dataPath || '')",'""'!=it.errorPath&&(out+=" + "+it.errorPath);var __callValidate=out+=" , "+($dataLvl?"data"+($dataLvl-1||""):"parentData")+" , "+($dataLvl?it.dataPathArr[$dataLvl]:"parentDataProperty")+", rootData) ";if(out=$$outStack.pop(),$async){if(!it.async)throw new Error("async schema referenced by sync schema");$breakOnError&&(out+=" var "+$valid+"; "),out+=" try { await "+__callValidate+"; ",$breakOnError&&(out+=" "+$valid+" = true; "),out+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",$breakOnError&&(out+=" "+$valid+" = false; "),out+=" } ",$breakOnError&&(out+=" if ("+$valid+") { ")}else out+=" if (!"+__callValidate+") { if (vErrors === null) vErrors = "+$refCode+".errors; else vErrors = vErrors.concat("+$refCode+".errors); errors = vErrors.length; } ",$breakOnError&&(out+=" else { ")}return out}},{}],96:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;$isData&&(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ");var $vSchema="schema"+$lvl;if(!$isData)if($schema.length<it.opts.loopRequired&&it.schema.properties&&Object.keys(it.schema.properties).length){var $required=[],arr1=$schema;if(arr1)for(var $property,i1=-1,l1=arr1.length-1;i1<l1;){$property=arr1[i1+=1];var $propertySch=it.schema.properties[$property];$propertySch&&(it.opts.strictKeywords?"object"==typeof $propertySch&&Object.keys($propertySch).length>0||!1===$propertySch:it.util.schemaHasRules($propertySch,it.RULES.all))||($required[$required.length]=$property)}}else $required=$schema;if($isData||$required.length){var $currentErrorPath=it.errorPath,$loopRequired=$isData||$required.length>=it.opts.loopRequired,$ownProperties=it.opts.ownProperties;if($breakOnError)if(out+=" var missing"+$lvl+"; ",$loopRequired){$isData||(out+=" var "+$vSchema+" = validate.schema"+$schemaPath+"; ");var $missingProperty="' + "+($propertyPath="schema"+$lvl+"["+($i="i"+$lvl)+"]")+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPathExpr($currentErrorPath,$propertyPath,it.opts.jsonPointers)),out+=" var "+$valid+" = true; ",$isData&&(out+=" if (schema"+$lvl+" === undefined) "+$valid+" = true; else if (!Array.isArray(schema"+$lvl+")) "+$valid+" = false; else {"),out+=" for (var "+$i+" = 0; "+$i+" < "+$vSchema+".length; "+$i+"++) { "+$valid+" = "+$data+"["+$vSchema+"["+$i+"]] !== undefined ",$ownProperties&&(out+=" && Object.prototype.hasOwnProperty.call("+$data+", "+$vSchema+"["+$i+"]) "),out+="; if (!"+$valid+") break; } ",$isData&&(out+=" } "),out+=" if (!"+$valid+") { ",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { "}else{out+=" if ( ";var arr2=$required;if(arr2)for(var $i=-1,l2=arr2.length-1;$i<l2;){$propertyKey=arr2[$i+=1],$i&&(out+=" || "),out+=" ( ( "+($useData=$data+($prop=it.util.getProperty($propertyKey)))+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") && (missing"+$lvl+" = "+it.util.toQuotedString(it.opts.jsonPointers?$propertyKey:$prop)+") ) "}out+=") { ";var $$outStack;$missingProperty="' + "+($propertyPath="missing"+$lvl)+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.opts.jsonPointers?it.util.getPathExpr($currentErrorPath,$propertyPath,!0):$currentErrorPath+" + "+$propertyPath),($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } else { "}else if($loopRequired){$isData||(out+=" var "+$vSchema+" = validate.schema"+$schemaPath+"; ");var $propertyPath;$missingProperty="' + "+($propertyPath="schema"+$lvl+"["+($i="i"+$lvl)+"]")+" + '";it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPathExpr($currentErrorPath,$propertyPath,it.opts.jsonPointers)),$isData&&(out+=" if ("+$vSchema+" && !Array.isArray("+$vSchema+")) { var err = ",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+$vSchema+" !== undefined) { "),out+=" for (var "+$i+" = 0; "+$i+" < "+$vSchema+".length; "+$i+"++) { if ("+$data+"["+$vSchema+"["+$i+"]] === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", "+$vSchema+"["+$i+"]) "),out+=") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",$isData&&(out+=" } ")}else{var arr3=$required;if(arr3)for(var $propertyKey,i3=-1,l3=arr3.length-1;i3<l3;){$propertyKey=arr3[i3+=1];var $prop=it.util.getProperty($propertyKey),$useData=($missingProperty=it.util.escapeQuotes($propertyKey),$data+$prop);it.opts._errorDataPathProperty&&(it.errorPath=it.util.getPath($currentErrorPath,$propertyKey,it.opts.jsonPointers)),out+=" if ( "+$useData+" === undefined ",$ownProperties&&(out+=" || ! Object.prototype.hasOwnProperty.call("+$data+", '"+it.util.escapeQuotes($propertyKey)+"') "),out+=") { var err = ",!1!==it.createErrors?(out+=" { keyword: 'required' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { missingProperty: '"+$missingProperty+"' } ",!1!==it.opts.messages&&(out+=" , message: '",it.opts._errorDataPathProperty?out+="is a required property":out+="should have required property \\'"+$missingProperty+"\\'",out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ",out+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}it.errorPath=$currentErrorPath}else $breakOnError&&(out+=" if (true) {");return out}},{}],97:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var $schemaValue,out=" ",$lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema[$keyword],$schemaPath=it.schemaPath+it.util.getProperty($keyword),$errSchemaPath=it.errSchemaPath+"/"+$keyword,$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl,$isData=it.opts.$data&&$schema&&$schema.$data;if($isData?(out+=" var schema"+$lvl+" = "+it.util.getData($schema.$data,$dataLvl,it.dataPathArr)+"; ",$schemaValue="schema"+$lvl):$schemaValue=$schema,($schema||$isData)&&!1!==it.opts.uniqueItems){$isData&&(out+=" var "+$valid+"; if ("+$schemaValue+" === false || "+$schemaValue+" === undefined) "+$valid+" = true; else if (typeof "+$schemaValue+" != 'boolean') "+$valid+" = false; else { "),out+=" var i = "+$data+".length , "+$valid+" = true , j; if (i > 1) { ";var $itemType=it.schema.items&&it.schema.items.type,$typeIsArray=Array.isArray($itemType);if(!$itemType||"object"==$itemType||"array"==$itemType||$typeIsArray&&($itemType.indexOf("object")>=0||$itemType.indexOf("array")>=0))out+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+$data+"[i], "+$data+"[j])) { "+$valid+" = false; break outer; } } } ";else{out+=" var itemIndices = {}, item; for (;i--;) { var item = "+$data+"[i]; ";var $method="checkDataType"+($typeIsArray?"s":"");out+=" if ("+it.util[$method]($itemType,"item",it.opts.strictNumbers,!0)+") continue; ",$typeIsArray&&(out+=" if (typeof item == 'string') item = '\"' + item; "),out+=" if (typeof itemIndices[item] == 'number') { "+$valid+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}out+=" } ",$isData&&(out+=" } "),out+=" if (!"+$valid+") { ";var $$outStack=$$outStack||[];$$outStack.push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { i: i, j: j } ",!1!==it.opts.messages&&(out+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),it.opts.verbose&&(out+=" , schema: ",out+=$isData?"validate.schema"+$schemaPath:""+$schema,out+=" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } ",$breakOnError&&(out+=" else { ")}else $breakOnError&&(out+=" if (true) { ");return out}},{}],98:[function(require,module,exports){"use strict";module.exports=function(it,$keyword,$ruleType){var out="",$async=!0===it.schema.$async,$refKeywords=it.util.schemaHasRulesExcept(it.schema,it.RULES.all,"$ref"),$id=it.self._getId(it.schema);if(it.opts.strictKeywords){var $unknownKwd=it.util.schemaUnknownRules(it.schema,it.RULES.keywords);if($unknownKwd){var $keywordsMsg="unknown keyword: "+$unknownKwd;if("log"!==it.opts.strictKeywords)throw new Error($keywordsMsg);it.logger.warn($keywordsMsg)}}if(it.isTop&&(out+=" var validate = ",$async&&(it.async=!0,out+="async "),out+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",$id&&(it.opts.sourceCode||it.opts.processCode)&&(out+=" /*# sourceURL="+$id+" */ ")),"boolean"==typeof it.schema||!$refKeywords&&!it.schema.$ref){var $lvl=it.level,$dataLvl=it.dataLevel,$schema=it.schema["false schema"],$schemaPath=it.schemaPath+it.util.getProperty("false schema"),$errSchemaPath=it.errSchemaPath+"/false schema",$breakOnError=!it.opts.allErrors,$data="data"+($dataLvl||""),$valid="valid"+$lvl;if(!1===it.schema){it.isTop?$breakOnError=!0:out+=" var "+$valid+" = false; ",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: {} ",!1!==it.opts.messages&&(out+=" , message: 'boolean schema is false' "),it.opts.verbose&&(out+=" , schema: false , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";var __err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else it.isTop?out+=$async?" return data; ":" validate.errors = null; return true; ":out+=" var "+$valid+" = true; ";return it.isTop&&(out+=" }; return validate; "),out}if(it.isTop){var $top=it.isTop;$lvl=it.level=0,$dataLvl=it.dataLevel=0,$data="data";if(it.rootId=it.resolve.fullPath(it.self._getId(it.root.schema)),it.baseId=it.baseId||it.rootId,delete it.isTop,it.dataPathArr=[""],void 0!==it.schema.default&&it.opts.useDefaults&&it.opts.strictDefaults){var $defaultMsg="default is ignored in the schema root";if("log"!==it.opts.strictDefaults)throw new Error($defaultMsg);it.logger.warn($defaultMsg)}out+=" var vErrors = null; ",out+=" var errors = 0; ",out+=" if (rootData === undefined) rootData = data; "}else{$lvl=it.level,$data="data"+(($dataLvl=it.dataLevel)||"");if($id&&(it.baseId=it.resolve.url(it.baseId,$id)),$async&&!it.async)throw new Error("async schema in sync schema");out+=" var errs_"+$lvl+" = errors;"}$valid="valid"+$lvl,$breakOnError=!it.opts.allErrors;var $closingBraces1="",$closingBraces2="",$typeSchema=it.schema.type,$typeIsArray=Array.isArray($typeSchema);if($typeSchema&&it.opts.nullable&&!0===it.schema.nullable&&($typeIsArray?-1==$typeSchema.indexOf("null")&&($typeSchema=$typeSchema.concat("null")):"null"!=$typeSchema&&($typeSchema=[$typeSchema,"null"],$typeIsArray=!0)),$typeIsArray&&1==$typeSchema.length&&($typeSchema=$typeSchema[0],$typeIsArray=!1),it.schema.$ref&&$refKeywords){if("fail"==it.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+it.errSchemaPath+'" (see option extendRefs)');!0!==it.opts.extendRefs&&($refKeywords=!1,it.logger.warn('$ref: keywords ignored in schema at path "'+it.errSchemaPath+'"'))}if(it.schema.$comment&&it.opts.$comment&&(out+=" "+it.RULES.all.$comment.code(it,"$comment")),$typeSchema){if(it.opts.coerceTypes)var $coerceToTypes=it.util.coerceToTypes(it.opts.coerceTypes,$typeSchema);var $rulesGroup=it.RULES.types[$typeSchema];if($coerceToTypes||$typeIsArray||!0===$rulesGroup||$rulesGroup&&!$shouldUseGroup($rulesGroup)){$schemaPath=it.schemaPath+".type",$errSchemaPath=it.errSchemaPath+"/type",$schemaPath=it.schemaPath+".type",$errSchemaPath=it.errSchemaPath+"/type";var $method=$typeIsArray?"checkDataTypes":"checkDataType";if(out+=" if ("+it.util[$method]($typeSchema,$data,it.opts.strictNumbers,!0)+") { ",$coerceToTypes){var $dataType="dataType"+$lvl,$coerced="coerced"+$lvl;out+=" var "+$dataType+" = typeof "+$data+"; var "+$coerced+" = undefined; ","array"==it.opts.coerceTypes&&(out+=" if ("+$dataType+" == 'object' && Array.isArray("+$data+") && "+$data+".length == 1) { "+$data+" = "+$data+"[0]; "+$dataType+" = typeof "+$data+"; if ("+it.util.checkDataType(it.schema.type,$data,it.opts.strictNumbers)+") "+$coerced+" = "+$data+"; } "),out+=" if ("+$coerced+" !== undefined) ; ";var arr1=$coerceToTypes;if(arr1)for(var $type,$i=-1,l1=arr1.length-1;$i<l1;)"string"==($type=arr1[$i+=1])?out+=" else if ("+$dataType+" == 'number' || "+$dataType+" == 'boolean') "+$coerced+" = '' + "+$data+"; else if ("+$data+" === null) "+$coerced+" = ''; ":"number"==$type||"integer"==$type?(out+=" else if ("+$dataType+" == 'boolean' || "+$data+" === null || ("+$dataType+" == 'string' && "+$data+" && "+$data+" == +"+$data+" ","integer"==$type&&(out+=" && !("+$data+" % 1)"),out+=")) "+$coerced+" = +"+$data+"; "):"boolean"==$type?out+=" else if ("+$data+" === 'false' || "+$data+" === 0 || "+$data+" === null) "+$coerced+" = false; else if ("+$data+" === 'true' || "+$data+" === 1) "+$coerced+" = true; ":"null"==$type?out+=" else if ("+$data+" === '' || "+$data+" === 0 || "+$data+" === false) "+$coerced+" = null; ":"array"==it.opts.coerceTypes&&"array"==$type&&(out+=" else if ("+$dataType+" == 'string' || "+$dataType+" == 'number' || "+$dataType+" == 'boolean' || "+$data+" == null) "+$coerced+" = ["+$data+"]; ");out+=" else { ",($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'type' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { type: '",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' } ",!1!==it.opts.messages&&(out+=" , message: 'should be ",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } if ("+$coerced+" !== undefined) { ";var $parentData=$dataLvl?"data"+($dataLvl-1||""):"parentData";out+=" "+$data+" = "+$coerced+"; ",$dataLvl||(out+="if ("+$parentData+" !== undefined)"),out+=" "+$parentData+"["+($dataLvl?it.dataPathArr[$dataLvl]:"parentDataProperty")+"] = "+$coerced+"; } "}else{($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'type' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { type: '",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' } ",!1!==it.opts.messages&&(out+=" , message: 'should be ",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}out+=" } "}}if(it.schema.$ref&&!$refKeywords)out+=" "+it.RULES.all.$ref.code(it,"$ref")+" ",$breakOnError&&(out+=" } if (errors === ",out+=$top?"0":"errs_"+$lvl,out+=") { ",$closingBraces2+="}");else{var arr2=it.RULES;if(arr2)for(var i2=-1,l2=arr2.length-1;i2<l2;)if($shouldUseGroup($rulesGroup=arr2[i2+=1])){if($rulesGroup.type&&(out+=" if ("+it.util.checkDataType($rulesGroup.type,$data,it.opts.strictNumbers)+") { "),it.opts.useDefaults)if("object"==$rulesGroup.type&&it.schema.properties){$schema=it.schema.properties;var arr3=Object.keys($schema);if(arr3)for(var $propertyKey,i3=-1,l3=arr3.length-1;i3<l3;){if(void 0!==($sch=$schema[$propertyKey=arr3[i3+=1]]).default){var $passData=$data+it.util.getProperty($propertyKey);if(it.compositeRule){if(it.opts.strictDefaults){$defaultMsg="default is ignored for: "+$passData;if("log"!==it.opts.strictDefaults)throw new Error($defaultMsg);it.logger.warn($defaultMsg)}}else out+=" if ("+$passData+" === undefined ","empty"==it.opts.useDefaults&&(out+=" || "+$passData+" === null || "+$passData+" === '' "),out+=" ) "+$passData+" = ","shared"==it.opts.useDefaults?out+=" "+it.useDefault($sch.default)+" ":out+=" "+JSON.stringify($sch.default)+" ",out+="; "}}}else if("array"==$rulesGroup.type&&Array.isArray(it.schema.items)){var arr4=it.schema.items;if(arr4){$i=-1;for(var $sch,l4=arr4.length-1;$i<l4;)if(void 0!==($sch=arr4[$i+=1]).default){$passData=$data+"["+$i+"]";if(it.compositeRule){if(it.opts.strictDefaults){$defaultMsg="default is ignored for: "+$passData;if("log"!==it.opts.strictDefaults)throw new Error($defaultMsg);it.logger.warn($defaultMsg)}}else out+=" if ("+$passData+" === undefined ","empty"==it.opts.useDefaults&&(out+=" || "+$passData+" === null || "+$passData+" === '' "),out+=" ) "+$passData+" = ","shared"==it.opts.useDefaults?out+=" "+it.useDefault($sch.default)+" ":out+=" "+JSON.stringify($sch.default)+" ",out+="; "}}}var arr5=$rulesGroup.rules;if(arr5)for(var $rule,i5=-1,l5=arr5.length-1;i5<l5;)if($shouldUseRule($rule=arr5[i5+=1])){var $code=$rule.code(it,$rule.keyword,$rulesGroup.type);$code&&(out+=" "+$code+" ",$breakOnError&&($closingBraces1+="}"))}if($breakOnError&&(out+=" "+$closingBraces1+" ",$closingBraces1=""),$rulesGroup.type&&(out+=" } ",$typeSchema&&$typeSchema===$rulesGroup.type&&!$coerceToTypes)){out+=" else { ";var $$outStack;$schemaPath=it.schemaPath+".type",$errSchemaPath=it.errSchemaPath+"/type";($$outStack=$$outStack||[]).push(out),out="",!1!==it.createErrors?(out+=" { keyword: 'type' , dataPath: (dataPath || '') + "+it.errorPath+" , schemaPath: "+it.util.toQuotedString($errSchemaPath)+" , params: { type: '",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' } ",!1!==it.opts.messages&&(out+=" , message: 'should be ",out+=$typeIsArray?""+$typeSchema.join(","):""+$typeSchema,out+="' "),it.opts.verbose&&(out+=" , schema: validate.schema"+$schemaPath+" , parentSchema: validate.schema"+it.schemaPath+" , data: "+$data+" "),out+=" } "):out+=" {} ";__err=out;out=$$outStack.pop(),!it.compositeRule&&$breakOnError?it.async?out+=" throw new ValidationError(["+__err+"]); ":out+=" validate.errors = ["+__err+"]; return false; ":out+=" var err = "+__err+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",out+=" } "}$breakOnError&&(out+=" if (errors === ",out+=$top?"0":"errs_"+$lvl,out+=") { ",$closingBraces2+="}")}}function $shouldUseGroup($rulesGroup){for(var rules=$rulesGroup.rules,i=0;i<rules.length;i++)if($shouldUseRule(rules[i]))return!0}function $shouldUseRule($rule){return void 0!==it.schema[$rule.keyword]||$rule.implements&&function($rule){for(var impl=$rule.implements,i=0;i<impl.length;i++)if(void 0!==it.schema[impl[i]])return!0}($rule)}return $breakOnError&&(out+=" "+$closingBraces2+" "),$top?($async?(out+=" if (errors === 0) return data; ",out+=" else throw new ValidationError(vErrors); "):(out+=" validate.errors = vErrors; ",out+=" return errors === 0; "),out+=" }; return validate;"):out+=" var "+$valid+" = errors === errs_"+$lvl+";",out}},{}],99:[function(require,module,exports){"use strict";var IDENTIFIER=/^[a-z_$][a-z0-9_$-]*$/i,customRuleCode=require("./dotjs/custom"),definitionSchema=require("./definition_schema");module.exports={add:function(keyword,definition){var RULES=this.RULES;if(RULES.keywords[keyword])throw new Error("Keyword "+keyword+" is already defined");if(!IDENTIFIER.test(keyword))throw new Error("Keyword "+keyword+" is not a valid identifier");if(definition){this.validateKeyword(definition,!0);var dataType=definition.type;if(Array.isArray(dataType))for(var i=0;i<dataType.length;i++)_addRule(keyword,dataType[i],definition);else _addRule(keyword,dataType,definition);var metaSchema=definition.metaSchema;metaSchema&&(definition.$data&&this._opts.$data&&(metaSchema={anyOf:[metaSchema,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),definition.validateSchema=this.compile(metaSchema,!0))}function _addRule(keyword,dataType,definition){for(var ruleGroup,i=0;i<RULES.length;i++){var rg=RULES[i];if(rg.type==dataType){ruleGroup=rg;break}}ruleGroup||(ruleGroup={type:dataType,rules:[]},RULES.push(ruleGroup));var rule={keyword:keyword,definition:definition,custom:!0,code:customRuleCode,implements:definition.implements};ruleGroup.rules.push(rule),RULES.custom[keyword]=rule}return RULES.keywords[keyword]=RULES.all[keyword]=!0,this},get:function(keyword){var rule=this.RULES.custom[keyword];return rule?rule.definition:this.RULES.keywords[keyword]||!1},remove:function(keyword){var RULES=this.RULES;delete RULES.keywords[keyword],delete RULES.all[keyword],delete RULES.custom[keyword];for(var i=0;i<RULES.length;i++)for(var rules=RULES[i].rules,j=0;j<rules.length;j++)if(rules[j].keyword==keyword){rules.splice(j,1);break}return this},validate:function validateKeyword(definition,throwError){validateKeyword.errors=null;var v=this._validateKeyword=this._validateKeyword||this.compile(definitionSchema,!0);if(v(definition))return!0;if(validateKeyword.errors=v.errors,throwError)throw new Error("custom keyword definition is invalid: "+this.errorsText(v.errors));return!1}}},{"./definition_schema":72,"./dotjs/custom":82}],100:[function(require,module,exports){module.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],101:[function(require,module,exports){module.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"http://json-schema.org/draft-06/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},title:{type:"string"},description:{type:"string"},default:{},examples:{type:"array",items:{}},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:{},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:{}}},{}],102:[function(require,module,exports){module.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},{}],103:[function(require,module,exports){"use strict";const asn1=exports;asn1.bignum=require("bn.js"),asn1.define=require("./asn1/api").define,asn1.base=require("./asn1/base"),asn1.constants=require("./asn1/constants"),asn1.decoders=require("./asn1/decoders"),asn1.encoders=require("./asn1/encoders")},{"./asn1/api":104,"./asn1/base":106,"./asn1/constants":110,"./asn1/decoders":112,"./asn1/encoders":115,"bn.js":117}],104:[function(require,module,exports){"use strict";const encoders=require("./encoders"),decoders=require("./decoders"),inherits=require("inherits");function Entity(name,body){this.name=name,this.body=body,this.decoders={},this.encoders={}}exports.define=function(name,body){return new Entity(name,body)},Entity.prototype._createNamed=function(Base){const name=this.name;function Generated(entity){this._initNamed(entity,name)}return inherits(Generated,Base),Generated.prototype._initNamed=function(entity,name){Base.call(this,entity,name)},new Generated(this)},Entity.prototype._getDecoder=function(enc){return enc=enc||"der",this.decoders.hasOwnProperty(enc)||(this.decoders[enc]=this._createNamed(decoders[enc])),this.decoders[enc]},Entity.prototype.decode=function(data,enc,options){return this._getDecoder(enc).decode(data,options)},Entity.prototype._getEncoder=function(enc){return enc=enc||"der",this.encoders.hasOwnProperty(enc)||(this.encoders[enc]=this._createNamed(encoders[enc])),this.encoders[enc]},Entity.prototype.encode=function(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}},{"./decoders":112,"./encoders":115,inherits:294}],105:[function(require,module,exports){"use strict";const inherits=require("inherits"),Reporter=require("../base/reporter").Reporter,Buffer=require("safer-buffer").Buffer;function DecoderBuffer(base,options){Reporter.call(this,options),Buffer.isBuffer(base)?(this.base=base,this.offset=0,this.length=base.length):this.error("Input not Buffer")}function EncoderBuffer(value,reporter){if(Array.isArray(value))this.length=0,this.value=value.map((function(item){return EncoderBuffer.isEncoderBuffer(item)||(item=new EncoderBuffer(item,reporter)),this.length+=item.length,item}),this);else if("number"==typeof value){if(!(0<=value&&value<=255))return reporter.error("non-byte EncoderBuffer value");this.value=value,this.length=1}else if("string"==typeof value)this.value=value,this.length=Buffer.byteLength(value);else{if(!Buffer.isBuffer(value))return reporter.error("Unsupported type: "+typeof value);this.value=value,this.length=value.length}}inherits(DecoderBuffer,Reporter),exports.DecoderBuffer=DecoderBuffer,DecoderBuffer.isDecoderBuffer=function(data){if(data instanceof DecoderBuffer)return!0;return"object"==typeof data&&Buffer.isBuffer(data.base)&&"DecoderBuffer"===data.constructor.name&&"number"==typeof data.offset&&"number"==typeof data.length&&"function"==typeof data.save&&"function"==typeof data.restore&&"function"==typeof data.isEmpty&&"function"==typeof data.readUInt8&&"function"==typeof data.skip&&"function"==typeof data.raw},DecoderBuffer.prototype.save=function(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}},DecoderBuffer.prototype.restore=function(save){const res=new DecoderBuffer(this.base);return res.offset=save.offset,res.length=this.offset,this.offset=save.offset,Reporter.prototype.restore.call(this,save.reporter),res},DecoderBuffer.prototype.isEmpty=function(){return this.offset===this.length},DecoderBuffer.prototype.readUInt8=function(fail){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(fail||"DecoderBuffer overrun")},DecoderBuffer.prototype.skip=function(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||"DecoderBuffer overrun");const res=new DecoderBuffer(this.base);return res._reporterState=this._reporterState,res.offset=this.offset,res.length=this.offset+bytes,this.offset+=bytes,res},DecoderBuffer.prototype.raw=function(save){return this.base.slice(save?save.offset:this.offset,this.length)},exports.EncoderBuffer=EncoderBuffer,EncoderBuffer.isEncoderBuffer=function(data){if(data instanceof EncoderBuffer)return!0;return"object"==typeof data&&"EncoderBuffer"===data.constructor.name&&"number"==typeof data.length&&"function"==typeof data.join},EncoderBuffer.prototype.join=function(out,offset){return out||(out=Buffer.alloc(this.length)),offset||(offset=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(item){item.join(out,offset),offset+=item.length})):("number"==typeof this.value?out[offset]=this.value:"string"==typeof this.value?out.write(this.value,offset):Buffer.isBuffer(this.value)&&this.value.copy(out,offset),offset+=this.length)),out}},{"../base/reporter":108,inherits:294,"safer-buffer":435}],106:[function(require,module,exports){"use strict";const base=exports;base.Reporter=require("./reporter").Reporter,base.DecoderBuffer=require("./buffer").DecoderBuffer,base.EncoderBuffer=require("./buffer").EncoderBuffer,base.Node=require("./node")},{"./buffer":105,"./node":107,"./reporter":108}],107:[function(require,module,exports){"use strict";const Reporter=require("../base/reporter").Reporter,EncoderBuffer=require("../base/buffer").EncoderBuffer,DecoderBuffer=require("../base/buffer").DecoderBuffer,assert=require("minimalistic-assert"),tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags);function Node(enc,parent,name){const state={};this._baseState=state,state.name=name,state.enc=enc,state.parent=parent||null,state.children=null,state.tag=null,state.args=null,state.reverseArgs=null,state.choice=null,state.optional=!1,state.any=!1,state.obj=!1,state.use=null,state.useDecoder=null,state.key=null,state.default=null,state.explicit=null,state.implicit=null,state.contains=null,state.parent||(state.children=[],this._wrap())}module.exports=Node;const stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Node.prototype.clone=function(){const state=this._baseState,cstate={};stateProps.forEach((function(prop){cstate[prop]=state[prop]}));const res=new this.constructor(cstate.parent);return res._baseState=cstate,res},Node.prototype._wrap=function(){const state=this._baseState;methods.forEach((function(method){this[method]=function(){const clone=new this.constructor(this);return state.children.push(clone),clone[method].apply(clone,arguments)}}),this)},Node.prototype._init=function(body){const state=this._baseState;assert(null===state.parent),body.call(this),state.children=state.children.filter((function(child){return child._baseState.parent===this}),this),assert.equal(state.children.length,1,"Root node can have only one child")},Node.prototype._useArgs=function(args){const state=this._baseState,children=args.filter((function(arg){return arg instanceof this.constructor}),this);args=args.filter((function(arg){return!(arg instanceof this.constructor)}),this),0!==children.length&&(assert(null===state.children),state.children=children,children.forEach((function(child){child._baseState.parent=this}),this)),0!==args.length&&(assert(null===state.args),state.args=args,state.reverseArgs=args.map((function(arg){if("object"!=typeof arg||arg.constructor!==Object)return arg;const res={};return Object.keys(arg).forEach((function(key){key==(0|key)&&(key|=0);const value=arg[key];res[value]=key})),res})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(method){Node.prototype[method]=function(){const state=this._baseState;throw new Error(method+" not implemented for encoding: "+state.enc)}})),tags.forEach((function(tag){Node.prototype[tag]=function(){const state=this._baseState,args=Array.prototype.slice.call(arguments);return assert(null===state.tag),state.tag=tag,this._useArgs(args),this}})),Node.prototype.use=function(item){assert(item);const state=this._baseState;return assert(null===state.use),state.use=item,this},Node.prototype.optional=function(){return this._baseState.optional=!0,this},Node.prototype.def=function(val){const state=this._baseState;return assert(null===state.default),state.default=val,state.optional=!0,this},Node.prototype.explicit=function(num){const state=this._baseState;return assert(null===state.explicit&&null===state.implicit),state.explicit=num,this},Node.prototype.implicit=function(num){const state=this._baseState;return assert(null===state.explicit&&null===state.implicit),state.implicit=num,this},Node.prototype.obj=function(){const state=this._baseState,args=Array.prototype.slice.call(arguments);return state.obj=!0,0!==args.length&&this._useArgs(args),this},Node.prototype.key=function(newKey){const state=this._baseState;return assert(null===state.key),state.key=newKey,this},Node.prototype.any=function(){return this._baseState.any=!0,this},Node.prototype.choice=function(obj){const state=this._baseState;return assert(null===state.choice),state.choice=obj,this._useArgs(Object.keys(obj).map((function(key){return obj[key]}))),this},Node.prototype.contains=function(item){const state=this._baseState;return assert(null===state.use),state.contains=item,this},Node.prototype._decode=function(input,options){const state=this._baseState;if(null===state.parent)return input.wrapResult(state.children[0]._decode(input,options));let prevObj,result=state.default,present=!0,prevKey=null;if(null!==state.key&&(prevKey=input.enterKey(state.key)),state.optional){let tag=null;if(null!==state.explicit?tag=state.explicit:null!==state.implicit?tag=state.implicit:null!==state.tag&&(tag=state.tag),null!==tag||state.any){if(present=this._peekTag(input,tag,state.any),input.isError(present))return present}else{const save=input.save();try{null===state.choice?this._decodeGeneric(state.tag,input,options):this._decodeChoice(input,options),present=!0}catch(e){present=!1}input.restore(save)}}if(state.obj&&present&&(prevObj=input.enterObject()),present){if(null!==state.explicit){const explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}const start=input.offset;if(null===state.use&&null===state.choice){let save;state.any&&(save=input.save());const body=this._decodeTag(input,null!==state.implicit?state.implicit:state.tag,state.any);if(input.isError(body))return body;state.any?result=input.raw(save):input=body}if(options&&options.track&&null!==state.tag&&options.track(input.path(),start,input.length,"tagged"),options&&options.track&&null!==state.tag&&options.track(input.path(),input.offset,input.length,"content"),state.any||(result=null===state.choice?this._decodeGeneric(state.tag,input,options):this._decodeChoice(input,options)),input.isError(result))return result;if(state.any||null!==state.choice||null===state.children||state.children.forEach((function(child){child._decode(input,options)})),state.contains&&("octstr"===state.tag||"bitstr"===state.tag)){const data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options)}}return state.obj&&present&&(result=input.leaveObject(prevObj)),null===state.key||null===result&&!0!==present?null!==prevKey&&input.exitKey(prevKey):input.leaveKey(prevKey,state.key,result),result},Node.prototype._decodeGeneric=function(tag,input,options){const state=this._baseState;return"seq"===tag||"set"===tag?null:"seqof"===tag||"setof"===tag?this._decodeList(input,tag,state.args[0],options):/str$/.test(tag)?this._decodeStr(input,tag,options):"objid"===tag&&state.args?this._decodeObjid(input,state.args[0],state.args[1],options):"objid"===tag?this._decodeObjid(input,null,null,options):"gentime"===tag||"utctime"===tag?this._decodeTime(input,tag,options):"null_"===tag?this._decodeNull(input,options):"bool"===tag?this._decodeBool(input,options):"objDesc"===tag?this._decodeStr(input,tag,options):"int"===tag||"enum"===tag?this._decodeInt(input,state.args&&state.args[0],options):null!==state.use?this._getUse(state.use,input._reporterState.obj)._decode(input,options):input.error("unknown tag: "+tag)},Node.prototype._getUse=function(entity,obj){const state=this._baseState;return state.useDecoder=this._use(entity,obj),assert(null===state.useDecoder._baseState.parent),state.useDecoder=state.useDecoder._baseState.children[0],state.implicit!==state.useDecoder._baseState.implicit&&(state.useDecoder=state.useDecoder.clone(),state.useDecoder._baseState.implicit=state.implicit),state.useDecoder},Node.prototype._decodeChoice=function(input,options){const state=this._baseState;let result=null,match=!1;return Object.keys(state.choice).some((function(key){const save=input.save(),node=state.choice[key];try{const value=node._decode(input,options);if(input.isError(value))return!1;result={type:key,value:value},match=!0}catch(e){return input.restore(save),!1}return!0}),this),match?result:input.error("Choice not matched")},Node.prototype._createEncoderBuffer=function(data){return new EncoderBuffer(data,this.reporter)},Node.prototype._encode=function(data,reporter,parent){const state=this._baseState;if(null!==state.default&&state.default===data)return;const result=this._encodeValue(data,reporter,parent);return void 0===result||this._skipDefault(result,reporter,parent)?void 0:result},Node.prototype._encodeValue=function(data,reporter,parent){const state=this._baseState;if(null===state.parent)return state.children[0]._encode(data,reporter||new Reporter);let result=null;if(this.reporter=reporter,state.optional&&void 0===data){if(null===state.default)return;data=state.default}let content=null,primitive=!1;if(state.any)result=this._createEncoderBuffer(data);else if(state.choice)result=this._encodeChoice(data,reporter);else if(state.contains)content=this._getUse(state.contains,parent)._encode(data,reporter),primitive=!0;else if(state.children)content=state.children.map((function(child){if("null_"===child._baseState.tag)return child._encode(null,reporter,data);if(null===child._baseState.key)return reporter.error("Child should have a key");const prevKey=reporter.enterKey(child._baseState.key);if("object"!=typeof data)return reporter.error("Child expected, but input is not object");const res=child._encode(data[child._baseState.key],reporter,data);return reporter.leaveKey(prevKey),res}),this).filter((function(child){return child})),content=this._createEncoderBuffer(content);else if("seqof"===state.tag||"setof"===state.tag){if(!state.args||1!==state.args.length)return reporter.error("Too many args for : "+state.tag);if(!Array.isArray(data))return reporter.error("seqof/setof, but data is not Array");const child=this.clone();child._baseState.implicit=null,content=this._createEncoderBuffer(data.map((function(item){const state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter)}),child))}else null!==state.use?result=this._getUse(state.use,parent)._encode(data,reporter):(content=this._encodePrimitive(state.tag,data),primitive=!0);if(!state.any&&null===state.choice){const tag=null!==state.implicit?state.implicit:state.tag,cls=null===state.implicit?"universal":"context";null===tag?null===state.use&&reporter.error("Tag could be omitted only for .use()"):null===state.use&&(result=this._encodeComposite(tag,primitive,cls,content))}return null!==state.explicit&&(result=this._encodeComposite(state.explicit,!1,"context",result)),result},Node.prototype._encodeChoice=function(data,reporter){const state=this._baseState,node=state.choice[data.type];return node||assert(!1,data.type+" not found in "+JSON.stringify(Object.keys(state.choice))),node._encode(data.value,reporter)},Node.prototype._encodePrimitive=function(tag,data){const state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);if("objid"===tag&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);if("objid"===tag)return this._encodeObjid(data,null,null);if("gentime"===tag||"utctime"===tag)return this._encodeTime(data,tag);if("null_"===tag)return this._encodeNull();if("int"===tag||"enum"===tag)return this._encodeInt(data,state.args&&state.reverseArgs[0]);if("bool"===tag)return this._encodeBool(data);if("objDesc"===tag)return this._encodeStr(data,tag);throw new Error("Unsupported tag: "+tag)},Node.prototype._isNumstr=function(str){return/^[0-9 ]*$/.test(str)},Node.prototype._isPrintstr=function(str){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(str)}},{"../base/buffer":105,"../base/reporter":108,"minimalistic-assert":346}],108:[function(require,module,exports){"use strict";const inherits=require("inherits");function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}function ReporterError(path,msg){this.path=path,this.rethrow(msg)}exports.Reporter=Reporter,Reporter.prototype.isError=function(obj){return obj instanceof ReporterError},Reporter.prototype.save=function(){const state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}},Reporter.prototype.restore=function(data){const state=this._reporterState;state.obj=data.obj,state.path=state.path.slice(0,data.pathLen)},Reporter.prototype.enterKey=function(key){return this._reporterState.path.push(key)},Reporter.prototype.exitKey=function(index){const state=this._reporterState;state.path=state.path.slice(0,index-1)},Reporter.prototype.leaveKey=function(index,key,value){const state=this._reporterState;this.exitKey(index),null!==state.obj&&(state.obj[key]=value)},Reporter.prototype.path=function(){return this._reporterState.path.join("/")},Reporter.prototype.enterObject=function(){const state=this._reporterState,prev=state.obj;return state.obj={},prev},Reporter.prototype.leaveObject=function(prev){const state=this._reporterState,now=state.obj;return state.obj=prev,now},Reporter.prototype.error=function(msg){let err;const state=this._reporterState,inherited=msg instanceof ReporterError;if(err=inherited?msg:new ReporterError(state.path.map((function(elem){return"["+JSON.stringify(elem)+"]"})).join(""),msg.message||msg,msg.stack),!state.options.partial)throw err;return inherited||state.errors.push(err),err},Reporter.prototype.wrapResult=function(result){const state=this._reporterState;return state.options.partial?{result:this.isError(result)?null:result,errors:state.errors}:result},inherits(ReporterError,Error),ReporterError.prototype.rethrow=function(msg){if(this.message=msg+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,ReporterError),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},{inherits:294}],109:[function(require,module,exports){"use strict";function reverse(map){const res={};return Object.keys(map).forEach((function(key){(0|key)==key&&(key|=0);const value=map[key];res[value]=key})),res}exports.tagClass={0:"universal",1:"application",2:"context",3:"private"},exports.tagClassByName=reverse(exports.tagClass),exports.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},exports.tagByName=reverse(exports.tag)},{}],110:[function(require,module,exports){"use strict";const constants=exports;constants._reverse=function(map){const res={};return Object.keys(map).forEach((function(key){(0|key)==key&&(key|=0);const value=map[key];res[value]=key})),res},constants.der=require("./der")},{"./der":109}],111:[function(require,module,exports){"use strict";const inherits=require("inherits"),bignum=require("bn.js"),DecoderBuffer=require("../base/buffer").DecoderBuffer,Node=require("../base/node"),der=require("../constants/der");function DERDecoder(entity){this.enc="der",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}function DERNode(parent){Node.call(this,"der",parent)}function derDecodeTag(buf,fail){let tag=buf.readUInt8(fail);if(buf.isError(tag))return tag;const cls=der.tagClass[tag>>6],primitive=0==(32&tag);if(31==(31&tag)){let oct=tag;for(tag=0;128==(128&oct);){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=127&oct}}else tag&=31;return{cls:cls,primitive:primitive,tag:tag,tagStr:der.tag[tag]}}function derDecodeLen(buf,primitive,fail){let len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&128===len)return null;if(0==(128&len))return len;const num=127&len;if(num>4)return buf.error("length octect is too long");len=0;for(let i=0;i<num;i++){len<<=8;const j=buf.readUInt8(fail);if(buf.isError(j))return j;len|=j}return len}module.exports=DERDecoder,DERDecoder.prototype.decode=function(data,options){return DecoderBuffer.isDecoderBuffer(data)||(data=new DecoderBuffer(data,options)),this.tree._decode(data,options)},inherits(DERNode,Node),DERNode.prototype._peekTag=function(buffer,tag,any){if(buffer.isEmpty())return!1;const state=buffer.save(),decodedTag=derDecodeTag(buffer,'Failed to peek tag: "'+tag+'"');return buffer.isError(decodedTag)?decodedTag:(buffer.restore(state),decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+"of"===tag||any)},DERNode.prototype._decodeTag=function(buffer,tag,any){const decodedTag=derDecodeTag(buffer,'Failed to decode tag of "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;let len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of "'+tag+'"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+"of"!==tag)return buffer.error('Failed to match tag: "'+tag+'"');if(decodedTag.primitive||null!==len)return buffer.skip(len,'Failed to match body of: "'+tag+'"');const state=buffer.save(),res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: "'+this.tag+'"');return buffer.isError(res)?res:(len=buffer.offset-state.offset,buffer.restore(state),buffer.skip(len,'Failed to match body of: "'+tag+'"'))},DERNode.prototype._skipUntilEnd=function(buffer,fail){for(;;){const tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;const len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;let res;if(res=tag.primitive||null!==len?buffer.skip(len):this._skipUntilEnd(buffer,fail),buffer.isError(res))return res;if("end"===tag.tagStr)break}},DERNode.prototype._decodeList=function(buffer,tag,decoder,options){const result=[];for(;!buffer.isEmpty();){const possibleEnd=this._peekTag(buffer,"end");if(buffer.isError(possibleEnd))return possibleEnd;const res=decoder.decode(buffer,"der",options);if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result},DERNode.prototype._decodeStr=function(buffer,tag){if("bitstr"===tag){const unused=buffer.readUInt8();return buffer.isError(unused)?unused:{unused:unused,data:buffer.raw()}}if("bmpstr"===tag){const raw=buffer.raw();if(raw.length%2==1)return buffer.error("Decoding of string type: bmpstr length mismatch");let str="";for(let i=0;i<raw.length/2;i++)str+=String.fromCharCode(raw.readUInt16BE(2*i));return str}if("numstr"===tag){const numstr=buffer.raw().toString("ascii");return this._isNumstr(numstr)?numstr:buffer.error("Decoding of string type: numstr unsupported characters")}if("octstr"===tag)return buffer.raw();if("objDesc"===tag)return buffer.raw();if("printstr"===tag){const printstr=buffer.raw().toString("ascii");return this._isPrintstr(printstr)?printstr:buffer.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(tag)?buffer.raw().toString():buffer.error("Decoding of string type: "+tag+" unsupported")},DERNode.prototype._decodeObjid=function(buffer,values,relative){let result;const identifiers=[];let ident=0,subident=0;for(;!buffer.isEmpty();)subident=buffer.readUInt8(),ident<<=7,ident|=127&subident,0==(128&subident)&&(identifiers.push(ident),ident=0);128&subident&&identifiers.push(ident);const first=identifiers[0]/40|0,second=identifiers[0]%40;if(result=relative?identifiers:[first,second].concat(identifiers.slice(1)),values){let tmp=values[result.join(" ")];void 0===tmp&&(tmp=values[result.join(".")]),void 0!==tmp&&(result=tmp)}return result},DERNode.prototype._decodeTime=function(buffer,tag){const str=buffer.raw().toString();let year,mon,day,hour,min,sec;if("gentime"===tag)year=0|str.slice(0,4),mon=0|str.slice(4,6),day=0|str.slice(6,8),hour=0|str.slice(8,10),min=0|str.slice(10,12),sec=0|str.slice(12,14);else{if("utctime"!==tag)return buffer.error("Decoding "+tag+" time is not supported yet");year=0|str.slice(0,2),mon=0|str.slice(2,4),day=0|str.slice(4,6),hour=0|str.slice(6,8),min=0|str.slice(8,10),sec=0|str.slice(10,12),year=year<70?2e3+year:1900+year}return Date.UTC(year,mon-1,day,hour,min,sec,0)},DERNode.prototype._decodeNull=function(){return null},DERNode.prototype._decodeBool=function(buffer){const res=buffer.readUInt8();return buffer.isError(res)?res:0!==res},DERNode.prototype._decodeInt=function(buffer,values){const raw=buffer.raw();let res=new bignum(raw);return values&&(res=values[res.toString(10)]||res),res},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getDecoder("der").tree}},{"../base/buffer":105,"../base/node":107,"../constants/der":109,"bn.js":117,inherits:294}],112:[function(require,module,exports){"use strict";const decoders=exports;decoders.der=require("./der"),decoders.pem=require("./pem")},{"./der":111,"./pem":113}],113:[function(require,module,exports){"use strict";const inherits=require("inherits"),Buffer=require("safer-buffer").Buffer,DERDecoder=require("./der");function PEMDecoder(entity){DERDecoder.call(this,entity),this.enc="pem"}inherits(PEMDecoder,DERDecoder),module.exports=PEMDecoder,PEMDecoder.prototype.decode=function(data,options){const lines=data.toString().split(/[\r\n]+/g),label=options.label.toUpperCase(),re=/^-----(BEGIN|END) ([^-]+)-----$/;let start=-1,end=-1;for(let i=0;i<lines.length;i++){const match=lines[i].match(re);if(null!==match&&match[2]===label){if(-1!==start){if("END"!==match[1])break;end=i;break}if("BEGIN"!==match[1])break;start=i}}if(-1===start||-1===end)throw new Error("PEM section not found for: "+label);const base64=lines.slice(start+1,end).join("");base64.replace(/[^a-z0-9+/=]+/gi,"");const input=Buffer.from(base64,"base64");return DERDecoder.prototype.decode.call(this,input,options)}},{"./der":111,inherits:294,"safer-buffer":435}],114:[function(require,module,exports){"use strict";const inherits=require("inherits"),Buffer=require("safer-buffer").Buffer,Node=require("../base/node"),der=require("../constants/der");function DEREncoder(entity){this.enc="der",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}function DERNode(parent){Node.call(this,"der",parent)}function two(num){return num<10?"0"+num:num}module.exports=DEREncoder,DEREncoder.prototype.encode=function(data,reporter){return this.tree._encode(data,reporter).join()},inherits(DERNode,Node),DERNode.prototype._encodeComposite=function(tag,primitive,cls,content){const encodedTag=function(tag,primitive,cls,reporter){let res;"seqof"===tag?tag="seq":"setof"===tag&&(tag="set");if(der.tagByName.hasOwnProperty(tag))res=der.tagByName[tag];else{if("number"!=typeof tag||(0|tag)!==tag)return reporter.error("Unknown tag: "+tag);res=tag}if(res>=31)return reporter.error("Multi-octet tag encoding unsupported");primitive||(res|=32);return res|=der.tagClassByName[cls||"universal"]<<6,res}(tag,primitive,cls,this.reporter);if(content.length<128){const header=Buffer.alloc(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}let lenOctets=1;for(let i=content.length;i>=256;i>>=8)lenOctets++;const header=Buffer.alloc(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(let i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=255&j;return this._createEncoderBuffer([header,content])},DERNode.prototype._encodeStr=function(str,tag){if("bitstr"===tag)return this._createEncoderBuffer([0|str.unused,str.data]);if("bmpstr"===tag){const buf=Buffer.alloc(2*str.length);for(let i=0;i<str.length;i++)buf.writeUInt16BE(str.charCodeAt(i),2*i);return this._createEncoderBuffer(buf)}return"numstr"===tag?this._isNumstr(str)?this._createEncoderBuffer(str):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===tag?this._isPrintstr(str)?this._createEncoderBuffer(str):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(tag)||"objDesc"===tag?this._createEncoderBuffer(str):this.reporter.error("Encoding of string type: "+tag+" unsupported")},DERNode.prototype._encodeObjid=function(id,values,relative){if("string"==typeof id){if(!values)return this.reporter.error("string objid given, but no values map found");if(!values.hasOwnProperty(id))return this.reporter.error("objid not found in values map");id=values[id].split(/[\s.]+/g);for(let i=0;i<id.length;i++)id[i]|=0}else if(Array.isArray(id)){id=id.slice();for(let i=0;i<id.length;i++)id[i]|=0}if(!Array.isArray(id))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(id));if(!relative){if(id[1]>=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,40*id[0]+id[1])}let size=0;for(let i=0;i<id.length;i++){let ident=id[i];for(size++;ident>=128;ident>>=7)size++}const objid=Buffer.alloc(size);let offset=objid.length-1;for(let i=id.length-1;i>=0;i--){let ident=id[i];for(objid[offset--]=127&ident;(ident>>=7)>0;)objid[offset--]=128|127&ident}return this._createEncoderBuffer(objid)},DERNode.prototype._encodeTime=function(time,tag){let str;const date=new Date(time);return"gentime"===tag?str=[two(date.getUTCFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):"utctime"===tag?str=[two(date.getUTCFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+tag+" time is not supported yet"),this._encodeStr(str,"octstr")},DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer("")},DERNode.prototype._encodeInt=function(num,values){if("string"==typeof num){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num));num=values[num]}if("number"!=typeof num&&!Buffer.isBuffer(num)){const numArray=num.toArray();!num.sign&&128&numArray[0]&&numArray.unshift(0),num=Buffer.from(numArray)}if(Buffer.isBuffer(num)){let size=num.length;0===num.length&&size++;const out=Buffer.alloc(size);return num.copy(out),0===num.length&&(out[0]=0),this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);let size=1;for(let i=num;i>=256;i>>=8)size++;const out=new Array(size);for(let i=out.length-1;i>=0;i--)out[i]=255&num,num>>=8;return 128&out[0]&&out.unshift(0),this._createEncoderBuffer(Buffer.from(out))},DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getEncoder("der").tree},DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){const state=this._baseState;let i;if(null===state.default)return!1;const data=dataBuffer.join();if(void 0===state.defaultBuffer&&(state.defaultBuffer=this._encodeValue(state.default,reporter,parent).join()),data.length!==state.defaultBuffer.length)return!1;for(i=0;i<data.length;i++)if(data[i]!==state.defaultBuffer[i])return!1;return!0}},{"../base/node":107,"../constants/der":109,inherits:294,"safer-buffer":435}],115:[function(require,module,exports){"use strict";const encoders=exports;encoders.der=require("./der"),encoders.pem=require("./pem")},{"./der":114,"./pem":116}],116:[function(require,module,exports){"use strict";const inherits=require("inherits"),DEREncoder=require("./der");function PEMEncoder(entity){DEREncoder.call(this,entity),this.enc="pem"}inherits(PEMEncoder,DEREncoder),module.exports=PEMEncoder,PEMEncoder.prototype.encode=function(data,options){const p=DEREncoder.prototype.encode.call(this,data).toString("base64"),out=["-----BEGIN "+options.label+"-----"];for(let i=0;i<p.length;i+=64)out.push(p.slice(i,i+64));return out.push("-----END "+options.label+"-----"),out.join("\n")}},{"./der":114,inherits:294}],117:[function(require,module,exports){!function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;this.negative=0,this.words=null,this.length=0,this.red=null,null!==number&&("le"!==base&&"be"!==base||(endian=base,base=10),this._init(number||0,base||10,endian||"be"))}var Buffer;"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;try{Buffer=require("buffer").Buffer}catch(e){}function parseHex(str,start,end){for(var r=0,len=Math.min(str.length,end),i=start;i<len;i++){var c=str.charCodeAt(i)-48;r<<=4,r|=c>=49&&c<=54?c-49+10:c>=17&&c<=22?c-17+10:15&c}return r}function parseBase(str,start,end,mul){for(var r=0,len=Math.min(str.length,end),i=start;i<len;i++){var c=str.charCodeAt(i)-48;r*=mul,r+=c>=49?c-49+10:c>=17?c-17+10:c}return r}BN.isBN=function(num){return num instanceof BN||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return left.cmp(right)>0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&start++,16===base?this._parseHex(number,start):this._parseBase(number,base,start),"-"===number[0]&&(this.negative=1),this.strip(),"le"===endian&&this._initArray(this.toArray(),base,endian)},BN.prototype._initNumber=function(number,base,endian){number<0&&(this.negative=1,number=-number),number<67108864?(this.words=[67108863&number],this.length=1):number<4503599627370496?(this.words=[67108863&number,number/67108864&67108863],this.length=2):(assert(number<9007199254740992),this.words=[67108863&number,number/67108864&67108863,1],this.length=3),"le"===endian&&this._initArray(this.toArray(),base,endian)},BN.prototype._initArray=function(number,base,endian){if(assert("number"==typeof number.length),number.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(number.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var j,w,off=0;if("be"===endian)for(i=number.length-1,j=0;i>=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<<off&67108863,this.words[j+1]=w>>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i<number.length;i+=3)w=number[i]|number[i+1]<<8|number[i+2]<<16,this.words[j]|=w<<off&67108863,this.words[j+1]=w>>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this.strip()},BN.prototype._parseHex=function(number,start){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var j,w,off=0;for(i=number.length-6,j=0;i>=start;i-=6)w=parseHex(number,i,i+6),this.words[j]|=w<<off&67108863,this.words[j+1]|=w>>>26-off&4194303,(off+=24)>=26&&(off-=26,j++);i+6!==start&&(w=parseHex(number,start,i+6),this.words[j]|=w<<off&67108863,this.words[j+1]|=w>>>26-off&4194303),this.strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i<end;i+=limbLen)word=parseBase(number,i,i+limbLen,base),this.imuln(limbPow),this.words[0]+word<67108864?this.words[0]+=word:this._iaddn(word);if(0!==mod){var pow=1;for(word=parseBase(number,i,number.length,base),i=0;i<mod;i++)pow*=base;this.imuln(pow),this.words[0]+word<67108864?this.words[0]+=word:this._iaddn(word)}},BN.prototype.copy=function(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++)dest.words[i]=this.words[i];dest.length=this.length,dest.negative=this.negative,dest.red=this.red},BN.prototype.clone=function(){var r=new BN(null);return this.copy(r),r},BN.prototype._expand=function(size){for(;this.length<size;)this.words[this.length++]=0;return this},BN.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k<len;k++){for(var ncarry=carry>>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out.strip()}BN.prototype.toString=function(base,padding){var out;if(padding=0|padding||1,16===(base=base||10)||"hex"===base){out="";for(var off=0,carry=0,i=0;i<this.length;i++){var w=this.words[i],word=(16777215&(w<<off|carry)).toString(16);out=0!==(carry=w>>>24-off&16777215)||i!==this.length-1?zeros[6-word.length]+word+out:word+out,(off+=2)>=26&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(void 0!==Buffer),this.toArrayLike(Buffer,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length"),assert(reqLength>0,"Requested array length <= 0"),this.strip();var b,i,littleEndian="le"===endian,res=new ArrayType(reqLength),q=this.clone();if(littleEndian){for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[i]=b;for(;i<reqLength;i++)res[i]=0}else{for(i=0;i<reqLength-byteLength;i++)res[i]=0;for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[reqLength-i-1]=b}return res},Math.clz32?BN.prototype._countBits=function(w){return 32-Math.clz32(w)}:BN.prototype._countBits=function(w){var t=w,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;i<this.length;i++){var b=this._zeroBits(this.words[i]);if(r+=b,26!==b)break}return r},BN.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},BN.prototype.toTwos=function(width){return 0!==this.negative?this.abs().inotn(width).iaddn(1):this.clone()},BN.prototype.fromTwos=function(width){return this.testn(width-1)?this.notn(width).iaddn(1).ineg():this.clone()},BN.prototype.isNeg=function(){return 0!==this.negative},BN.prototype.neg=function(){return this.clone().ineg()},BN.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},BN.prototype.iuor=function(num){for(;this.length<num.length;)this.words[this.length++]=0;for(var i=0;i<num.length;i++)this.words[i]=this.words[i]|num.words[i];return this.strip()},BN.prototype.ior=function(num){return assert(0==(this.negative|num.negative)),this.iuor(num)},BN.prototype.or=function(num){return this.length>num.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;i<b.length;i++)this.words[i]=this.words[i]&num.words[i];return this.length=b.length,this.strip()},BN.prototype.iand=function(num){return assert(0==(this.negative|num.negative)),this.iuand(num)},BN.prototype.and=function(num){return this.length>num.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;i<b.length;i++)this.words[i]=a.words[i]^b.words[i];if(this!==a)for(;i<a.length;i++)this.words[i]=a.words[i];return this.length=a.length,this.strip()},BN.prototype.ixor=function(num){return assert(0==(this.negative|num.negative)),this.iuxor(num)},BN.prototype.xor=function(num){return this.length>num.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i<bytesNeeded;i++)this.words[i]=67108863&~this.words[i];return bitsLeft>0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<<wbit:this.words[off]&~(1<<wbit),this.strip()},BN.prototype.iadd=function(num){var r,a,b;if(0!==this.negative&&0===num.negative)return this.negative=0,r=this.isub(num),this.negative^=1,this._normSign();if(0===this.negative&&0!==num.negative)return num.negative=0,r=this.isub(num),num.negative=1,r._normSign();this.length>num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i<b.length;i++)r=(0|a.words[i])+(0|b.words[i])+carry,this.words[i]=67108863&r,carry=r>>>26;for(;0!==carry&&i<a.length;i++)r=(0|a.words[i])+carry,this.words[i]=67108863&r,carry=r>>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;i<a.length;i++)this.words[i]=a.words[i];return this},BN.prototype.add=function(num){var res;return 0!==num.negative&&0===this.negative?(num.negative=0,res=this.sub(num),num.negative^=1,res):0===num.negative&&0!==this.negative?(this.negative=0,res=num.sub(this),this.negative=1,res):this.length>num.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i<b.length;i++)carry=(r=(0|a.words[i])-(0|b.words[i])+carry)>>26,this.words[i]=67108863&r;for(;0!==carry&&i<a.length;i++)carry=(r=(0|a.words[i])+carry)>>26,this.words[i]=67108863&r;if(0===carry&&i<a.length&&a!==this)for(;i<a.length;i++)this.words[i]=a.words[i];return this.length=Math.max(this.length,i),a!==this&&(this.negative=1),this.strip()},BN.prototype.sub=function(num){return this.clone().isub(num)};var comb10MulTo=function(self,num,out){var lo,mid,hi,a=self.words,b=num.words,o=out.words,c=0,a0=0|a[0],al0=8191&a0,ah0=a0>>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};function jumboMulTo(self,num,out){return(new FFTM).mulp(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length;return 10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?function(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;for(var rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j,r=(0|self.words[i])*(0|num.words[j]),lo=67108863&r;rword=67108863&(lo=lo+rword|0),hncarry+=(ncarry=(ncarry=ncarry+(r/67108864|0)|0)+(lo>>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out.strip()}(this,num,out):jumboMulTo(this,num,out)},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i<N;i++)t[i]=this.revBin(i,l,N);return t},FFTM.prototype.revBin=function(x,l,N){if(0===x||x===N-1)return x;for(var rb=0,i=0;i<l;i++)rb|=(1&x)<<l-i-1,x>>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i<N;i++)rtws[i]=rws[rbt[i]],itws[i]=iws[rbt[i]]},FFTM.prototype.transform=function(rws,iws,rtws,itws,N,rbt){this.permute(rbt,rws,iws,rtws,itws,N);for(var s=1;s<N;s<<=1)for(var l=s<<1,rtwdf=Math.cos(2*Math.PI/l),itwdf=Math.sin(2*Math.PI/l),p=0;p<N;p+=l)for(var rtwdf_=rtwdf,itwdf_=itwdf,j=0;j<s;j++){var re=rtws[p+j],ie=itws[p+j],ro=rtws[p+j+s],io=itws[p+j+s],rx=rtwdf_*ro-itwdf_*io;io=rtwdf_*io+itwdf_*ro,ro=rx,rtws[p+j]=re+ro,itws[p+j]=ie+io,rtws[p+j+s]=re-ro,itws[p+j+s]=ie-io,j!==l&&(rx=rtwdf*rtwdf_-itwdf*itwdf_,itwdf_=rtwdf*itwdf_+itwdf*rtwdf_,rtwdf_=rx)}},FFTM.prototype.guessLen13b=function(n,m){var N=1|Math.max(m,n),odd=1&N,i=0;for(N=N/2|0;N;N>>>=1)i++;return 1<<i+1+odd},FFTM.prototype.conjugate=function(rws,iws,N){if(!(N<=1))for(var i=0;i<N/2;i++){var t=rws[i];rws[i]=rws[N-i-1],rws[N-i-1]=t,t=iws[i],iws[i]=-iws[N-i-1],iws[N-i-1]=-t}},FFTM.prototype.normalize13b=function(ws,N){for(var carry=0,i=0;i<N/2;i++){var w=8192*Math.round(ws[2*i+1]/N)+Math.round(ws[2*i]/N)+carry;ws[i]=67108863&w,carry=w<67108864?0:w/67108864|0}return ws},FFTM.prototype.convert13b=function(ws,len,rws,N){for(var carry=0,i=0;i<len;i++)carry+=0|ws[i],rws[2*i]=8191&carry,carry>>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i<N;++i)rws[i]=0;assert(0===carry),assert(0==(-8192&carry))},FFTM.prototype.stub=function(N){for(var ph=new Array(N),i=0;i<N;i++)ph[i]=0;return ph},FFTM.prototype.mulp=function(x,y,out){var N=2*this.guessLen13b(x.length,y.length),rbt=this.makeRBT(N),_=this.stub(N),rws=new Array(N),rwst=new Array(N),iwst=new Array(N),nrws=new Array(N),nrwst=new Array(N),niwst=new Array(N),rmws=out.words;rmws.length=N,this.convert13b(x.words,x.length,rws,N),this.convert13b(y.words,y.length,nrws,N),this.transform(rws,_,rwst,iwst,N,rbt),this.transform(nrws,_,nrwst,niwst,N,rbt);for(var i=0;i<N;i++){var rx=rwst[i]*nrwst[i]-iwst[i]*niwst[i];iwst[i]=rwst[i]*niwst[i]+iwst[i]*nrwst[i],rwst[i]=rx}return this.conjugate(rwst,iwst,N),this.transform(rwst,iwst,rmws,_,N,rbt),this.conjugate(rmws,_,N),this.normalize13b(rmws,N),out.negative=x.negative^y.negative,out.length=x.length+y.length,out.strip()},BN.prototype.mul=function(num){var out=new BN(null);return out.words=new Array(this.length+num.length),this.mulTo(num,out)},BN.prototype.mulf=function(num){var out=new BN(null);return out.words=new Array(this.length+num.length),jumboMulTo(this,num,out)},BN.prototype.imul=function(num){return this.clone().mulTo(num,this)},BN.prototype.imuln=function(num){assert("number"==typeof num),assert(num<67108864);for(var carry=0,i=0;i<this.length;i++){var w=(0|this.words[i])*num,lo=(67108863&w)+(67108863&carry);carry>>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit<w.length;bit++){var off=bit/26|0,wbit=bit%26;w[bit]=(num.words[off]&1<<wbit)>>>wbit}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i<w.length&&0===w[i];i++,res=res.sqr());if(++i<w.length)for(var q=res.sqr();i<w.length;i++,q=q.sqr())0!==w[i]&&(res=res.mul(q));return res},BN.prototype.iushln=function(bits){assert("number"==typeof bits&&bits>=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask,c=(0|this.words[i])-newCarry<<r;this.words[i]=c|carry,carry=newCarry>>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i<s;i++)this.words[i]=0;this.length+=s}return this.strip()},BN.prototype.ishln=function(bits){return assert(0===this.negative),this.iushln(bits)},BN.prototype.iushrn=function(bits,hint,extended){var h;assert("number"==typeof bits&&bits>=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<<r,maskedWords=extended;if(h-=s,h=Math.max(0,h),maskedWords){for(var i=0;i<s;i++)maskedWords.words[i]=this.words[i];maskedWords.length=s}if(0===s);else if(this.length>s)for(this.length-=s,i=0;i<this.length;i++)this.words[i]=this.words[i+s];else this.words[0]=0,this.length=1;var carry=0;for(i=this.length-1;i>=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<<r;return!(this.length<=s)&&!!(this.words[s]&q)},BN.prototype.imaskn=function(bits){assert("number"==typeof bits&&bits>=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()},BN.prototype.maskn=function(bits){return this.clone().imaskn(bits)},BN.prototype.iaddn=function(num){return assert("number"==typeof num),assert(num<67108864),num<0?this.isubn(-num):0!==this.negative?1===this.length&&(0|this.words[0])<num?(this.words[0]=num-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(num),this.negative=1,this):this._iaddn(num)},BN.prototype._iaddn=function(num){this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i<this.length&&this.words[i]<0;i++)this.words[i]+=67108864,this.words[i+1]-=1;return this.strip()},BN.prototype.addn=function(num){return this.clone().iaddn(num)},BN.prototype.subn=function(num){return this.clone().isubn(num)},BN.prototype.iabs=function(){return this.negative=0,this},BN.prototype.abs=function(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function(num,mul,shift){var i,w,len=num.length+shift;this._expand(len);var carry=0;for(i=0;i<num.length;i++){w=(0|this.words[i+shift])+carry;var right=(0|num.words[i])*mul;carry=((w-=67108863&right)>>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i<this.length-shift;i++)carry=(w=(0|this.words[i+shift])+carry)>>26,this.words[i+shift]=67108863&w;if(0===carry)return this.strip();for(assert(-1===carry),carry=0,i=0;i<this.length;i++)carry=(w=-(0|this.words[i])+carry)>>26,this.words[i]=67108863&w;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i<q.length;i++)q.words[i]=0}var diff=a.clone()._ishlnsubmul(b,1,m);0===diff.negative&&(a=diff,q&&(q.words[m]=1));for(var j=m-1;j>=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q.strip(),a.strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<<r;if(this.length<=s)return this._expand(s+1),this.words[s]|=q,this;for(var carry=q,i=s;0!==carry&&i<this.length;i++){var w=0|this.words[i];carry=(w+=carry)>>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this.strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:w<num?-1:1}return 0!==this.negative?0|-res:res},BN.prototype.cmp=function(num){if(0!==this.negative&&0===num.negative)return-1;if(0===this.negative&&0!==num.negative)return 1;var res=this.ucmp(num);return 0!==this.negative?0|-res:res},BN.prototype.ucmp=function(num){if(this.length>num.length)return 1;if(this.length<num.length)return-1;for(var res=0,i=this.length-1;i>=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){a<b?res=-1:a>b&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.ucmp(this.p);return 0===cmp?(r.words[0]=0,r.length=1):cmp>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i<outLen;i++)output.words[i]=input.words[i];if(output.length=outLen,input.length<=9)return input.words[0]=0,void(input.length=1);var prev=input.words[9];for(output.words[output.length++]=4194303&prev,i=10;i<input.length;i++){var next=0|input.words[i];input.words[i-10]=(4194303&next)<<4|prev>>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i<num.length;i++){var w=0|num.words[i];lo+=977*w,num.words[i]=67108863&lo,lo=64*w+(lo/67108864|0)}return 0===num.words[num.length-1]&&(num.length--,0===num.words[num.length-1]&&num.length--),num},inherits(P224,MPrime),inherits(P192,MPrime),inherits(P25519,MPrime),P25519.prototype.imulK=function(num){for(var carry=0,i=0;i<num.length;i++){var hi=19*(0|num.words[i])+carry,lo=67108863&hi;hi>>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i<m);var b=this.pow(c,new BN(1).iushln(m-i-1));r=r.redMul(b),c=b.redSqr(),t=t.redMul(c),m=i}return r},Red.prototype.invm=function(a){var inv=a._invmp(this.m);return 0!==inv.negative?(inv.negative=0,this.imod(inv).redNeg()):this.imod(inv)},Red.prototype.pow=function(a,num){if(num.isZero())return new BN(1).toRed(this);if(0===num.cmpn(1))return a.clone();var wnd=new Array(16);wnd[0]=new BN(1).toRed(this),wnd[1]=a;for(var i=2;i<wnd.length;i++)wnd[i]=this.mul(wnd[i-1],a);var res=wnd[0],current=0,currentLen=0,start=num.bitLength()%26;for(0===start&&(start=26),i=num.length-1;i>=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:136}],118:[function(require,module,exports){module.exports={newInvalidAsn1Error:function(msg){var e=new Error;return e.name="InvalidAsn1Error",e.message=msg||"",e}}},{}],119:[function(require,module,exports){var errors=require("./errors"),types=require("./types"),Reader=require("./reader"),Writer=require("./writer");for(var t in module.exports={Reader:Reader,Writer:Writer},types)types.hasOwnProperty(t)&&(module.exports[t]=types[t]);for(var e in errors)errors.hasOwnProperty(e)&&(module.exports[e]=errors[e])},{"./errors":118,"./reader":120,"./types":121,"./writer":122}],120:[function(require,module,exports){var assert=require("assert"),Buffer=require("safer-buffer").Buffer,ASN1=require("./types"),newInvalidAsn1Error=require("./errors").newInvalidAsn1Error;function Reader(data){if(!data||!Buffer.isBuffer(data))throw new TypeError("data must be a node Buffer");this._buf=data,this._size=data.length,this._len=0,this._offset=0}Object.defineProperty(Reader.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(Reader.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(Reader.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(Reader.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),Reader.prototype.readByte=function(peek){if(this._size-this._offset<1)return null;var b=255&this._buf[this._offset];return peek||(this._offset+=1),b},Reader.prototype.peek=function(){return this.readByte(!0)},Reader.prototype.readLength=function(offset){if(void 0===offset&&(offset=this._offset),offset>=this._size)return null;var lenB=255&this._buf[offset++];if(null===lenB)return null;if(128==(128&lenB)){if(0===(lenB&=127))throw newInvalidAsn1Error("Indefinite length not supported");if(lenB>4)throw newInvalidAsn1Error("encoding too long");if(this._size-offset<lenB)return null;this._len=0;for(var i=0;i<lenB;i++)this._len=(this._len<<8)+(255&this._buf[offset++])}else this._len=lenB;return offset},Reader.prototype.readSequence=function(tag){var seq=this.peek();if(null===seq)return null;if(void 0!==tag&&tag!==seq)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+seq.toString(16));var o=this.readLength(this._offset+1);return null===o?null:(this._offset=o,seq)},Reader.prototype.readInt=function(){return this._readTag(ASN1.Integer)},Reader.prototype.readBoolean=function(){return 0!==this._readTag(ASN1.Boolean)},Reader.prototype.readEnumeration=function(){return this._readTag(ASN1.Enumeration)},Reader.prototype.readString=function(tag,retbuf){tag||(tag=ASN1.OctetString);var b=this.peek();if(null===b)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(null===o)return null;if(this.length>this._size-o)return null;if(this._offset=o,0===this.length)return retbuf?Buffer.alloc(0):"";var str=this._buf.slice(this._offset,this._offset+this.length);return this._offset+=this.length,retbuf?str:str.toString("utf8")},Reader.prototype.readOID=function(tag){tag||(tag=ASN1.OID);var b=this.readString(tag,!0);if(null===b)return null;for(var values=[],value=0,i=0;i<b.length;i++){var byte=255&b[i];value<<=7,value+=127&byte,0==(128&byte)&&(values.push(value),value=0)}return value=values.shift(),values.unshift(value%40),values.unshift(value/40>>0),values.join(".")},Reader.prototype._readTag=function(tag){assert.ok(void 0!==tag);var b=this.peek();if(null===b)return null;if(b!==tag)throw newInvalidAsn1Error("Expected 0x"+tag.toString(16)+": got 0x"+b.toString(16));var o=this.readLength(this._offset+1);if(null===o)return null;if(this.length>4)throw newInvalidAsn1Error("Integer too long: "+this.length);if(this.length>this._size-o)return null;this._offset=o;for(var fb=this._buf[this._offset],value=0,i=0;i<this.length;i++)value<<=8,value|=255&this._buf[this._offset++];return 128==(128&fb)&&4!==i&&(value-=1<<8*i),value>>0},module.exports=Reader},{"./errors":118,"./types":121,assert:125,"safer-buffer":435}],121:[function(require,module,exports){module.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}},{}],122:[function(require,module,exports){var assert=require("assert"),Buffer=require("safer-buffer").Buffer,ASN1=require("./types"),newInvalidAsn1Error=require("./errors").newInvalidAsn1Error,DEFAULT_OPTS={size:1024,growthFactor:8};function Writer(options){var from,to;from=DEFAULT_OPTS,to=options||{},assert.ok(from),assert.equal(typeof from,"object"),assert.ok(to),assert.equal(typeof to,"object"),Object.getOwnPropertyNames(from).forEach((function(key){if(!to[key]){var value=Object.getOwnPropertyDescriptor(from,key);Object.defineProperty(to,key,value)}})),options=to,this._buf=Buffer.alloc(options.size||1024),this._size=this._buf.length,this._offset=0,this._options=options,this._seq=[]}Object.defineProperty(Writer.prototype,"buffer",{get:function(){if(this._seq.length)throw newInvalidAsn1Error(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),Writer.prototype.writeByte=function(b){if("number"!=typeof b)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=b},Writer.prototype.writeInt=function(i,tag){if("number"!=typeof i)throw new TypeError("argument must be a Number");"number"!=typeof tag&&(tag=ASN1.Integer);for(var sz=4;(0==(4286578688&i)||-8388608==(4286578688&i))&&sz>1;)sz--,i<<=8;if(sz>4)throw newInvalidAsn1Error("BER ints cannot be > 0xffffffff");for(this._ensure(2+sz),this._buf[this._offset++]=tag,this._buf[this._offset++]=sz;sz-- >0;)this._buf[this._offset++]=(4278190080&i)>>>24,i<<=8},Writer.prototype.writeNull=function(){this.writeByte(ASN1.Null),this.writeByte(0)},Writer.prototype.writeEnumeration=function(i,tag){if("number"!=typeof i)throw new TypeError("argument must be a Number");return"number"!=typeof tag&&(tag=ASN1.Enumeration),this.writeInt(i,tag)},Writer.prototype.writeBoolean=function(b,tag){if("boolean"!=typeof b)throw new TypeError("argument must be a Boolean");"number"!=typeof tag&&(tag=ASN1.Boolean),this._ensure(3),this._buf[this._offset++]=tag,this._buf[this._offset++]=1,this._buf[this._offset++]=b?255:0},Writer.prototype.writeString=function(s,tag){if("string"!=typeof s)throw new TypeError("argument must be a string (was: "+typeof s+")");"number"!=typeof tag&&(tag=ASN1.OctetString);var len=Buffer.byteLength(s);this.writeByte(tag),this.writeLength(len),len&&(this._ensure(len),this._buf.write(s,this._offset),this._offset+=len)},Writer.prototype.writeBuffer=function(buf,tag){if("number"!=typeof tag)throw new TypeError("tag must be a number");if(!Buffer.isBuffer(buf))throw new TypeError("argument must be a buffer");this.writeByte(tag),this.writeLength(buf.length),this._ensure(buf.length),buf.copy(this._buf,this._offset,0,buf.length),this._offset+=buf.length},Writer.prototype.writeStringArray=function(strings){if(!strings instanceof Array)throw new TypeError("argument must be an Array[String]");var self=this;strings.forEach((function(s){self.writeString(s)}))},Writer.prototype.writeOID=function(s,tag){if("string"!=typeof s)throw new TypeError("argument must be a string");if("number"!=typeof tag&&(tag=ASN1.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(s))throw new Error("argument is not a valid OID string");var tmp=s.split("."),bytes=[];bytes.push(40*parseInt(tmp[0],10)+parseInt(tmp[1],10)),tmp.slice(2).forEach((function(b){!function(bytes,octet){octet<128?bytes.push(octet):octet<16384?(bytes.push(octet>>>7|128),bytes.push(127&octet)):octet<2097152?(bytes.push(octet>>>14|128),bytes.push(255&(octet>>>7|128)),bytes.push(127&octet)):octet<268435456?(bytes.push(octet>>>21|128),bytes.push(255&(octet>>>14|128)),bytes.push(255&(octet>>>7|128)),bytes.push(127&octet)):(bytes.push(255&(octet>>>28|128)),bytes.push(255&(octet>>>21|128)),bytes.push(255&(octet>>>14|128)),bytes.push(255&(octet>>>7|128)),bytes.push(127&octet))}(bytes,parseInt(b,10))}));var self=this;this._ensure(2+bytes.length),this.writeByte(tag),this.writeLength(bytes.length),bytes.forEach((function(b){self.writeByte(b)}))},Writer.prototype.writeLength=function(len){if("number"!=typeof len)throw new TypeError("argument must be a Number");if(this._ensure(4),len<=127)this._buf[this._offset++]=len;else if(len<=255)this._buf[this._offset++]=129,this._buf[this._offset++]=len;else if(len<=65535)this._buf[this._offset++]=130,this._buf[this._offset++]=len>>8,this._buf[this._offset++]=len;else{if(!(len<=16777215))throw newInvalidAsn1Error("Length too long (> 4 bytes)");this._buf[this._offset++]=131,this._buf[this._offset++]=len>>16,this._buf[this._offset++]=len>>8,this._buf[this._offset++]=len}},Writer.prototype.startSequence=function(tag){"number"!=typeof tag&&(tag=ASN1.Sequence|ASN1.Constructor),this.writeByte(tag),this._seq.push(this._offset),this._ensure(3),this._offset+=3},Writer.prototype.endSequence=function(){var seq=this._seq.pop(),start=seq+3,len=this._offset-start;if(len<=127)this._shift(start,len,-2),this._buf[seq]=len;else if(len<=255)this._shift(start,len,-1),this._buf[seq]=129,this._buf[seq+1]=len;else if(len<=65535)this._buf[seq]=130,this._buf[seq+1]=len>>8,this._buf[seq+2]=len;else{if(!(len<=16777215))throw newInvalidAsn1Error("Sequence too long");this._shift(start,len,1),this._buf[seq]=131,this._buf[seq+1]=len>>16,this._buf[seq+2]=len>>8,this._buf[seq+3]=len}},Writer.prototype._shift=function(start,len,shift){assert.ok(void 0!==start),assert.ok(void 0!==len),assert.ok(shift),this._buf.copy(this._buf,start+shift,start,start+len),this._offset+=shift},Writer.prototype._ensure=function(len){if(assert.ok(len),this._size-this._offset<len){var sz=this._size*this._options.growthFactor;sz-this._offset<len&&(sz+=len);var buf=Buffer.alloc(sz);this._buf.copy(buf,0,0,this._offset),this._buf=buf,this._size=sz}},module.exports=Writer},{"./errors":118,"./types":121,assert:125,"safer-buffer":435}],123:[function(require,module,exports){var Ber=require("./ber/index");module.exports={Ber:Ber,BerReader:Ber.Reader,BerWriter:Ber.Writer}},{"./ber/index":119}],124:[function(require,module,exports){(function(Buffer,process){(function(){var assert=require("assert"),Stream=require("stream").Stream,util=require("util"),UUID_REGEXP=/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;function _capitalize(str){return str.charAt(0).toUpperCase()+str.slice(1)}function _toss(name,expected,oper,arg,actual){throw new assert.AssertionError({message:util.format("%s (%s) is required",name,expected),actual:void 0===actual?typeof arg:actual(arg),expected:expected,operator:oper||"===",stackStartFunction:_toss.caller})}function _getClass(arg){return Object.prototype.toString.call(arg).slice(8,-1)}function noop(){}var types={bool:{check:function(arg){return"boolean"==typeof arg}},func:{check:function(arg){return"function"==typeof arg}},string:{check:function(arg){return"string"==typeof arg}},object:{check:function(arg){return"object"==typeof arg&&null!==arg}},number:{check:function(arg){return"number"==typeof arg&&!isNaN(arg)}},finite:{check:function(arg){return"number"==typeof arg&&!isNaN(arg)&&isFinite(arg)}},buffer:{check:function(arg){return Buffer.isBuffer(arg)},operator:"Buffer.isBuffer"},array:{check:function(arg){return Array.isArray(arg)},operator:"Array.isArray"},stream:{check:function(arg){return arg instanceof Stream},operator:"instanceof",actual:_getClass},date:{check:function(arg){return arg instanceof Date},operator:"instanceof",actual:_getClass},regexp:{check:function(arg){return arg instanceof RegExp},operator:"instanceof",actual:_getClass},uuid:{check:function(arg){return"string"==typeof arg&&UUID_REGEXP.test(arg)},operator:"isUUID"}};module.exports=function _setExports(ndebug){var out,keys=Object.keys(types);return out=process.env.NODE_NDEBUG?noop:function(arg,msg){arg||_toss(msg,"true",arg)},keys.forEach((function(k){if(ndebug)out[k]=noop;else{var type=types[k];out[k]=function(arg,msg){type.check(arg)||_toss(msg,k,type.operator,arg,type.actual)}}})),keys.forEach((function(k){var name="optional"+_capitalize(k);if(ndebug)out[name]=noop;else{var type=types[k];out[name]=function(arg,msg){null!=arg&&(type.check(arg)||_toss(msg,k,type.operator,arg,type.actual))}}})),keys.forEach((function(k){var name="arrayOf"+_capitalize(k);if(ndebug)out[name]=noop;else{var type=types[k],expected="["+k+"]";out[name]=function(arg,msg){var i;for(Array.isArray(arg)||_toss(msg,expected,type.operator,arg,type.actual),i=0;i<arg.length;i++)type.check(arg[i])||_toss(msg,expected,type.operator,arg,type.actual)}}})),keys.forEach((function(k){var name="optionalArrayOf"+_capitalize(k);if(ndebug)out[name]=noop;else{var type=types[k],expected="["+k+"]";out[name]=function(arg,msg){var i;if(null!=arg)for(Array.isArray(arg)||_toss(msg,expected,type.operator,arg,type.actual),i=0;i<arg.length;i++)type.check(arg[i])||_toss(msg,expected,type.operator,arg,type.actual)}}})),Object.keys(assert).forEach((function(k){out[k]="AssertionError"!==k&&ndebug?noop:assert[k]})),out._setExports=_setExports,out}(process.env.NODE_NDEBUG)}).call(this)}).call(this,{isBuffer:require("../is-buffer/index.js")},require("_process"))},{"../is-buffer/index.js":295,_process:381,assert:125,stream:470,util:507}],125:[function(require,module,exports){(function(global){(function(){"use strict";var objectAssign=require("object-assign");
|
|
2
2
|
/*!
|
|
3
3
|
* The buffer module from node.js, for the browser.
|
|
4
4
|
*
|