Socket
Socket
Sign inDemoInstall

breeze-client

Package Overview
Dependencies
Maintainers
5
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

breeze-client - npm Package Compare versions

Comparing version 2.1.0 to 2.1.1

2

breeze-client.metadata.json

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"_validate":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}],"isObject":[{"__symbolic":"method"}],"isBoolean":[{"__symbolic":"method"}],"isString":[{"__symbolic":"method"}],"isNumber":[{"__symbolic":"method"}],"isFunction":[{"__symbolic":"method"}],"isNonEmptyString":[{"__symbolic":"method"}],"isTypeOf":[{"__symbolic":"method"}],"isInstanceOf":[{"__symbolic":"method"}],"hasProperty":[{"__symbolic":"method"}],"isEnumOf":[{"__symbolic":"method"}],"isRequired":[{"__symbolic":"method"}],"isOptional":[{"__symbolic":"method"}],"isNonEmptyArray":[{"__symbolic":"method"}],"isArray":[{"__symbolic":"method"}],"or":[{"__symbolic":"method"}],"check":[{"__symbolic":"method"}],"_addContext":[{"__symbolic":"method"}],"getMessage":[{"__symbolic":"method"}],"withDefault":[{"__symbolic":"method"}],"whereParam":[{"__symbolic":"method"}],"applyAll":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"function"},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"And":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"operator":"and"}]},"Or":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"operator":"or"}]},"Not":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"operator":"not"}]}}},"BreezeConfig":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"registerAdapter":[{"__symbolic":"method"}],"getAdapter":[{"__symbolic":"method"}],"initializeAdapterInstance":[{"__symbolic":"method"}],"getAdapterInstance":[{"__symbolic":"method"}],"registerFunction":[{"__symbolic":"method"}],"registerType":[{"__symbolic":"method"}],"getRegisteredFunction":[{"__symbolic":"method"}],"getInterfaceDef":[{"__symbolic":"method"}],"setQ":[{"__symbolic":"method"}],"_storeObject":[{"__symbolic":"method"}],"_fetchObject":[{"__symbolic":"method"}],"_initializeAdapterInstanceCore":[{"__symbolic":"method"}]}},"ComplexArray":{"__symbolic":"interface"},"RelationArray":{"__symbolic":"interface"},"AbstractDataServiceAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"checkForRecomposition":[{"__symbolic":"method"}],"initialize":[{"__symbolic":"method"}],"fetchMetadata":[{"__symbolic":"method"}],"executeQuery":[{"__symbolic":"method"}],"saveChanges":[{"__symbolic":"method"}],"_prepareSaveBundle":[{"__symbolic":"method"}],"_createChangeRequestInterceptor":[{"__symbolic":"method"}],"_prepareSaveResult":[{"__symbolic":"method"}]}},"AjaxAdapter":{"__symbolic":"interface"},"AjaxConfig":{"__symbolic":"interface"},"AjaxRequestInterceptor":{"__symbolic":"interface"},"AndOrPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"_validate":[{"__symbolic":"method"}]}},"AnyAllPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"_validate":[{"__symbolic":"method"}]}},"ArrayChangedArgs":{"__symbolic":"interface"},"assertConfig":{"__symbolic":"error","message":"Lambda not supported","line":381,"character":26,"module":"./src/assert-param"},"assertParam":{"__symbolic":"error","message":"Lambda not supported","line":229,"character":25,"module":"./src/assert-param"},"AutoGeneratedKeyType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"None":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AutoGeneratedKeyType"}},"Identity":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AutoGeneratedKeyType"}},"KeyGenerator":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AutoGeneratedKeyType"}}}},"BaseAdapter":{"__symbolic":"interface"},"BinaryPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"_validate":[{"__symbolic":"method"}]}},"BreezeEnum":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Object"}]}],"toString":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"_resolvedNamesAndSymbols":{"__symbolic":"error","message":"Variable not initialized","line":56,"character":9},"getSymbols":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":71,"character":11,"module":"./src/enum"}},"getNames":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":11,"module":"./src/enum"}},"fromName":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"error","message":"Expression form not supported","line":91,"character":11,"module":"./src/enum"}}}},"BreezeEvent":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Object"},{"__symbolic":"error","message":"Expression form not supported","line":63,"character":70,"module":"./src/event"}]}],"publish":[{"__symbolic":"method"}],"publishAsync":[{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]},"statics":{"__eventNameMap":{},"__nextUnsubKey":1,"_isEnabled":{"__symbolic":"error","message":"Lambda not supported","line":253,"character":22}}},"Callback":{"__symbolic":"interface"},"ChangeRequestInterceptor":{"__symbolic":"interface"},"ComplexAspect":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"error","message":"Could not resolve type","line":908,"character":52,"context":{"typeName":"StructuralObject"},"module":"./src/entity-aspect"},{"__symbolic":"reference","name":"DataProperty"}]}],"getEntityAspect":[{"__symbolic":"method"}],"getPropertyPath":[{"__symbolic":"method"}]}},"ComplexObject":{"__symbolic":"interface"},"ComplexType":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"getAllValidators":[{"__symbolic":"method"}],"_createInstanceCore":[{"__symbolic":"method"}],"addProperty":[{"__symbolic":"method"}],"getProperties":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]}},"config":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BreezeConfig"}},"core":{"__symbolic":"error","message":"Reference to a local symbol","line":18,"character":4,"context":{"name":"isES5Supported"},"module":"./src/core"},"DataProperty":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"resolveProperty":[{"__symbolic":"method"}],"formatName":[{"__symbolic":"method"}],"setProperties":[{"__symbolic":"method"}],"getAllValidators":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]}},"DataService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"using":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"qualifyUrl":[{"__symbolic":"method"}]}},"DataServiceAdapter":{"__symbolic":"interface"},"DataServiceConfig":{"__symbolic":"interface"},"DataType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{"validatorCtor":[{"__symbolic":"method"}],"normalize":[{"__symbolic":"method"}],"parseRawValue":[{"__symbolic":"method"}],"parse":[{"__symbolic":"method"}],"fmtOData":[{"__symbolic":"method"}],"getNext":[{"__symbolic":"method"}],"getConcurrencyValue":[{"__symbolic":"method"}]},"statics":{"parseDateFromServer":{"__symbolic":"error","message":"Lambda not supported","line":54,"character":31},"constants":{"__symbolic":"error","message":"Variable not initialized","line":59,"character":9},"String":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":372,"character":9,"context":{"name":"coerceToString"},"module":"./src/data-type"}]},"Int64":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Int32":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Int16":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Byte":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Decimal":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":396,"character":9,"context":{"name":"coerceToFloat"},"module":"./src/data-type"}]},"Double":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":396,"character":9,"context":{"name":"coerceToFloat"},"module":"./src/data-type"}]},"Single":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":396,"character":9,"context":{"name":"coerceToFloat"},"module":"./src/data-type"}]},"DateTime":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":406,"character":9,"context":{"name":"coerceToDate"},"module":"./src/data-type"}]},"DateTimeOffset":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":406,"character":9,"context":{"name":"coerceToDate"},"module":"./src/data-type"}]},"Time":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":470,"character":9,"context":{"name":"fmtTime"},"module":"./src/data-type"}]},"Boolean":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":420,"character":9,"context":{"name":"coerceToBool"},"module":"./src/data-type"}]},"Guid":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":376,"character":9,"context":{"name":"coerceToGuid"},"module":"./src/data-type"}]},"Binary":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":495,"character":9,"context":{"name":"fmtBinary"},"module":"./src/data-type"}]},"Undefined":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":501,"character":9,"context":{"name":"fmtUndefined"},"module":"./src/data-type"}]}}},"Entity":{"__symbolic":"interface"},"EntityAction":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{"isAttach":[{"__symbolic":"method"}],"isDetach":[{"__symbolic":"method"}],"isModification":[{"__symbolic":"method"}]},"statics":{"Attach":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isAttach":true}]},"AttachOnQuery":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isAttach":true}]},"AttachOnImport":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isAttach":true}]},"Detach":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isDetach":true}]},"MergeOnQuery":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"MergeOnImport":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"MergeOnSave":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"PropertyChange":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"EntityStateChange":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"}},"AcceptChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"}},"RejectChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"Clear":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isDetach":true}]}}},"EntityAspect":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"getKey":[{"__symbolic":"method"}],"acceptChanges":[{"__symbolic":"method"}],"rejectChanges":[{"__symbolic":"method"}],"getPropertyPath":[{"__symbolic":"method"}],"setAdded":[{"__symbolic":"method"}],"setEntityState":[{"__symbolic":"method"}],"loadNavigationProperty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"markNavigationPropertyAsLoaded":[{"__symbolic":"method"}],"isNavigationPropertyLoaded":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_markAsLoaded":[{"__symbolic":"method"}],"validateEntity":[{"__symbolic":"method"}],"validateProperty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"getValidationErrors":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addValidationError":[{"__symbolic":"method"}],"removeValidationError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"clearValidationErrors":[{"__symbolic":"method"}],"getParentKey":[{"__symbolic":"method"}],"getPropertyValue":[{"__symbolic":"method"}],"_checkOperation":[{"__symbolic":"method"}],"_detach":[{"__symbolic":"method"}],"_validateProperty":[{"__symbolic":"method"}],"_processValidationOpAndPublish":[{"__symbolic":"method"}],"_addValidationError":[{"__symbolic":"method"}],"_removeValidationError":[{"__symbolic":"method"}]},"statics":{"_nullInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAspect"}},"isEntity":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"entityAspect"},"right":null}}}},"EntityChangedEventArgs":{"__symbolic":"interface"},"EntityError":{"__symbolic":"interface"},"EntityKey":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EntityType"},{"__symbolic":"reference","name":"any"}]}],"toJSON":[{"__symbolic":"method"}],"equals":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}],"_isEmpty":[{"__symbolic":"method"}]},"statics":{"ENTITY_KEY_DELIMITER":":::","createKeyString":{"__symbolic":"function","parameters":["keyValues"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"keyValues"},"member":"join"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"EntityKey"},"member":"ENTITY_KEY_DELIMITER"}]}}}},"EntityManager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"createEntity":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"acceptChanges":[{"__symbolic":"method"}],"exportEntities":[{"__symbolic":"method"}],"importEntities":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"createEmptyCopy":[{"__symbolic":"method"}],"addEntity":[{"__symbolic":"method"}],"attachEntity":[{"__symbolic":"method"}],"detachEntity":[{"__symbolic":"method"}],"fetchMetadata":[{"__symbolic":"method"}],"executeQuery":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"executeQueryLocally":[{"__symbolic":"method"}],"saveChanges":[{"__symbolic":"method"}],"saveChangesValidateOnClient":[{"__symbolic":"method"}],"_findEntityGroup":[{"__symbolic":"method"}],"getEntityByKey":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"fetchEntityByKey":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"findEntityByKey":[{"__symbolic":"method"}],"generateTempKeyValue":[{"__symbolic":"method"}],"hasChanges":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_hasChangesCore":[{"__symbolic":"method"}],"getChanges":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"rejectChanges":[{"__symbolic":"method"}],"getEntities":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_notifyStateChange":[{"__symbolic":"method"}],"_setHasChanges":[{"__symbolic":"method"}],"_linkRelatedEntities":[{"__symbolic":"method"}],"_attachEntityCore":[{"__symbolic":"method"}],"_updateFkVal":[{"__symbolic":"method"}]}},"EntityManagerConfig":{"__symbolic":"interface"},"EntityProperty":{"__symbolic":"interface"},"EntityQuery":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"from":[{"__symbolic":"method"}],"toType":[{"__symbolic":"method"}],"where":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"orderBy":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"orderByDesc":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"skip":[{"__symbolic":"method"}],"top":[{"__symbolic":"method"}],"take":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"withParameters":[{"__symbolic":"method"}],"inlineCount":[{"__symbolic":"method"}],"useNameOnServer":[{"__symbolic":"method"}],"noTracking":[{"__symbolic":"method"}],"using":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"executeLocally":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}],"_getFromEntityType":[{"__symbolic":"method"}],"_getToEntityType":[{"__symbolic":"method"}],"_toUri":[{"__symbolic":"method"}]},"statics":{"fromEntityNavigation":{"__symbolic":"error","message":"Lambda not supported","line":649,"character":32}}},"EntityState":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{"isUnchanged":[{"__symbolic":"method"}],"isAdded":[{"__symbolic":"method"}],"isModified":[{"__symbolic":"method"}],"isDeleted":[{"__symbolic":"method"}],"isDetached":[{"__symbolic":"method"}],"isUnchangedOrModified":[{"__symbolic":"method"}],"isAddedModifiedOrDeleted":[{"__symbolic":"method"}]},"statics":{"Unchanged":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Added":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Modified":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Deleted":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Detached":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}}}},"EntityType":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"MetadataStore"}]}],"setProperties":[{"__symbolic":"method"}],"isSubtypeOf":[{"__symbolic":"method"}],"getSelfAndSubtypes":[{"__symbolic":"method"}],"getAllValidators":[{"__symbolic":"method"}],"addProperty":[{"__symbolic":"method"}],"_updateFromBase":[{"__symbolic":"method"}],"_addPropertyCore":[{"__symbolic":"method"}],"createEntity":[{"__symbolic":"method"}],"_createInstanceCore":[{"__symbolic":"method"}],"_initializeInstance":[{"__symbolic":"method"}],"getCtor":[{"__symbolic":"method"}],"_setCtor":[{"__symbolic":"method"}],"addValidator":[{"__symbolic":"method"}],"getProperties":[{"__symbolic":"method"}],"getPropertyNames":[{"__symbolic":"method"}],"getDataProperty":[{"__symbolic":"method"}],"getNavigationProperty":[{"__symbolic":"method"}],"getProperty":[{"__symbolic":"method"}],"getPropertiesOnPath":[{"__symbolic":"method"}],"clientPropertyPathToServer":[{"__symbolic":"method"}],"getEntityKeyFromRawEntity":[{"__symbolic":"method"}],"_updateTargetFromRaw":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"_updateNames":[{"__symbolic":"method"}],"_checkNavProperty":[{"__symbolic":"method"}],"_addDataProperty":[{"__symbolic":"method"}],"_addNavigationProperty":[{"__symbolic":"method"}],"_updateCps":[{"__symbolic":"method"}],"_updateNps":[{"__symbolic":"method"}]},"statics":{"__nextAnonIx":0,"qualifyTypeName":{"__symbolic":"reference","name":"qualifyTypeName"}}},"ErrorCallback":{"__symbolic":"interface"},"ExpandClause":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]}]}],"toJSONExt":[{"__symbolic":"method"}]}},"ExpressionContext":{"__symbolic":"interface"},"FetchStrategy":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"FromServer":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FetchStrategy"}},"FromLocalCache":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FetchStrategy"}}}},"FilterQueryOp":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"Equals":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"eq"}]},"NotEquals":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"ne"}]},"GreaterThan":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"gt"}]},"LessThan":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"lt"}]},"GreaterThanOrEqual":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"ge"}]},"LessThanOrEqual":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"le"}]},"Contains":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"contains"}]},"StartsWith":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"startswith"}]},"EndsWith":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"endswith"}]},"Any":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"any"}]},"All":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"all"}]},"In":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"in"}]},"IsTypeOf":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"isof"}]}}},"FnExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵa"}]}]}],"toString":[{"__symbolic":"method"}],"_validate":[{"__symbolic":"method"}]},"statics":{"_funcMap":{"__symbolic":"error","message":"Lambda not supported","line":812,"character":10}}},"HasChangesChangedEventArgs":{"__symbolic":"interface"},"HttpResponse":{"__symbolic":"interface"},"InterfaceRegistry":{"__symbolic":"class","members":{}},"InterfaceRegistryConfig":{"__symbolic":"interface"},"JsonResultsAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"JsonResultsAdapterConfig":{"__symbolic":"interface"},"KeyGenerator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"generateTempKeyValue":[{"__symbolic":"method"}],"getTempKeys":[{"__symbolic":"method"}],"isTempKey":[{"__symbolic":"method"}],"_getPropEntry":[{"__symbolic":"method"}]}},"KeyMapping":{"__symbolic":"interface"},"LitExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"}]}],"toString":[{"__symbolic":"method"}]}},"LocalQueryComparisonOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setAsDefault":[{"__symbolic":"method"}]},"statics":{"caseInsensitiveSQL":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"arguments":[{"name":"caseInsensitiveSQL","isCaseSensitive":false,"usesSql92CompliantStringComparison":true}]},"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"member":"caseInsensitiveSQL"}]}}},"makeComplexArray":{"__symbolic":"function"},"makePrimitiveArray":{"__symbolic":"function"},"makeRelationArray":{"__symbolic":"function"},"MappingContext":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"getUrl":[{"__symbolic":"method"}],"visitAndMerge":[{"__symbolic":"method"}],"processDeferred":[{"__symbolic":"method"}]}},"MergeStrategy":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"PreserveChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}},"OverwriteChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}},"SkipMerge":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}},"Disallowed":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}}}},"MetadataStore":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"addDataService":[{"__symbolic":"method"}],"_getDataServiceIndex":[{"__symbolic":"method"}],"addEntityType":[{"__symbolic":"method"}],"exportMetadata":[{"__symbolic":"method"}],"importMetadata":[{"__symbolic":"method"}],"hasMetadataFor":[{"__symbolic":"method"}],"getDataService":[{"__symbolic":"method"}],"fetchMetadata":[{"__symbolic":"method"}],"trackUnmappedType":[{"__symbolic":"method"}],"registerEntityTypeCtor":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"getAsEntityType":[{"__symbolic":"method"}],"getAsComplexType":[{"__symbolic":"method"}],"getEntityType":[{"__symbolic":"method"}],"getStructuralType":[{"__symbolic":"method"}],"_getStructuralType":[{"__symbolic":"method"}],"getEntityTypes":[{"__symbolic":"method"}],"getIncompleteNavigationProperties":[{"__symbolic":"method"}],"getEntityTypeNameForResourceName":[{"__symbolic":"method"}],"setEntityTypeForResourceName":[{"__symbolic":"method"}],"_checkEntityType":[{"__symbolic":"method"}]},"statics":{"__id":0,"ANONTYPE_PREFIX":"_IB_","metadataVersion":"1.0.5","normalizeTypeName":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"core"},"member":"memoize"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":154,"character":42,"module":"./src/entity-metadata"}]},"makeTypeHash":{"__symbolic":"function","parameters":["shortName","ns"],"value":{"shortTypeName":{"__symbolic":"reference","name":"shortName"},"namespace":{"__symbolic":"reference","name":"ns"},"typeName":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵc"},"arguments":[{"__symbolic":"reference","name":"shortName"},{"__symbolic":"reference","name":"ns"}]}}}}},"ModelLibraryAdapter":{"__symbolic":"interface"},"NamingConvention":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setAsDefault":[{"__symbolic":"method"}]},"statics":{"none":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NamingConvention"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":68,"character":32,"module":"./src/naming-convention"}]},"camelCase":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NamingConvention"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":82,"character":32,"module":"./src/naming-convention"}]},"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NamingConvention"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"NamingConvention"},"member":"none"}]}}},"NavigationProperty":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"getInverse":[{"__symbolic":"method"}],"setInverse":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"_resolveNp":[{"__symbolic":"method"}]}},"NodeContext":{"__symbolic":"interface"},"NodeMeta":{"__symbolic":"interface"},"OrderByClause":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","name":"boolean"}]}],"validate":[{"__symbolic":"method"}],"getComparer":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}]}},"Predicate":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"_validate":[{"__symbolic":"method"}],"and":[{"__symbolic":"method"}],"or":[{"__symbolic":"method"}],"not":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}],"toFunction":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}],"visit":[{"__symbolic":"method"}],"_initialize":[{"__symbolic":"method"}],"_resolveOp":[{"__symbolic":"method"}]},"statics":{"not":{"__symbolic":"function","parameters":["pred"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"pred"},"member":"not"}}}}},"PropertyChangedEventArgs":{"__symbolic":"interface"},"PropExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"toString":[{"__symbolic":"method"}],"_validate":[{"__symbolic":"method"}]}},"QueryOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"using":[{"__symbolic":"method"}],"setAsDefault":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"QueryOptions"},"arguments":[{"fetchStrategy":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FetchStrategy"},"member":"FromServer"},"mergeStrategy":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"MergeStrategy"},"member":"PreserveChanges"},"includeDeleted":false}]},"resolve":{"__symbolic":"function","parameters":["queryOptionsArray"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"QueryOptions"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"core"},"member":"resolveProperties"},"arguments":[{"__symbolic":"reference","name":"queryOptionsArray"},["fetchStrategy","mergeStrategy","includeDeleted"]]}]}},"fromJSON":{"__symbolic":"function","parameters":["json"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"QueryOptions"},"arguments":[{"fetchStrategy":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FetchStrategy"},"member":"fromName"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"json"},"member":"fetchStrategy"}]},"mergeStrategy":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"MergeStrategy"},"member":"fromName"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"json"},"member":"mergeStrategy"}]},"includeDeleted":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"json"},"member":"includeDeleted"},"right":true}}]}}}},"QueryResult":{"__symbolic":"interface"},"SaveBundle":{"__symbolic":"interface"},"SaveContext":{"__symbolic":"interface"},"SaveOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setAsDefault":[{"__symbolic":"method"}],"using":[{"__symbolic":"method"}]},"statics":{"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"SaveOptions"},"arguments":[{"allowConcurrentSaves":false}]}}},"SaveResult":{"__symbolic":"interface"},"SelectClause":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]}]}],"validate":[{"__symbolic":"method"}],"toFunction":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}]}},"ServerError":{"__symbolic":"interface"},"StructuralObject":{"__symbolic":"interface"},"StructuralType":{"__symbolic":"interface"},"UnaryPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"_validate":[{"__symbolic":"method"}]}},"UriBuilderAdapter":{"__symbolic":"interface"},"ValidationErrorsChangedEventArgs":{"__symbolic":"interface"},"ValidationError":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Validator"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"ValidationOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"using":[{"__symbolic":"method"}],"setAsDefault":[{"__symbolic":"method"}]},"statics":{"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ValidationOptions"},"arguments":[{"validateOnAttach":true,"validateOnSave":true,"validateOnQuery":false,"validateOnPropertyChange":true}]}}},"Validator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"validate":[{"__symbolic":"method"}],"getMessage":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"messageTemplates":{"bool":"'%displayName%' must be a 'true' or 'false' value","creditCard":"The %displayName% is not a valid credit card number","date":"'%displayName%' must be a date","duration":"'%displayName%' must be a ISO8601 duration string, such as 'P3H24M60S'","emailAddress":"The %displayName% '%value%' is not a valid email address","guid":"'%displayName%' must be a GUID","integer":"'%displayName%' must be an integer","integerRange":"'%displayName%' must be an integer between the values of %minValue% and %maxValue%","maxLength":"'%displayName%' must be a string with %maxLength% characters or less","number":"'%displayName%' must be a number","phone":"The %displayName% '%value%' is not a valid phone number","regularExpression":"The %displayName% '%value%' does not match '%expression%'","required":"'%displayName%' is required","string":"'%displayName%' must be a string","stringLength":"'%displayName%' must be a string with between %minLength% and %maxLength% characters","url":"The %displayName% '%value%' is not a valid url"},"required":{"__symbolic":"error","message":"Lambda not supported","line":401,"character":27},"maxLength":{"__symbolic":"error","message":"Lambda not supported","line":427,"character":28},"stringLength":{"__symbolic":"error","message":"Lambda not supported","line":452,"character":31},"string":{"__symbolic":"error","message":"Lambda not supported","line":475,"character":25},"guid":{"__symbolic":"error","message":"Lambda not supported","line":495,"character":23},"duration":{"__symbolic":"error","message":"Lambda not supported","line":515,"character":27},"number":{"__symbolic":"error","message":"Lambda not supported","line":537,"character":25},"double":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Validator"},"member":"number"},"single":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Validator"},"member":"number"},"integer":{"__symbolic":"error","message":"Lambda not supported","line":562,"character":26},"int64":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Validator"},"member":"integer"},"int32":{"__symbolic":"error","message":"Lambda not supported","line":585,"character":24},"int16":{"__symbolic":"error","message":"Lambda not supported","line":601,"character":24},"byte":{"__symbolic":"error","message":"Lambda not supported","line":618,"character":23},"bool":{"__symbolic":"error","message":"Lambda not supported","line":634,"character":23},"none":{"__symbolic":"error","message":"Lambda not supported","line":642,"character":23},"date":{"__symbolic":"error","message":"Lambda not supported","line":662,"character":23},"creditCard":{"__symbolic":"error","message":"Lambda not supported","line":695,"character":29},"regularExpression":{"__symbolic":"error","message":"Lambda not supported","line":721,"character":36},"emailAddress":{"__symbolic":"error","message":"Lambda not supported","line":749,"character":31},"phone":{"__symbolic":"error","message":"Lambda not supported","line":778,"character":24},"url":{"__symbolic":"error","message":"Lambda not supported","line":797,"character":22},"makeRegExpValidator":{"__symbolic":"reference","name":"makeRegExpValidator"}}},"VisitContext":{"__symbolic":"interface"},"Visitor":{"__symbolic":"interface"},"breeze":{"AbstractDataServiceAdapter":{"__symbolic":"reference","name":"AbstractDataServiceAdapter"},"assertConfig":null,"assertParam":null,"AutoGeneratedKeyType":{"__symbolic":"reference","name":"AutoGeneratedKeyType"},"BooleanQueryOp":{"__symbolic":"reference","name":"ɵd"},"ComplexAspect":{"__symbolic":"reference","name":"ComplexAspect"},"ComplexType":{"__symbolic":"reference","name":"ComplexType"},"config":{"__symbolic":"reference","name":"config"},"core":{"__symbolic":"reference","name":"core"},"DataProperty":{"__symbolic":"reference","name":"DataProperty"},"DataService":{"__symbolic":"reference","name":"DataService"},"DataType":{"__symbolic":"reference","name":"DataType"},"EntityAction":{"__symbolic":"reference","name":"EntityAction"},"EntityAspect":{"__symbolic":"reference","name":"EntityAspect"},"EntityKey":{"__symbolic":"reference","name":"EntityKey"},"EntityManager":{"__symbolic":"reference","name":"EntityManager"},"EntityQuery":{"__symbolic":"reference","name":"EntityQuery"},"EntityState":{"__symbolic":"reference","name":"EntityState"},"EntityType":{"__symbolic":"reference","name":"EntityType"},"Event":{"__symbolic":"reference","name":"BreezeEvent"},"FetchStrategy":{"__symbolic":"reference","name":"FetchStrategy"},"FilterQueryOp":{"__symbolic":"reference","name":"FilterQueryOp"},"InterfaceRegistry":{"__symbolic":"reference","name":"InterfaceRegistry"},"JsonResultsAdapter":{"__symbolic":"reference","name":"JsonResultsAdapter"},"KeyGenerator":{"__symbolic":"reference","name":"KeyGenerator"},"LocalQueryComparisonOptions":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"makeComplexArray":{"__symbolic":"reference","name":"makeComplexArray"},"makePrimitiveArray":{"__symbolic":"reference","name":"makePrimitiveArray"},"makeRelationArray":{"__symbolic":"reference","name":"makeRelationArray"},"MergeStrategy":{"__symbolic":"reference","name":"MergeStrategy"},"MetadataStore":{"__symbolic":"reference","name":"MetadataStore"},"NamingConvention":{"__symbolic":"reference","name":"NamingConvention"},"NavigationProperty":{"__symbolic":"reference","name":"NavigationProperty"},"OrderByClause":{"__symbolic":"reference","name":"OrderByClause"},"Param":{"__symbolic":"reference","name":"ɵb"},"Predicate":{"__symbolic":"reference","name":"Predicate"},"QueryOptions":{"__symbolic":"reference","name":"QueryOptions"},"SaveOptions":{"__symbolic":"reference","name":"SaveOptions"},"ValidationError":{"__symbolic":"reference","name":"ValidationError"},"ValidationOptions":{"__symbolic":"reference","name":"ValidationOptions"},"Validator":{"__symbolic":"reference","name":"Validator"},"version":"2.1.0"}},"origins":{"ɵa":"./src/predicate","ɵb":"./src/assert-param","ɵc":"./src/entity-metadata","ɵd":"./src/entity-query","BreezeConfig":"./src/config","ComplexArray":"./src/complex-array","RelationArray":"./src/relation-array","AbstractDataServiceAdapter":"./src/abstract-data-service-adapter","AjaxAdapter":"./src/interface-registry","AjaxConfig":"./src/interface-registry","AjaxRequestInterceptor":"./src/interface-registry","AndOrPredicate":"./src/predicate","AnyAllPredicate":"./src/predicate","ArrayChangedArgs":"./src/observable-array","assertConfig":"./src/assert-param","assertParam":"./src/assert-param","AutoGeneratedKeyType":"./src/entity-metadata","BaseAdapter":"./src/config","BinaryPredicate":"./src/predicate","BreezeEnum":"./src/enum","BreezeEvent":"./src/event","Callback":"./src/core","ChangeRequestInterceptor":"./src/interface-registry","ComplexAspect":"./src/entity-aspect","ComplexObject":"./src/entity-aspect","ComplexType":"./src/entity-metadata","config":"./src/config","core":"./src/core","DataProperty":"./src/entity-metadata","DataService":"./src/data-service","DataServiceAdapter":"./src/interface-registry","DataServiceConfig":"./src/data-service","DataType":"./src/data-type","Entity":"./src/entity-aspect","EntityAction":"./src/entity-action","EntityAspect":"./src/entity-aspect","EntityChangedEventArgs":"./src/entity-manager","EntityError":"./src/entity-manager","EntityKey":"./src/entity-key","EntityManager":"./src/entity-manager","EntityManagerConfig":"./src/entity-manager","EntityProperty":"./src/entity-metadata","EntityQuery":"./src/entity-query","EntityState":"./src/entity-state","EntityType":"./src/entity-metadata","ErrorCallback":"./src/core","ExpandClause":"./src/entity-query","ExpressionContext":"./src/predicate","FetchStrategy":"./src/query-options","FilterQueryOp":"./src/entity-query","FnExpr":"./src/predicate","HasChangesChangedEventArgs":"./src/entity-manager","HttpResponse":"./src/entity-manager","InterfaceRegistry":"./src/interface-registry","InterfaceRegistryConfig":"./src/interface-registry","JsonResultsAdapter":"./src/data-service","JsonResultsAdapterConfig":"./src/data-service","KeyGenerator":"./src/key-generator","KeyMapping":"./src/entity-manager","LitExpr":"./src/predicate","LocalQueryComparisonOptions":"./src/local-query-comparison-options","makeComplexArray":"./src/complex-array","makePrimitiveArray":"./src/primitive-array","makeRelationArray":"./src/relation-array","MappingContext":"./src/mapping-context","MergeStrategy":"./src/query-options","MetadataStore":"./src/entity-metadata","ModelLibraryAdapter":"./src/interface-registry","NamingConvention":"./src/naming-convention","NavigationProperty":"./src/entity-metadata","NodeContext":"./src/data-service","NodeMeta":"./src/data-service","OrderByClause":"./src/entity-query","Predicate":"./src/predicate","PropertyChangedEventArgs":"./src/entity-aspect","PropExpr":"./src/predicate","QueryOptions":"./src/query-options","QueryResult":"./src/entity-manager","SaveBundle":"./src/entity-manager","SaveContext":"./src/entity-manager","SaveOptions":"./src/save-options","SaveResult":"./src/entity-manager","SelectClause":"./src/entity-query","ServerError":"./src/entity-manager","StructuralObject":"./src/entity-aspect","StructuralType":"./src/entity-metadata","UnaryPredicate":"./src/predicate","UriBuilderAdapter":"./src/interface-registry","ValidationErrorsChangedEventArgs":"./src/entity-manager","ValidationError":"./src/validate","ValidationOptions":"./src/validation-options","Validator":"./src/validate","VisitContext":"./src/predicate","Visitor":"./src/predicate","breeze":"./src/breeze"},"importAs":"breeze-client"}
{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"_validate":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}],"isObject":[{"__symbolic":"method"}],"isBoolean":[{"__symbolic":"method"}],"isString":[{"__symbolic":"method"}],"isNumber":[{"__symbolic":"method"}],"isFunction":[{"__symbolic":"method"}],"isNonEmptyString":[{"__symbolic":"method"}],"isTypeOf":[{"__symbolic":"method"}],"isInstanceOf":[{"__symbolic":"method"}],"hasProperty":[{"__symbolic":"method"}],"isEnumOf":[{"__symbolic":"method"}],"isRequired":[{"__symbolic":"method"}],"isOptional":[{"__symbolic":"method"}],"isNonEmptyArray":[{"__symbolic":"method"}],"isArray":[{"__symbolic":"method"}],"or":[{"__symbolic":"method"}],"check":[{"__symbolic":"method"}],"_addContext":[{"__symbolic":"method"}],"getMessage":[{"__symbolic":"method"}],"withDefault":[{"__symbolic":"method"}],"whereParam":[{"__symbolic":"method"}],"applyAll":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"function"},"ɵd":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"And":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"operator":"and"}]},"Or":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"operator":"or"}]},"Not":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵd"},"arguments":[{"operator":"not"}]}}},"BreezeConfig":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"registerAdapter":[{"__symbolic":"method"}],"getAdapter":[{"__symbolic":"method"}],"initializeAdapterInstance":[{"__symbolic":"method"}],"getAdapterInstance":[{"__symbolic":"method"}],"registerFunction":[{"__symbolic":"method"}],"registerType":[{"__symbolic":"method"}],"getRegisteredFunction":[{"__symbolic":"method"}],"getInterfaceDef":[{"__symbolic":"method"}],"setQ":[{"__symbolic":"method"}],"_storeObject":[{"__symbolic":"method"}],"_fetchObject":[{"__symbolic":"method"}],"_initializeAdapterInstanceCore":[{"__symbolic":"method"}]}},"ComplexArray":{"__symbolic":"interface"},"RelationArray":{"__symbolic":"interface"},"AbstractDataServiceAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"checkForRecomposition":[{"__symbolic":"method"}],"initialize":[{"__symbolic":"method"}],"fetchMetadata":[{"__symbolic":"method"}],"executeQuery":[{"__symbolic":"method"}],"saveChanges":[{"__symbolic":"method"}],"_prepareSaveBundle":[{"__symbolic":"method"}],"_createChangeRequestInterceptor":[{"__symbolic":"method"}],"_prepareSaveResult":[{"__symbolic":"method"}]}},"AjaxAdapter":{"__symbolic":"interface"},"AjaxConfig":{"__symbolic":"interface"},"AjaxRequestInterceptor":{"__symbolic":"interface"},"AndOrPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"_validate":[{"__symbolic":"method"}]}},"AnyAllPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"_validate":[{"__symbolic":"method"}]}},"ArrayChangedArgs":{"__symbolic":"interface"},"assertConfig":{"__symbolic":"error","message":"Lambda not supported","line":381,"character":26,"module":"./src/assert-param"},"assertParam":{"__symbolic":"error","message":"Lambda not supported","line":229,"character":25,"module":"./src/assert-param"},"AutoGeneratedKeyType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"None":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AutoGeneratedKeyType"}},"Identity":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AutoGeneratedKeyType"}},"KeyGenerator":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AutoGeneratedKeyType"}}}},"BaseAdapter":{"__symbolic":"interface"},"BinaryPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"_validate":[{"__symbolic":"method"}]}},"BreezeEnum":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Object"}]}],"toString":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"_resolvedNamesAndSymbols":{"__symbolic":"error","message":"Variable not initialized","line":56,"character":9},"getSymbols":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":71,"character":11,"module":"./src/enum"}},"getNames":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":11,"module":"./src/enum"}},"fromName":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"error","message":"Expression form not supported","line":91,"character":11,"module":"./src/enum"}}}},"BreezeEvent":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Object"},{"__symbolic":"error","message":"Expression form not supported","line":63,"character":70,"module":"./src/event"}]}],"publish":[{"__symbolic":"method"}],"publishAsync":[{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]},"statics":{"__eventNameMap":{},"__nextUnsubKey":1,"_isEnabled":{"__symbolic":"error","message":"Lambda not supported","line":253,"character":22}}},"Callback":{"__symbolic":"interface"},"ChangeRequestInterceptor":{"__symbolic":"interface"},"ComplexAspect":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"error","message":"Could not resolve type","line":908,"character":52,"context":{"typeName":"StructuralObject"},"module":"./src/entity-aspect"},{"__symbolic":"reference","name":"DataProperty"}]}],"getEntityAspect":[{"__symbolic":"method"}],"getPropertyPath":[{"__symbolic":"method"}]}},"ComplexObject":{"__symbolic":"interface"},"ComplexType":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"getAllValidators":[{"__symbolic":"method"}],"_createInstanceCore":[{"__symbolic":"method"}],"addProperty":[{"__symbolic":"method"}],"getProperties":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]}},"config":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"BreezeConfig"}},"core":{"__symbolic":"error","message":"Reference to a local symbol","line":18,"character":4,"context":{"name":"isES5Supported"},"module":"./src/core"},"DataProperty":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"resolveProperty":[{"__symbolic":"method"}],"formatName":[{"__symbolic":"method"}],"setProperties":[{"__symbolic":"method"}],"getAllValidators":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]}},"DataService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"using":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"qualifyUrl":[{"__symbolic":"method"}]}},"DataServiceAdapter":{"__symbolic":"interface"},"DataServiceConfig":{"__symbolic":"interface"},"DataType":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{"validatorCtor":[{"__symbolic":"method"}],"normalize":[{"__symbolic":"method"}],"parseRawValue":[{"__symbolic":"method"}],"parse":[{"__symbolic":"method"}],"fmtOData":[{"__symbolic":"method"}],"getNext":[{"__symbolic":"method"}],"getConcurrencyValue":[{"__symbolic":"method"}]},"statics":{"parseDateFromServer":{"__symbolic":"error","message":"Lambda not supported","line":54,"character":31},"constants":{"__symbolic":"error","message":"Variable not initialized","line":59,"character":9},"String":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":372,"character":9,"context":{"name":"coerceToString"},"module":"./src/data-type"}]},"Int64":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Int32":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Int16":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Byte":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":383,"character":9,"context":{"name":"coerceToInt"},"module":"./src/data-type"}]},"Decimal":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":396,"character":9,"context":{"name":"coerceToFloat"},"module":"./src/data-type"}]},"Double":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":396,"character":9,"context":{"name":"coerceToFloat"},"module":"./src/data-type"}]},"Single":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":396,"character":9,"context":{"name":"coerceToFloat"},"module":"./src/data-type"}]},"DateTime":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":406,"character":9,"context":{"name":"coerceToDate"},"module":"./src/data-type"}]},"DateTimeOffset":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":406,"character":9,"context":{"name":"coerceToDate"},"module":"./src/data-type"}]},"Time":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":470,"character":9,"context":{"name":"fmtTime"},"module":"./src/data-type"}]},"Boolean":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":420,"character":9,"context":{"name":"coerceToBool"},"module":"./src/data-type"}]},"Guid":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":376,"character":9,"context":{"name":"coerceToGuid"},"module":"./src/data-type"}]},"Binary":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":495,"character":9,"context":{"name":"fmtBinary"},"module":"./src/data-type"}]},"Undefined":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"DataType"},"arguments":[{"__symbolic":"error","message":"Reference to a non-exported function","line":501,"character":9,"context":{"name":"fmtUndefined"},"module":"./src/data-type"}]}}},"Entity":{"__symbolic":"interface"},"EntityAction":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{"isAttach":[{"__symbolic":"method"}],"isDetach":[{"__symbolic":"method"}],"isModification":[{"__symbolic":"method"}]},"statics":{"Attach":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isAttach":true}]},"AttachOnQuery":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isAttach":true}]},"AttachOnImport":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isAttach":true}]},"Detach":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isDetach":true}]},"MergeOnQuery":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"MergeOnImport":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"MergeOnSave":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"PropertyChange":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"EntityStateChange":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"}},"AcceptChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"}},"RejectChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isModification":true}]},"Clear":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"_isDetach":true}]}}},"EntityAspect":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"getKey":[{"__symbolic":"method"}],"acceptChanges":[{"__symbolic":"method"}],"rejectChanges":[{"__symbolic":"method"}],"getPropertyPath":[{"__symbolic":"method"}],"setAdded":[{"__symbolic":"method"}],"setEntityState":[{"__symbolic":"method"}],"loadNavigationProperty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"markNavigationPropertyAsLoaded":[{"__symbolic":"method"}],"isNavigationPropertyLoaded":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_markAsLoaded":[{"__symbolic":"method"}],"validateEntity":[{"__symbolic":"method"}],"validateProperty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"getValidationErrors":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addValidationError":[{"__symbolic":"method"}],"removeValidationError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"clearValidationErrors":[{"__symbolic":"method"}],"getParentKey":[{"__symbolic":"method"}],"getPropertyValue":[{"__symbolic":"method"}],"_checkOperation":[{"__symbolic":"method"}],"_detach":[{"__symbolic":"method"}],"_validateProperty":[{"__symbolic":"method"}],"_processValidationOpAndPublish":[{"__symbolic":"method"}],"_addValidationError":[{"__symbolic":"method"}],"_removeValidationError":[{"__symbolic":"method"}]},"statics":{"_nullInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAspect"}},"isEntity":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"entityAspect"},"right":null}}}},"EntityChangedEventArgs":{"__symbolic":"interface"},"EntityError":{"__symbolic":"interface"},"EntityKey":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EntityType"},{"__symbolic":"reference","name":"any"}]}],"toJSON":[{"__symbolic":"method"}],"equals":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}],"_isEmpty":[{"__symbolic":"method"}]},"statics":{"ENTITY_KEY_DELIMITER":":::","createKeyString":{"__symbolic":"function","parameters":["keyValues"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"keyValues"},"member":"join"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"EntityKey"},"member":"ENTITY_KEY_DELIMITER"}]}}}},"EntityManager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"createEntity":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"acceptChanges":[{"__symbolic":"method"}],"exportEntities":[{"__symbolic":"method"}],"importEntities":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"createEmptyCopy":[{"__symbolic":"method"}],"addEntity":[{"__symbolic":"method"}],"attachEntity":[{"__symbolic":"method"}],"detachEntity":[{"__symbolic":"method"}],"fetchMetadata":[{"__symbolic":"method"}],"executeQuery":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"executeQueryLocally":[{"__symbolic":"method"}],"saveChanges":[{"__symbolic":"method"}],"saveChangesValidateOnClient":[{"__symbolic":"method"}],"_findEntityGroup":[{"__symbolic":"method"}],"getEntityByKey":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"fetchEntityByKey":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"findEntityByKey":[{"__symbolic":"method"}],"generateTempKeyValue":[{"__symbolic":"method"}],"hasChanges":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_hasChangesCore":[{"__symbolic":"method"}],"getChanges":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"rejectChanges":[{"__symbolic":"method"}],"getEntities":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"_notifyStateChange":[{"__symbolic":"method"}],"_setHasChanges":[{"__symbolic":"method"}],"_linkRelatedEntities":[{"__symbolic":"method"}],"_attachEntityCore":[{"__symbolic":"method"}],"_updateFkVal":[{"__symbolic":"method"}]}},"EntityManagerConfig":{"__symbolic":"interface"},"EntityProperty":{"__symbolic":"interface"},"EntityQuery":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"from":[{"__symbolic":"method"}],"toType":[{"__symbolic":"method"}],"where":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"orderBy":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"orderByDesc":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"skip":[{"__symbolic":"method"}],"top":[{"__symbolic":"method"}],"take":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"withParameters":[{"__symbolic":"method"}],"inlineCount":[{"__symbolic":"method"}],"useNameOnServer":[{"__symbolic":"method"}],"noTracking":[{"__symbolic":"method"}],"using":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"executeLocally":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}],"_getFromEntityType":[{"__symbolic":"method"}],"_getToEntityType":[{"__symbolic":"method"}],"_toUri":[{"__symbolic":"method"}]},"statics":{"fromEntityNavigation":{"__symbolic":"error","message":"Lambda not supported","line":649,"character":32}}},"EntityState":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{"isUnchanged":[{"__symbolic":"method"}],"isAdded":[{"__symbolic":"method"}],"isModified":[{"__symbolic":"method"}],"isDeleted":[{"__symbolic":"method"}],"isDetached":[{"__symbolic":"method"}],"isUnchangedOrModified":[{"__symbolic":"method"}],"isAddedModifiedOrDeleted":[{"__symbolic":"method"}]},"statics":{"Unchanged":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Added":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Modified":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Deleted":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}},"Detached":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityState"}}}},"EntityType":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"MetadataStore"}]}],"setProperties":[{"__symbolic":"method"}],"isSubtypeOf":[{"__symbolic":"method"}],"getSelfAndSubtypes":[{"__symbolic":"method"}],"getAllValidators":[{"__symbolic":"method"}],"addProperty":[{"__symbolic":"method"}],"_updateFromBase":[{"__symbolic":"method"}],"_addPropertyCore":[{"__symbolic":"method"}],"createEntity":[{"__symbolic":"method"}],"_createInstanceCore":[{"__symbolic":"method"}],"_initializeInstance":[{"__symbolic":"method"}],"getCtor":[{"__symbolic":"method"}],"_setCtor":[{"__symbolic":"method"}],"addValidator":[{"__symbolic":"method"}],"getProperties":[{"__symbolic":"method"}],"getPropertyNames":[{"__symbolic":"method"}],"getDataProperty":[{"__symbolic":"method"}],"getNavigationProperty":[{"__symbolic":"method"}],"getProperty":[{"__symbolic":"method"}],"getPropertiesOnPath":[{"__symbolic":"method"}],"clientPropertyPathToServer":[{"__symbolic":"method"}],"getEntityKeyFromRawEntity":[{"__symbolic":"method"}],"_updateTargetFromRaw":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"_updateNames":[{"__symbolic":"method"}],"_checkNavProperty":[{"__symbolic":"method"}],"_addDataProperty":[{"__symbolic":"method"}],"_addNavigationProperty":[{"__symbolic":"method"}],"_updateCps":[{"__symbolic":"method"}],"_updateNps":[{"__symbolic":"method"}]},"statics":{"__nextAnonIx":0,"qualifyTypeName":{"__symbolic":"reference","name":"qualifyTypeName"}}},"ErrorCallback":{"__symbolic":"interface"},"ExpandClause":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]}]}],"toJSONExt":[{"__symbolic":"method"}]}},"ExpressionContext":{"__symbolic":"interface"},"FetchStrategy":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"FromServer":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FetchStrategy"}},"FromLocalCache":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FetchStrategy"}}}},"FilterQueryOp":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"Equals":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"eq"}]},"NotEquals":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"ne"}]},"GreaterThan":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"gt"}]},"LessThan":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"lt"}]},"GreaterThanOrEqual":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"ge"}]},"LessThanOrEqual":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"le"}]},"Contains":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"contains"}]},"StartsWith":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"startswith"}]},"EndsWith":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"endswith"}]},"Any":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"any"}]},"All":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"all"}]},"In":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"in"}]},"IsTypeOf":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FilterQueryOp"},"arguments":[{"operator":"isof"}]}}},"FnExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵa"}]}]}],"toString":[{"__symbolic":"method"}],"_validate":[{"__symbolic":"method"}]},"statics":{"_funcMap":{"__symbolic":"error","message":"Lambda not supported","line":812,"character":10}}},"HasChangesChangedEventArgs":{"__symbolic":"interface"},"HttpResponse":{"__symbolic":"interface"},"InterfaceRegistry":{"__symbolic":"class","members":{}},"InterfaceRegistryConfig":{"__symbolic":"interface"},"JsonResultsAdapter":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"JsonResultsAdapterConfig":{"__symbolic":"interface"},"KeyGenerator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"generateTempKeyValue":[{"__symbolic":"method"}],"getTempKeys":[{"__symbolic":"method"}],"isTempKey":[{"__symbolic":"method"}],"_getPropEntry":[{"__symbolic":"method"}]}},"KeyMapping":{"__symbolic":"interface"},"LitExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"}]}],"toString":[{"__symbolic":"method"}]}},"LocalQueryComparisonOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setAsDefault":[{"__symbolic":"method"}]},"statics":{"caseInsensitiveSQL":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"arguments":[{"name":"caseInsensitiveSQL","isCaseSensitive":false,"usesSql92CompliantStringComparison":true}]},"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"member":"caseInsensitiveSQL"}]}}},"makeComplexArray":{"__symbolic":"function"},"makePrimitiveArray":{"__symbolic":"function"},"makeRelationArray":{"__symbolic":"function"},"MappingContext":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"getUrl":[{"__symbolic":"method"}],"visitAndMerge":[{"__symbolic":"method"}],"processDeferred":[{"__symbolic":"method"}]}},"MergeStrategy":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BreezeEnum"},"members":{},"statics":{"PreserveChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}},"OverwriteChanges":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}},"SkipMerge":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}},"Disallowed":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"MergeStrategy"}}}},"MetadataStore":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"addDataService":[{"__symbolic":"method"}],"_getDataServiceIndex":[{"__symbolic":"method"}],"addEntityType":[{"__symbolic":"method"}],"exportMetadata":[{"__symbolic":"method"}],"importMetadata":[{"__symbolic":"method"}],"hasMetadataFor":[{"__symbolic":"method"}],"getDataService":[{"__symbolic":"method"}],"fetchMetadata":[{"__symbolic":"method"}],"trackUnmappedType":[{"__symbolic":"method"}],"registerEntityTypeCtor":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"getAsEntityType":[{"__symbolic":"method"}],"getAsComplexType":[{"__symbolic":"method"}],"getEntityType":[{"__symbolic":"method"}],"getStructuralType":[{"__symbolic":"method"}],"_getStructuralType":[{"__symbolic":"method"}],"getEntityTypes":[{"__symbolic":"method"}],"getIncompleteNavigationProperties":[{"__symbolic":"method"}],"getEntityTypeNameForResourceName":[{"__symbolic":"method"}],"setEntityTypeForResourceName":[{"__symbolic":"method"}],"_checkEntityType":[{"__symbolic":"method"}]},"statics":{"__id":0,"ANONTYPE_PREFIX":"_IB_","metadataVersion":"1.0.5","normalizeTypeName":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"core"},"member":"memoize"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":154,"character":42,"module":"./src/entity-metadata"}]},"makeTypeHash":{"__symbolic":"function","parameters":["shortName","ns"],"value":{"shortTypeName":{"__symbolic":"reference","name":"shortName"},"namespace":{"__symbolic":"reference","name":"ns"},"typeName":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵc"},"arguments":[{"__symbolic":"reference","name":"shortName"},{"__symbolic":"reference","name":"ns"}]}}}}},"ModelLibraryAdapter":{"__symbolic":"interface"},"NamingConvention":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setAsDefault":[{"__symbolic":"method"}]},"statics":{"none":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NamingConvention"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":68,"character":32,"module":"./src/naming-convention"}]},"camelCase":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NamingConvention"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":82,"character":32,"module":"./src/naming-convention"}]},"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NamingConvention"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"NamingConvention"},"member":"none"}]}}},"NavigationProperty":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setProperties":[{"__symbolic":"method"}],"getInverse":[{"__symbolic":"method"}],"setInverse":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"_resolveNp":[{"__symbolic":"method"}]}},"NodeContext":{"__symbolic":"interface"},"NodeMeta":{"__symbolic":"interface"},"OrderByClause":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","name":"boolean"}]}],"validate":[{"__symbolic":"method"}],"getComparer":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}]}},"Predicate":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"_validate":[{"__symbolic":"method"}],"and":[{"__symbolic":"method"}],"or":[{"__symbolic":"method"}],"not":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}],"toFunction":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}],"visit":[{"__symbolic":"method"}],"_initialize":[{"__symbolic":"method"}],"_resolveOp":[{"__symbolic":"method"}]},"statics":{"not":{"__symbolic":"function","parameters":["pred"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"pred"},"member":"not"}}}}},"PropertyChangedEventArgs":{"__symbolic":"interface"},"PropExpr":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"}]}],"toString":[{"__symbolic":"method"}],"_validate":[{"__symbolic":"method"}]}},"QueryOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"using":[{"__symbolic":"method"}],"setAsDefault":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"QueryOptions"},"arguments":[{"fetchStrategy":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FetchStrategy"},"member":"FromServer"},"mergeStrategy":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"MergeStrategy"},"member":"PreserveChanges"},"includeDeleted":false}]},"resolve":{"__symbolic":"function","parameters":["queryOptionsArray"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"QueryOptions"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"core"},"member":"resolveProperties"},"arguments":[{"__symbolic":"reference","name":"queryOptionsArray"},["fetchStrategy","mergeStrategy","includeDeleted"]]}]}},"fromJSON":{"__symbolic":"function","parameters":["json"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"QueryOptions"},"arguments":[{"fetchStrategy":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FetchStrategy"},"member":"fromName"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"json"},"member":"fetchStrategy"}]},"mergeStrategy":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"MergeStrategy"},"member":"fromName"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"json"},"member":"mergeStrategy"}]},"includeDeleted":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"json"},"member":"includeDeleted"},"right":true}}]}}}},"QueryResult":{"__symbolic":"interface"},"SaveBundle":{"__symbolic":"interface"},"SaveContext":{"__symbolic":"interface"},"SaveOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"setAsDefault":[{"__symbolic":"method"}],"using":[{"__symbolic":"method"}]},"statics":{"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"SaveOptions"},"arguments":[{"allowConcurrentSaves":false}]}}},"SaveResult":{"__symbolic":"interface"},"SelectClause":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]}]}],"validate":[{"__symbolic":"method"}],"toFunction":[{"__symbolic":"method"}],"toJSONExt":[{"__symbolic":"method"}]}},"ServerError":{"__symbolic":"interface"},"StructuralObject":{"__symbolic":"interface"},"StructuralType":{"__symbolic":"interface"},"UnaryPredicate":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Predicate"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"_validate":[{"__symbolic":"method"}]}},"UriBuilderAdapter":{"__symbolic":"interface"},"ValidationErrorsChangedEventArgs":{"__symbolic":"interface"},"ValidationError":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Validator"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"ValidationOptions":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"using":[{"__symbolic":"method"}],"setAsDefault":[{"__symbolic":"method"}]},"statics":{"defaultInstance":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ValidationOptions"},"arguments":[{"validateOnAttach":true,"validateOnSave":true,"validateOnQuery":false,"validateOnPropertyChange":true}]}}},"Validator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"any"}]}],"validate":[{"__symbolic":"method"}],"getMessage":[{"__symbolic":"method"}],"toJSON":[{"__symbolic":"method"}]},"statics":{"messageTemplates":{"bool":"'%displayName%' must be a 'true' or 'false' value","creditCard":"The %displayName% is not a valid credit card number","date":"'%displayName%' must be a date","duration":"'%displayName%' must be a ISO8601 duration string, such as 'P3H24M60S'","emailAddress":"The %displayName% '%value%' is not a valid email address","guid":"'%displayName%' must be a GUID","integer":"'%displayName%' must be an integer","integerRange":"'%displayName%' must be an integer between the values of %minValue% and %maxValue%","maxLength":"'%displayName%' must be a string with %maxLength% characters or less","number":"'%displayName%' must be a number","phone":"The %displayName% '%value%' is not a valid phone number","regularExpression":"The %displayName% '%value%' does not match '%expression%'","required":"'%displayName%' is required","string":"'%displayName%' must be a string","stringLength":"'%displayName%' must be a string with between %minLength% and %maxLength% characters","url":"The %displayName% '%value%' is not a valid url"},"required":{"__symbolic":"error","message":"Lambda not supported","line":401,"character":27},"maxLength":{"__symbolic":"error","message":"Lambda not supported","line":427,"character":28},"stringLength":{"__symbolic":"error","message":"Lambda not supported","line":452,"character":31},"string":{"__symbolic":"error","message":"Lambda not supported","line":475,"character":25},"guid":{"__symbolic":"error","message":"Lambda not supported","line":495,"character":23},"duration":{"__symbolic":"error","message":"Lambda not supported","line":515,"character":27},"number":{"__symbolic":"error","message":"Lambda not supported","line":537,"character":25},"double":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Validator"},"member":"number"},"single":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Validator"},"member":"number"},"integer":{"__symbolic":"error","message":"Lambda not supported","line":562,"character":26},"int64":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Validator"},"member":"integer"},"int32":{"__symbolic":"error","message":"Lambda not supported","line":585,"character":24},"int16":{"__symbolic":"error","message":"Lambda not supported","line":601,"character":24},"byte":{"__symbolic":"error","message":"Lambda not supported","line":618,"character":23},"bool":{"__symbolic":"error","message":"Lambda not supported","line":634,"character":23},"none":{"__symbolic":"error","message":"Lambda not supported","line":642,"character":23},"date":{"__symbolic":"error","message":"Lambda not supported","line":662,"character":23},"creditCard":{"__symbolic":"error","message":"Lambda not supported","line":695,"character":29},"regularExpression":{"__symbolic":"error","message":"Lambda not supported","line":721,"character":36},"emailAddress":{"__symbolic":"error","message":"Lambda not supported","line":749,"character":31},"phone":{"__symbolic":"error","message":"Lambda not supported","line":778,"character":24},"url":{"__symbolic":"error","message":"Lambda not supported","line":797,"character":22},"makeRegExpValidator":{"__symbolic":"reference","name":"makeRegExpValidator"}}},"VisitContext":{"__symbolic":"interface"},"Visitor":{"__symbolic":"interface"},"breeze":{"AbstractDataServiceAdapter":{"__symbolic":"reference","name":"AbstractDataServiceAdapter"},"assertConfig":null,"assertParam":null,"AutoGeneratedKeyType":{"__symbolic":"reference","name":"AutoGeneratedKeyType"},"BooleanQueryOp":{"__symbolic":"reference","name":"ɵd"},"ComplexAspect":{"__symbolic":"reference","name":"ComplexAspect"},"ComplexType":{"__symbolic":"reference","name":"ComplexType"},"config":{"__symbolic":"reference","name":"config"},"core":{"__symbolic":"reference","name":"core"},"DataProperty":{"__symbolic":"reference","name":"DataProperty"},"DataService":{"__symbolic":"reference","name":"DataService"},"DataType":{"__symbolic":"reference","name":"DataType"},"EntityAction":{"__symbolic":"reference","name":"EntityAction"},"EntityAspect":{"__symbolic":"reference","name":"EntityAspect"},"EntityKey":{"__symbolic":"reference","name":"EntityKey"},"EntityManager":{"__symbolic":"reference","name":"EntityManager"},"EntityQuery":{"__symbolic":"reference","name":"EntityQuery"},"EntityState":{"__symbolic":"reference","name":"EntityState"},"EntityType":{"__symbolic":"reference","name":"EntityType"},"Event":{"__symbolic":"reference","name":"BreezeEvent"},"FetchStrategy":{"__symbolic":"reference","name":"FetchStrategy"},"FilterQueryOp":{"__symbolic":"reference","name":"FilterQueryOp"},"InterfaceRegistry":{"__symbolic":"reference","name":"InterfaceRegistry"},"JsonResultsAdapter":{"__symbolic":"reference","name":"JsonResultsAdapter"},"KeyGenerator":{"__symbolic":"reference","name":"KeyGenerator"},"LocalQueryComparisonOptions":{"__symbolic":"reference","name":"LocalQueryComparisonOptions"},"makeComplexArray":{"__symbolic":"reference","name":"makeComplexArray"},"makePrimitiveArray":{"__symbolic":"reference","name":"makePrimitiveArray"},"makeRelationArray":{"__symbolic":"reference","name":"makeRelationArray"},"MergeStrategy":{"__symbolic":"reference","name":"MergeStrategy"},"MetadataStore":{"__symbolic":"reference","name":"MetadataStore"},"NamingConvention":{"__symbolic":"reference","name":"NamingConvention"},"NavigationProperty":{"__symbolic":"reference","name":"NavigationProperty"},"OrderByClause":{"__symbolic":"reference","name":"OrderByClause"},"Param":{"__symbolic":"reference","name":"ɵb"},"Predicate":{"__symbolic":"reference","name":"Predicate"},"QueryOptions":{"__symbolic":"reference","name":"QueryOptions"},"SaveOptions":{"__symbolic":"reference","name":"SaveOptions"},"ValidationError":{"__symbolic":"reference","name":"ValidationError"},"ValidationOptions":{"__symbolic":"reference","name":"ValidationOptions"},"Validator":{"__symbolic":"reference","name":"Validator"},"version":"2.1.1"}},"origins":{"ɵa":"./src/predicate","ɵb":"./src/assert-param","ɵc":"./src/entity-metadata","ɵd":"./src/entity-query","BreezeConfig":"./src/config","ComplexArray":"./src/complex-array","RelationArray":"./src/relation-array","AbstractDataServiceAdapter":"./src/abstract-data-service-adapter","AjaxAdapter":"./src/interface-registry","AjaxConfig":"./src/interface-registry","AjaxRequestInterceptor":"./src/interface-registry","AndOrPredicate":"./src/predicate","AnyAllPredicate":"./src/predicate","ArrayChangedArgs":"./src/observable-array","assertConfig":"./src/assert-param","assertParam":"./src/assert-param","AutoGeneratedKeyType":"./src/entity-metadata","BaseAdapter":"./src/config","BinaryPredicate":"./src/predicate","BreezeEnum":"./src/enum","BreezeEvent":"./src/event","Callback":"./src/core","ChangeRequestInterceptor":"./src/interface-registry","ComplexAspect":"./src/entity-aspect","ComplexObject":"./src/entity-aspect","ComplexType":"./src/entity-metadata","config":"./src/config","core":"./src/core","DataProperty":"./src/entity-metadata","DataService":"./src/data-service","DataServiceAdapter":"./src/interface-registry","DataServiceConfig":"./src/data-service","DataType":"./src/data-type","Entity":"./src/entity-aspect","EntityAction":"./src/entity-action","EntityAspect":"./src/entity-aspect","EntityChangedEventArgs":"./src/entity-manager","EntityError":"./src/entity-manager","EntityKey":"./src/entity-key","EntityManager":"./src/entity-manager","EntityManagerConfig":"./src/entity-manager","EntityProperty":"./src/entity-metadata","EntityQuery":"./src/entity-query","EntityState":"./src/entity-state","EntityType":"./src/entity-metadata","ErrorCallback":"./src/core","ExpandClause":"./src/entity-query","ExpressionContext":"./src/predicate","FetchStrategy":"./src/query-options","FilterQueryOp":"./src/entity-query","FnExpr":"./src/predicate","HasChangesChangedEventArgs":"./src/entity-manager","HttpResponse":"./src/entity-manager","InterfaceRegistry":"./src/interface-registry","InterfaceRegistryConfig":"./src/interface-registry","JsonResultsAdapter":"./src/data-service","JsonResultsAdapterConfig":"./src/data-service","KeyGenerator":"./src/key-generator","KeyMapping":"./src/entity-manager","LitExpr":"./src/predicate","LocalQueryComparisonOptions":"./src/local-query-comparison-options","makeComplexArray":"./src/complex-array","makePrimitiveArray":"./src/primitive-array","makeRelationArray":"./src/relation-array","MappingContext":"./src/mapping-context","MergeStrategy":"./src/query-options","MetadataStore":"./src/entity-metadata","ModelLibraryAdapter":"./src/interface-registry","NamingConvention":"./src/naming-convention","NavigationProperty":"./src/entity-metadata","NodeContext":"./src/data-service","NodeMeta":"./src/data-service","OrderByClause":"./src/entity-query","Predicate":"./src/predicate","PropertyChangedEventArgs":"./src/entity-aspect","PropExpr":"./src/predicate","QueryOptions":"./src/query-options","QueryResult":"./src/entity-manager","SaveBundle":"./src/entity-manager","SaveContext":"./src/entity-manager","SaveOptions":"./src/save-options","SaveResult":"./src/entity-manager","SelectClause":"./src/entity-query","ServerError":"./src/entity-manager","StructuralObject":"./src/entity-aspect","StructuralType":"./src/entity-metadata","UnaryPredicate":"./src/predicate","UriBuilderAdapter":"./src/interface-registry","ValidationErrorsChangedEventArgs":"./src/entity-manager","ValidationError":"./src/validate","ValidationOptions":"./src/validation-options","Validator":"./src/validate","VisitContext":"./src/predicate","Visitor":"./src/predicate","breeze":"./src/breeze"},"importAs":"breeze-client"}

@@ -73,3 +73,3 @@ import { AbstractDataServiceAdapter } from './abstract-data-service-adapter';

Validator: Validator,
version: "2.1.0"
version: "2.1.1"
};

@@ -86,2 +86,2 @@ /** @hidden @internal */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9icmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQW1ELE1BQU0sZ0JBQWdCLENBQUM7QUFDckksT0FBTyxFQUFFLFFBQVEsRUFBRyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXFFLE1BQU0saUJBQWlCLENBQUM7QUFDakksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFtTixNQUFNLGtCQUFrQixDQUFDO0FBQ2xRLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtLLE1BQU0sc0JBQXNCLENBQUM7QUFDek4sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FB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QyxZQUFZLEVBQUUsWUFBWTtJQUMxQiwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsYUFBYSxFQUFFLGFBQWE7SUFDNUIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxhQUFhLEVBQUUsYUFBYTtJQUM1QixLQUFLO0lBQ0wsU0FBUyxFQUFFLFNBQVM7SUFDcEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFnQkYsd0JBQXdCO0FBQ3hCLElBQUksR0FBUSxDQUFDO0FBQ2IsSUFBSTtJQUNGLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0NBQzlEO0FBQUMsT0FBTyxDQUFDLEVBQUU7Q0FFWDtBQUNELElBQUksR0FBRyxFQUFFO0lBQ1AsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDckIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXJ9IGZyb20gJy4vYWJzdHJhY3QtZGF0YS1zZXJ2aWNlLWFkYXB0ZXInO1xyXG5pbXBvcnQgeyBhc3NlcnRQYXJhbSwgYXNzZXJ0Q29uZmlnLCBQYXJhbSB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuaW1wb3J0IHsgQnJlZXplQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBCcmVlemVFbnVtfSBmcm9tICcuL2VudW0nO1xyXG5pbXBvcnQgeyBCcmVlemVFdmVudCB9IGZyb20gJy4vZXZlbnQnO1xyXG5pbXBvcnQgeyBDb21wbGV4QXJyYXkgfSBmcm9tICcuL2NvbXBsZXgtYXJyYXknO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgRGF0YVNlcnZpY2VDb25maWcsIEpzb25SZXN1bHRzQWRhcHRlciwgSnNvblJlc3VsdHNBZGFwdGVyQ29uZmlnLCBOb2RlQ29udGV4dCwgTm9kZU1ldGEgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUeXBlICB9IGZyb20gJy4vZGF0YS10eXBlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uIH0gZnJvbSAnLi9lbnRpdHktYWN0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5QXNwZWN0LCBDb21wbGV4QXNwZWN0LCBFbnRpdHksIENvbXBsZXhPYmplY3QsIFN0cnVjdHVyYWxPYmplY3QsIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4vZW50aXR5LWtleSc7XHJcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIEVudGl0eU1hbmFnZXJDb25maWcsIEVudGl0eUVycm9yLCBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzLCBTYXZlQ29udGV4dCwgU2F2ZUJ1bmRsZSwgSHR0cFJlc3BvbnNlLCBLZXlNYXBwaW5nLCBTZXJ2ZXJFcnJvciwgU2F2ZVJlc3VsdCwgUXVlcnlSZXN1bHQsIFZhbGlkYXRpb25FcnJvcnNDaGFuZ2VkRXZlbnRBcmdzLCBIYXNDaGFuZ2VzQ2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJy4vZW50aXR5LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSwgRmlsdGVyUXVlcnlPcCwgQm9vbGVhblF1ZXJ5T3AsIE9yZGVyQnlDbGF1c2UsIEV4cGFuZENsYXVzZSwgU2VsZWN0Q2xhdXNlIH0gZnJvbSAnLi9lbnRpdHktcXVlcnknO1xyXG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSB9IGZyb20gJy4vZW50aXR5LXN0YXRlJztcclxuaW1wb3J0IHsgSW50ZXJmYWNlUmVnaXN0cnksIEFqYXhBZGFwdGVyLCBBamF4Q29uZmlnLCBEYXRhU2VydmljZUFkYXB0ZXIsIE1vZGVsTGlicmFyeUFkYXB0ZXIsIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvciwgVXJpQnVpbGRlckFkYXB0ZXIsIEludGVyZmFjZVJlZ2lzdHJ5Q29uZmlnLCBBamF4UmVxdWVzdEludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2UtcmVnaXN0cnknO1xyXG5pbXBvcnQgeyBLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2tleS1nZW5lcmF0b3InO1xyXG5pbXBvcnQgeyBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgfSBmcm9tICcuL2xvY2FsLXF1ZXJ5LWNvbXBhcmlzb24tb3B0aW9ucyc7XHJcbmltcG9ydCB7IE1hcHBpbmdDb250ZXh0IH0gZnJvbSAnLi9tYXBwaW5nLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVN0b3JlLCBFbnRpdHlUeXBlLCBDb21wbGV4VHlwZSwgU3RydWN0dXJhbFR5cGUsIERhdGFQcm9wZXJ0eSwgRW50aXR5UHJvcGVydHksIE5hdmlnYXRpb25Qcm9wZXJ0eSwgQXV0b0dlbmVyYXRlZEtleVR5cGUgICB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgTmFtaW5nQ29udmVudGlvbiB9IGZyb20gJy4vbmFtaW5nLWNvbnZlbnRpb24nO1xyXG5pbXBvcnQgeyBQcmVkaWNhdGUsIFZpc2l0Q29udGV4dCwgVmlzaXRvciwgRXhwcmVzc2lvbkNvbnRleHQsIFVuYXJ5UHJlZGljYXRlLCBCaW5hcnlQcmVkaWNhdGUsIEFueUFsbFByZWRpY2F0ZSwgQW5kT3JQcmVkaWNhdGUsIExpdEV4cHIsIEZuRXhwciwgUHJvcEV4cHIgfSBmcm9tICcuL3ByZWRpY2F0ZSc7XHJcbmltcG9ydCB7IFF1ZXJ5T3B0aW9ucywgIEZldGNoU3RyYXRlZ3ksIE1lcmdlU3RyYXRlZ3kgfSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBTYXZlT3B0aW9ucyB9IGZyb20gJy4vc2F2ZS1vcHRpb25zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk9wdGlvbnMgfSBmcm9tICcuL3ZhbGlkYXRpb24tb3B0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBjb25maWcsIEJhc2VBZGFwdGVyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBjb3JlLCBDYWxsYmFjaywgRXJyb3JDYWxsYmFjayB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IG1ha2VSZWxhdGlvbkFycmF5LCBtYWtlUHJpbWl0aXZlQXJyYXksIG1ha2VDb21wbGV4QXJyYXkgfSBmcm9tICcuL2FycmF5JztcclxuXHJcbmltcG9ydCB7IFJlbGF0aW9uQXJyYXkgfSBmcm9tICcuL3JlbGF0aW9uLWFycmF5JztcclxuaW1wb3J0IHsgQXJyYXlDaGFuZ2VkQXJncyB9IGZyb20gJy4vb2JzZXJ2YWJsZS1hcnJheSc7XHJcbmV4cG9ydCB7IEJyZWV6ZUNvbmZpZywgQ29tcGxleEFycmF5LCBSZWxhdGlvbkFycmF5IH07XHJcblxyXG5leHBvcnQge1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIEFqYXhBZGFwdGVyLFxyXG4gIEFqYXhDb25maWcsXHJcbiAgQWpheFJlcXVlc3RJbnRlcmNlcHRvcixcclxuICBBbmRPclByZWRpY2F0ZSxcclxuICBBbnlBbGxQcmVkaWNhdGUsXHJcbiAgQXJyYXlDaGFuZ2VkQXJncyxcclxuICBhc3NlcnRDb25maWcsXHJcbiAgYXNzZXJ0UGFyYW0sXHJcbiAgQXV0b0dlbmVyYXRlZEtleVR5cGUsXHJcbiAgQmFzZUFkYXB0ZXIsXHJcbiAgQmluYXJ5UHJlZGljYXRlLFxyXG4gIEJyZWV6ZUVudW0sXHJcbiAgQnJlZXplRXZlbnQsIFxyXG4gIENhbGxiYWNrLFxyXG4gIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvcixcclxuICBDb21wbGV4QXNwZWN0LFxyXG4gIENvbXBsZXhPYmplY3QsXHJcbiAgQ29tcGxleFR5cGUsXHJcbiAgY29uZmlnLFxyXG4gIGNvcmUsXHJcbiAgRGF0YVByb3BlcnR5LFxyXG4gIERhdGFTZXJ2aWNlLFxyXG4gIERhdGFTZXJ2aWNlQWRhcHRlcixcclxuICBEYXRhU2VydmljZUNvbmZpZyxcclxuICBEYXRhVHlwZSxcclxuICBFbnRpdHksXHJcbiAgRW50aXR5QWN0aW9uLFxyXG4gIEVudGl0eUFzcGVjdCxcclxuICBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIEVudGl0eUVycm9yLFxyXG4gIEVudGl0eUtleSxcclxuICBFbnRpdHlNYW5hZ2VyLFxyXG4gIEVudGl0eU1hbmFnZXJDb25maWcsXHJcbiAgRW50aXR5UHJvcGVydHksXHJcbiAgRW50aXR5UXVlcnksXHJcbiAgRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5VHlwZSxcclxuICBFcnJvckNhbGxiYWNrLFxyXG4gIEV4cGFuZENsYXVzZSxcclxuICBFeHByZXNzaW9uQ29udGV4dCxcclxuICBGZXRjaFN0cmF0ZWd5LFxyXG4gIEZpbHRlclF1ZXJ5T3AsXHJcbiAgRm5FeHByLFxyXG4gIEhhc0NoYW5nZXNDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIEh0dHBSZXNwb25zZSxcclxuICBJbnRlcmZhY2VSZWdpc3RyeSxcclxuICBJbnRlcmZhY2VSZWdpc3RyeUNvbmZpZyxcclxuICBKc29uUmVzdWx0c0FkYXB0ZXIsXHJcbiAgSnNvblJlc3VsdHNBZGFwdGVyQ29uZmlnLFxyXG4gIEtleUdlbmVyYXRvcixcclxuICBLZXlNYXBwaW5nLFxyXG4gIExpdEV4cHIsXHJcbiAgTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zLFxyXG4gIG1ha2VDb21wbGV4QXJyYXksXHJcbiAgbWFrZVByaW1pdGl2ZUFycmF5LFxyXG4gIG1ha2VSZWxhdGlvbkFycmF5LFxyXG4gIE1hcHBpbmdDb250ZXh0LFxyXG4gIE1lcmdlU3RyYXRlZ3ksXHJcbiAgTWV0YWRhdGFTdG9yZSxcclxuICBNb2RlbExpYnJhcnlBZGFwdGVyLFxyXG4gIE5hbWluZ0NvbnZlbnRpb24sXHJcbiAgTmF2aWdhdGlvblByb3BlcnR5LFxyXG4gIE5vZGVDb250ZXh0LFxyXG4gIE5vZGVNZXRhLFxyXG4gIE9yZGVyQnlDbGF1c2UsXHJcbiAgUHJlZGljYXRlLFxyXG4gIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncyxcclxuICBQcm9wRXhwcixcclxuICBRdWVyeU9wdGlvbnMsXHJcbiAgUXVlcnlSZXN1bHQsXHJcbiAgU2F2ZUJ1bmRsZSxcclxuICBTYXZlQ29udGV4dCxcclxuICBTYXZlT3B0aW9ucyxcclxuICBTYXZlUmVzdWx0LFxyXG4gIFNlbGVjdENsYXVzZSxcclxuICBTZXJ2ZXJFcnJvcixcclxuICBTdHJ1Y3R1cmFsT2JqZWN0LFxyXG4gIFN0cnVjdHVyYWxUeXBlLFxyXG4gIFVuYXJ5UHJlZGljYXRlLFxyXG4gIFVyaUJ1aWxkZXJBZGFwdGVyLFxyXG4gIFZhbGlkYXRpb25FcnJvcnNDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIFZhbGlkYXRpb25FcnJvcixcclxuICBWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBWYWxpZGF0b3IsXHJcbiAgVmlzaXRDb250ZXh0LFxyXG4gIFZpc2l0b3IsXHJcbn07XHJcblxyXG4vLyBjcmVhdGUgYSBicmVlemUgdmFyaWFibGUgaGVyZVxyXG5leHBvcnQgY29uc3QgYnJlZXplID0ge1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyOiBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlcixcclxuICBhc3NlcnRDb25maWc6IG51bGwgYXMgYW55LFxyXG4gIGFzc2VydFBhcmFtOiBudWxsIGFzIGFueSxcclxuICBBdXRvR2VuZXJhdGVkS2V5VHlwZTogQXV0b0dlbmVyYXRlZEtleVR5cGUsXHJcbiAgQm9vbGVhblF1ZXJ5T3A6IEJvb2xlYW5RdWVyeU9wLFxyXG4gIENvbXBsZXhBc3BlY3Q6IENvbXBsZXhBc3BlY3QsXHJcbiAgQ29tcGxleFR5cGU6IENvbXBsZXhUeXBlLFxyXG4gIGNvbmZpZzogY29uZmlnLFxyXG4gIGNvcmU6IGNvcmUsXHJcbiAgRGF0YVByb3BlcnR5OiBEYXRhUHJvcGVydHksXHJcbiAgRGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gIERhdGFUeXBlOiBEYXRhVHlwZSxcclxuICBFbnRpdHlBY3Rpb246IEVudGl0eUFjdGlvbixcclxuICBFbnRpdHlBc3BlY3Q6IEVudGl0eUFzcGVjdCxcclxuICBFbnRpdHlLZXk6IEVudGl0eUtleSxcclxuICBFbnRpdHlNYW5hZ2VyOiBFbnRpdHlNYW5hZ2VyLFxyXG4gIEVudGl0eVF1ZXJ5OiBFbnRpdHlRdWVyeSxcclxuICBFbnRpdHlTdGF0ZTogRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5VHlwZTogRW50aXR5VHlwZSxcclxuICBFdmVudDogQnJlZXplRXZlbnQsXHJcbiAgRmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneSxcclxuICBGaWx0ZXJRdWVyeU9wOiBGaWx0ZXJRdWVyeU9wLFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5OiBJbnRlcmZhY2VSZWdpc3RyeSxcclxuICBKc29uUmVzdWx0c0FkYXB0ZXI6IEpzb25SZXN1bHRzQWRhcHRlcixcclxuICBLZXlHZW5lcmF0b3I6IEtleUdlbmVyYXRvcixcclxuICBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnM6IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyxcclxuICBtYWtlQ29tcGxleEFycmF5OiBtYWtlQ29tcGxleEFycmF5LFxyXG4gIG1ha2VQcmltaXRpdmVBcnJheTogbWFrZVByaW1pdGl2ZUFycmF5LFxyXG4gIG1ha2VSZWxhdGlvbkFycmF5OiBtYWtlUmVsYXRpb25BcnJheSxcclxuICBNZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5LFxyXG4gIE1ldGFkYXRhU3RvcmU6IE1ldGFkYXRhU3RvcmUsXHJcbiAgTmFtaW5nQ29udmVudGlvbjogTmFtaW5nQ29udmVudGlvbixcclxuICBOYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSxcclxuICBPcmRlckJ5Q2xhdXNlOiBPcmRlckJ5Q2xhdXNlLCAvLyBmb3IgdGVzdGluZyBvbmx5XHJcbiAgUGFyYW0sXHJcbiAgUHJlZGljYXRlOiBQcmVkaWNhdGUsXHJcbiAgUXVlcnlPcHRpb25zOiBRdWVyeU9wdGlvbnMsXHJcbiAgU2F2ZU9wdGlvbnM6IFNhdmVPcHRpb25zLFxyXG4gIFZhbGlkYXRpb25FcnJvcjogVmFsaWRhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25PcHRpb25zOiBWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBWYWxpZGF0b3I6IFZhbGlkYXRvcixcclxuICB2ZXJzaW9uOiBcIjIuMS4wXCJcclxufTtcclxuXHJcbi8vIGJyZWV6ZS5hc3NlcnRDb25maWcgPSBhc3NlcnRDb25maWcgYXMgYW55O1xyXG4vLyBicmVlemUuYXNzZXJ0UGFyYW0gPSBhc3NlcnRQYXJhbSBhcyBhbnk7XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIHByb21pc2VzIHtcclxuICAvKiogbm8tb3AgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBicmVlemUtYnJpZGdlMi1hbmd1bGFyICovXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJUHJvbWlzZVNlcnZpY2Uge31cclxufVxyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55O1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmRlY2xhcmUgdmFyIGdsb2JhbDogYW55O1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmxldCB3aW46IGFueTtcclxudHJ5IHtcclxuICB3aW4gPSB3aW5kb3cgPyB3aW5kb3cgOiAoZ2xvYmFsID8gZ2xvYmFsLndpbmRvdyA6IHVuZGVmaW5lZCk7XHJcbn0gY2F0Y2ggKGUpIHtcclxuXHJcbn1cclxuaWYgKHdpbikge1xyXG4gIHdpbi5icmVlemUgPSBicmVlemU7XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9icmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQW1ELE1BQU0sZ0JBQWdCLENBQUM7QUFDckksT0FBTyxFQUFFLFFBQVEsRUFBRyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXFFLE1BQU0saUJBQWlCLENBQUM7QUFDakksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFtTixNQUFNLGtCQUFrQixDQUFDO0FBQ2xRLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtLLE1BQU0sc0JBQXNCLENBQUM7QUFDek4sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FB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QyxZQUFZLEVBQUUsWUFBWTtJQUMxQiwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsYUFBYSxFQUFFLGFBQWE7SUFDNUIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxhQUFhLEVBQUUsYUFBYTtJQUM1QixLQUFLO0lBQ0wsU0FBUyxFQUFFLFNBQVM7SUFDcEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFnQkYsd0JBQXdCO0FBQ3hCLElBQUksR0FBUSxDQUFDO0FBQ2IsSUFBSTtJQUNGLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0NBQzlEO0FBQUMsT0FBTyxDQUFDLEVBQUU7Q0FFWDtBQUNELElBQUksR0FBRyxFQUFFO0lBQ1AsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDckIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXJ9IGZyb20gJy4vYWJzdHJhY3QtZGF0YS1zZXJ2aWNlLWFkYXB0ZXInO1xyXG5pbXBvcnQgeyBhc3NlcnRQYXJhbSwgYXNzZXJ0Q29uZmlnLCBQYXJhbSB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuaW1wb3J0IHsgQnJlZXplQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBCcmVlemVFbnVtfSBmcm9tICcuL2VudW0nO1xyXG5pbXBvcnQgeyBCcmVlemVFdmVudCB9IGZyb20gJy4vZXZlbnQnO1xyXG5pbXBvcnQgeyBDb21wbGV4QXJyYXkgfSBmcm9tICcuL2NvbXBsZXgtYXJyYXknO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgRGF0YVNlcnZpY2VDb25maWcsIEpzb25SZXN1bHRzQWRhcHRlciwgSnNvblJlc3VsdHNBZGFwdGVyQ29uZmlnLCBOb2RlQ29udGV4dCwgTm9kZU1ldGEgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUeXBlICB9IGZyb20gJy4vZGF0YS10eXBlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uIH0gZnJvbSAnLi9lbnRpdHktYWN0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5QXNwZWN0LCBDb21wbGV4QXNwZWN0LCBFbnRpdHksIENvbXBsZXhPYmplY3QsIFN0cnVjdHVyYWxPYmplY3QsIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4vZW50aXR5LWtleSc7XHJcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIEVudGl0eU1hbmFnZXJDb25maWcsIEVudGl0eUVycm9yLCBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzLCBTYXZlQ29udGV4dCwgU2F2ZUJ1bmRsZSwgSHR0cFJlc3BvbnNlLCBLZXlNYXBwaW5nLCBTZXJ2ZXJFcnJvciwgU2F2ZVJlc3VsdCwgUXVlcnlSZXN1bHQsIFZhbGlkYXRpb25FcnJvcnNDaGFuZ2VkRXZlbnRBcmdzLCBIYXNDaGFuZ2VzQ2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJy4vZW50aXR5LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSwgRmlsdGVyUXVlcnlPcCwgQm9vbGVhblF1ZXJ5T3AsIE9yZGVyQnlDbGF1c2UsIEV4cGFuZENsYXVzZSwgU2VsZWN0Q2xhdXNlIH0gZnJvbSAnLi9lbnRpdHktcXVlcnknO1xyXG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSB9IGZyb20gJy4vZW50aXR5LXN0YXRlJztcclxuaW1wb3J0IHsgSW50ZXJmYWNlUmVnaXN0cnksIEFqYXhBZGFwdGVyLCBBamF4Q29uZmlnLCBEYXRhU2VydmljZUFkYXB0ZXIsIE1vZGVsTGlicmFyeUFkYXB0ZXIsIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvciwgVXJpQnVpbGRlckFkYXB0ZXIsIEludGVyZmFjZVJlZ2lzdHJ5Q29uZmlnLCBBamF4UmVxdWVzdEludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmZhY2UtcmVnaXN0cnknO1xyXG5pbXBvcnQgeyBLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2tleS1nZW5lcmF0b3InO1xyXG5pbXBvcnQgeyBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgfSBmcm9tICcuL2xvY2FsLXF1ZXJ5LWNvbXBhcmlzb24tb3B0aW9ucyc7XHJcbmltcG9ydCB7IE1hcHBpbmdDb250ZXh0IH0gZnJvbSAnLi9tYXBwaW5nLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVN0b3JlLCBFbnRpdHlUeXBlLCBDb21wbGV4VHlwZSwgU3RydWN0dXJhbFR5cGUsIERhdGFQcm9wZXJ0eSwgRW50aXR5UHJvcGVydHksIE5hdmlnYXRpb25Qcm9wZXJ0eSwgQXV0b0dlbmVyYXRlZEtleVR5cGUgICB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgTmFtaW5nQ29udmVudGlvbiB9IGZyb20gJy4vbmFtaW5nLWNvbnZlbnRpb24nO1xyXG5pbXBvcnQgeyBQcmVkaWNhdGUsIFZpc2l0Q29udGV4dCwgVmlzaXRvciwgRXhwcmVzc2lvbkNvbnRleHQsIFVuYXJ5UHJlZGljYXRlLCBCaW5hcnlQcmVkaWNhdGUsIEFueUFsbFByZWRpY2F0ZSwgQW5kT3JQcmVkaWNhdGUsIExpdEV4cHIsIEZuRXhwciwgUHJvcEV4cHIgfSBmcm9tICcuL3ByZWRpY2F0ZSc7XHJcbmltcG9ydCB7IFF1ZXJ5T3B0aW9ucywgIEZldGNoU3RyYXRlZ3ksIE1lcmdlU3RyYXRlZ3kgfSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBTYXZlT3B0aW9ucyB9IGZyb20gJy4vc2F2ZS1vcHRpb25zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk9wdGlvbnMgfSBmcm9tICcuL3ZhbGlkYXRpb24tb3B0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBjb25maWcsIEJhc2VBZGFwdGVyIH0gZnJvbSAnLi9jb25maWcnO1xyXG5pbXBvcnQgeyBjb3JlLCBDYWxsYmFjaywgRXJyb3JDYWxsYmFjayB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IG1ha2VSZWxhdGlvbkFycmF5LCBtYWtlUHJpbWl0aXZlQXJyYXksIG1ha2VDb21wbGV4QXJyYXkgfSBmcm9tICcuL2FycmF5JztcclxuXHJcbmltcG9ydCB7IFJlbGF0aW9uQXJyYXkgfSBmcm9tICcuL3JlbGF0aW9uLWFycmF5JztcclxuaW1wb3J0IHsgQXJyYXlDaGFuZ2VkQXJncyB9IGZyb20gJy4vb2JzZXJ2YWJsZS1hcnJheSc7XHJcbmV4cG9ydCB7IEJyZWV6ZUNvbmZpZywgQ29tcGxleEFycmF5LCBSZWxhdGlvbkFycmF5IH07XHJcblxyXG5leHBvcnQge1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIEFqYXhBZGFwdGVyLFxyXG4gIEFqYXhDb25maWcsXHJcbiAgQWpheFJlcXVlc3RJbnRlcmNlcHRvcixcclxuICBBbmRPclByZWRpY2F0ZSxcclxuICBBbnlBbGxQcmVkaWNhdGUsXHJcbiAgQXJyYXlDaGFuZ2VkQXJncyxcclxuICBhc3NlcnRDb25maWcsXHJcbiAgYXNzZXJ0UGFyYW0sXHJcbiAgQXV0b0dlbmVyYXRlZEtleVR5cGUsXHJcbiAgQmFzZUFkYXB0ZXIsXHJcbiAgQmluYXJ5UHJlZGljYXRlLFxyXG4gIEJyZWV6ZUVudW0sXHJcbiAgQnJlZXplRXZlbnQsIFxyXG4gIENhbGxiYWNrLFxyXG4gIENoYW5nZVJlcXVlc3RJbnRlcmNlcHRvcixcclxuICBDb21wbGV4QXNwZWN0LFxyXG4gIENvbXBsZXhPYmplY3QsXHJcbiAgQ29tcGxleFR5cGUsXHJcbiAgY29uZmlnLFxyXG4gIGNvcmUsXHJcbiAgRGF0YVByb3BlcnR5LFxyXG4gIERhdGFTZXJ2aWNlLFxyXG4gIERhdGFTZXJ2aWNlQWRhcHRlcixcclxuICBEYXRhU2VydmljZUNvbmZpZyxcclxuICBEYXRhVHlwZSxcclxuICBFbnRpdHksXHJcbiAgRW50aXR5QWN0aW9uLFxyXG4gIEVudGl0eUFzcGVjdCxcclxuICBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIEVudGl0eUVycm9yLFxyXG4gIEVudGl0eUtleSxcclxuICBFbnRpdHlNYW5hZ2VyLFxyXG4gIEVudGl0eU1hbmFnZXJDb25maWcsXHJcbiAgRW50aXR5UHJvcGVydHksXHJcbiAgRW50aXR5UXVlcnksXHJcbiAgRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5VHlwZSxcclxuICBFcnJvckNhbGxiYWNrLFxyXG4gIEV4cGFuZENsYXVzZSxcclxuICBFeHByZXNzaW9uQ29udGV4dCxcclxuICBGZXRjaFN0cmF0ZWd5LFxyXG4gIEZpbHRlclF1ZXJ5T3AsXHJcbiAgRm5FeHByLFxyXG4gIEhhc0NoYW5nZXNDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIEh0dHBSZXNwb25zZSxcclxuICBJbnRlcmZhY2VSZWdpc3RyeSxcclxuICBJbnRlcmZhY2VSZWdpc3RyeUNvbmZpZyxcclxuICBKc29uUmVzdWx0c0FkYXB0ZXIsXHJcbiAgSnNvblJlc3VsdHNBZGFwdGVyQ29uZmlnLFxyXG4gIEtleUdlbmVyYXRvcixcclxuICBLZXlNYXBwaW5nLFxyXG4gIExpdEV4cHIsXHJcbiAgTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zLFxyXG4gIG1ha2VDb21wbGV4QXJyYXksXHJcbiAgbWFrZVByaW1pdGl2ZUFycmF5LFxyXG4gIG1ha2VSZWxhdGlvbkFycmF5LFxyXG4gIE1hcHBpbmdDb250ZXh0LFxyXG4gIE1lcmdlU3RyYXRlZ3ksXHJcbiAgTWV0YWRhdGFTdG9yZSxcclxuICBNb2RlbExpYnJhcnlBZGFwdGVyLFxyXG4gIE5hbWluZ0NvbnZlbnRpb24sXHJcbiAgTmF2aWdhdGlvblByb3BlcnR5LFxyXG4gIE5vZGVDb250ZXh0LFxyXG4gIE5vZGVNZXRhLFxyXG4gIE9yZGVyQnlDbGF1c2UsXHJcbiAgUHJlZGljYXRlLFxyXG4gIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncyxcclxuICBQcm9wRXhwcixcclxuICBRdWVyeU9wdGlvbnMsXHJcbiAgUXVlcnlSZXN1bHQsXHJcbiAgU2F2ZUJ1bmRsZSxcclxuICBTYXZlQ29udGV4dCxcclxuICBTYXZlT3B0aW9ucyxcclxuICBTYXZlUmVzdWx0LFxyXG4gIFNlbGVjdENsYXVzZSxcclxuICBTZXJ2ZXJFcnJvcixcclxuICBTdHJ1Y3R1cmFsT2JqZWN0LFxyXG4gIFN0cnVjdHVyYWxUeXBlLFxyXG4gIFVuYXJ5UHJlZGljYXRlLFxyXG4gIFVyaUJ1aWxkZXJBZGFwdGVyLFxyXG4gIFZhbGlkYXRpb25FcnJvcnNDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIFZhbGlkYXRpb25FcnJvcixcclxuICBWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBWYWxpZGF0b3IsXHJcbiAgVmlzaXRDb250ZXh0LFxyXG4gIFZpc2l0b3IsXHJcbn07XHJcblxyXG4vLyBjcmVhdGUgYSBicmVlemUgdmFyaWFibGUgaGVyZVxyXG5leHBvcnQgY29uc3QgYnJlZXplID0ge1xyXG4gIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyOiBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlcixcclxuICBhc3NlcnRDb25maWc6IG51bGwgYXMgYW55LFxyXG4gIGFzc2VydFBhcmFtOiBudWxsIGFzIGFueSxcclxuICBBdXRvR2VuZXJhdGVkS2V5VHlwZTogQXV0b0dlbmVyYXRlZEtleVR5cGUsXHJcbiAgQm9vbGVhblF1ZXJ5T3A6IEJvb2xlYW5RdWVyeU9wLFxyXG4gIENvbXBsZXhBc3BlY3Q6IENvbXBsZXhBc3BlY3QsXHJcbiAgQ29tcGxleFR5cGU6IENvbXBsZXhUeXBlLFxyXG4gIGNvbmZpZzogY29uZmlnLFxyXG4gIGNvcmU6IGNvcmUsXHJcbiAgRGF0YVByb3BlcnR5OiBEYXRhUHJvcGVydHksXHJcbiAgRGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gIERhdGFUeXBlOiBEYXRhVHlwZSxcclxuICBFbnRpdHlBY3Rpb246IEVudGl0eUFjdGlvbixcclxuICBFbnRpdHlBc3BlY3Q6IEVudGl0eUFzcGVjdCxcclxuICBFbnRpdHlLZXk6IEVudGl0eUtleSxcclxuICBFbnRpdHlNYW5hZ2VyOiBFbnRpdHlNYW5hZ2VyLFxyXG4gIEVudGl0eVF1ZXJ5OiBFbnRpdHlRdWVyeSxcclxuICBFbnRpdHlTdGF0ZTogRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5VHlwZTogRW50aXR5VHlwZSxcclxuICBFdmVudDogQnJlZXplRXZlbnQsXHJcbiAgRmV0Y2hTdHJhdGVneTogRmV0Y2hTdHJhdGVneSxcclxuICBGaWx0ZXJRdWVyeU9wOiBGaWx0ZXJRdWVyeU9wLFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5OiBJbnRlcmZhY2VSZWdpc3RyeSxcclxuICBKc29uUmVzdWx0c0FkYXB0ZXI6IEpzb25SZXN1bHRzQWRhcHRlcixcclxuICBLZXlHZW5lcmF0b3I6IEtleUdlbmVyYXRvcixcclxuICBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnM6IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyxcclxuICBtYWtlQ29tcGxleEFycmF5OiBtYWtlQ29tcGxleEFycmF5LFxyXG4gIG1ha2VQcmltaXRpdmVBcnJheTogbWFrZVByaW1pdGl2ZUFycmF5LFxyXG4gIG1ha2VSZWxhdGlvbkFycmF5OiBtYWtlUmVsYXRpb25BcnJheSxcclxuICBNZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5LFxyXG4gIE1ldGFkYXRhU3RvcmU6IE1ldGFkYXRhU3RvcmUsXHJcbiAgTmFtaW5nQ29udmVudGlvbjogTmFtaW5nQ29udmVudGlvbixcclxuICBOYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSxcclxuICBPcmRlckJ5Q2xhdXNlOiBPcmRlckJ5Q2xhdXNlLCAvLyBmb3IgdGVzdGluZyBvbmx5XHJcbiAgUGFyYW0sXHJcbiAgUHJlZGljYXRlOiBQcmVkaWNhdGUsXHJcbiAgUXVlcnlPcHRpb25zOiBRdWVyeU9wdGlvbnMsXHJcbiAgU2F2ZU9wdGlvbnM6IFNhdmVPcHRpb25zLFxyXG4gIFZhbGlkYXRpb25FcnJvcjogVmFsaWRhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25PcHRpb25zOiBWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBWYWxpZGF0b3I6IFZhbGlkYXRvcixcclxuICB2ZXJzaW9uOiBcIjIuMS4xXCJcclxufTtcclxuXHJcbi8vIGJyZWV6ZS5hc3NlcnRDb25maWcgPSBhc3NlcnRDb25maWcgYXMgYW55O1xyXG4vLyBicmVlemUuYXNzZXJ0UGFyYW0gPSBhc3NlcnRQYXJhbSBhcyBhbnk7XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIHByb21pc2VzIHtcclxuICAvKiogbm8tb3AgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBicmVlemUtYnJpZGdlMi1hbmd1bGFyICovXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJUHJvbWlzZVNlcnZpY2Uge31cclxufVxyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55O1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmRlY2xhcmUgdmFyIGdsb2JhbDogYW55O1xyXG5cclxuLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbmxldCB3aW46IGFueTtcclxudHJ5IHtcclxuICB3aW4gPSB3aW5kb3cgPyB3aW5kb3cgOiAoZ2xvYmFsID8gZ2xvYmFsLndpbmRvdyA6IHVuZGVmaW5lZCk7XHJcbn0gY2F0Y2ggKGUpIHtcclxuXHJcbn1cclxuaWYgKHdpbikge1xyXG4gIHdpbi5icmVlemUgPSBicmVlemU7XHJcbn1cclxuIl19

@@ -211,3 +211,3 @@ import { core } from './core';

let entityKey = entityType.getEntityKeyFromRawEntity(node, mc.rawValueFn);
let targetEntity = em.findEntityByKey(entityKey);
let targetEntity = em.getEntityByKey(entityKey);
if (targetEntity) {

@@ -406,2 +406,2 @@ if (isSaving && targetEntity.entityAspect.entityState.isDeleted()) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9tYXBwaW5nLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFHLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUcsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQixVQUFVLEVBQWtCLFlBQVksRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBc0I3Qzs7OztFQUlFO0FBQ0YsTUFBTSxPQUFPLGNBQWM7SUFpQnpCLFlBQVksTUFBNEI7UUFieEMsZUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLHFDQUFxQztRQWVwRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYztTQUN4RCxDQUFDLENBQUM7UUFFSCxlQUFlO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFD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LElBQUksQ0FBQyxDQUFDO0lBRWpFLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtRQUMvQix1QkFBdUI7UUFDdkIsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxhQUFhLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDL0Q7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNlcnZpY2VBZGFwdGVyIH0gZnJvbSAnLi9pbnRlcmZhY2UtcmVnaXN0cnknO1xyXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgSnNvblJlc3VsdHNBZGFwdGVyLCBOb2RlQ29udGV4dCwgTm9kZU1ldGEgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGl0eVN0YXRlICB9IGZyb20gJy4vZW50aXR5LXN0YXRlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uIH0gZnJvbSAnLi9lbnRpdHktYWN0aW9uJztcclxuaW1wb3J0IHsgTWV0YWRhdGFTdG9yZSwgRW50aXR5VHlwZSwgU3RydWN0dXJhbFR5cGUsIERhdGFQcm9wZXJ0eSwgTmF2aWdhdGlvblByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSAnLi9lbnRpdHktbWFuYWdlcic7XHJcbmltcG9ydCB7IE1lcmdlU3RyYXRlZ3kgfSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eS1hc3BlY3QnO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSB9IGZyb20gJy4vZW50aXR5LXF1ZXJ5JztcclxuXHJcblxyXG4vKipcclxuRm9yIHVzZSBieSBicmVlemUgcGx1Z2luIGF1dGhvcnMgb25seS4gVGhlIGNsYXNzIGlzIGZvciB1c2UgaW4gYnVpbGRpbmcgYSBbW0lEYXRhU2VydmljZUFkYXB0ZXJdXSBpbXBsZW1lbnRhdGlvbi4gXHJcbkBhZGFwdGVyIChzZWUgW1tJRGF0YVNlcnZpY2VBZGFwdGVyXV0pICAgIFxyXG5AaGlkZGVuIFxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlT3B0aW9ucyB7XHJcbiAgbWVyZ2VTdHJhdGVneTogTWVyZ2VTdHJhdGVneTtcclxuICBpbmNsdWRlRGVsZXRlZD86IGJvb2xlYW47XHJcbiAgbm9UcmFja2luZz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKiBAaGlkZGVuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwcGluZ0NvbnRleHRDb25maWcge1xyXG4gIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZTtcclxuICBxdWVyeT86IEVudGl0eVF1ZXJ5IHwgc3RyaW5nO1xyXG4gIGVudGl0eU1hbmFnZXI6IEVudGl0eU1hbmFnZXI7XHJcbiAgbWVyZ2VPcHRpb25zOiBNZXJnZU9wdGlvbnM7XHJcbn1cclxuXHJcbi8qKlxyXG5Gb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiBUaGUgY2xhc3MgaXMgZm9yIHVzZSBpbiBidWlsZGluZyBhIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dIGltcGxlbWVudGF0aW9uLiBcclxuQGFkYXB0ZXIgKHNlZSBbW0lEYXRhU2VydmljZUFkYXB0ZXJdXSkgICAgXHJcbkBoaWRkZW4gXHJcbiovXHJcbmV4cG9ydCBjbGFzcyBNYXBwaW5nQ29udGV4dCB7XHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgXyR0eXBlTmFtZTogc3RyaW5nOyAvLyBvbiBwcm90b3R5cGVcclxuXHJcbiAgcmF3VmFsdWVGbiA9IERhdGFQcm9wZXJ0eS5nZXRSYXdWYWx1ZUZyb21TZXJ2ZXI7IC8vIHRoaW5rIGFib3V0IHBhc3NpbmcgdGhpcyBpbiBsYXRlci5cclxuXHJcbiAgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlO1xyXG4gIHF1ZXJ5OiBFbnRpdHlRdWVyeSB8IHN0cmluZztcclxuICBlbnRpdHlNYW5hZ2VyOiBFbnRpdHlNYW5hZ2VyO1xyXG4gIG1lcmdlT3B0aW9uczogTWVyZ2VPcHRpb25zO1xyXG4gIGFkYXB0ZXI6IERhdGFTZXJ2aWNlQWRhcHRlcjsgIC8vIGFzc2lnbmVkIGluIHRoZSBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlci5cclxuXHJcbiAgcmVmTWFwOiBPYmplY3Q7IC8vIFRPRE9cclxuICBkZWZlcnJlZEZuczogRnVuY3Rpb25bXTsgLy8gVE9ET1xyXG4gIGpzb25SZXN1bHRzQWRhcHRlcjogSnNvblJlc3VsdHNBZGFwdGVyO1xyXG4gIG1ldGFkYXRhU3RvcmU6IE1ldGFkYXRhU3RvcmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogTWFwcGluZ0NvbnRleHRDb25maWcpIHtcclxuXHJcbiAgICBjb3JlLmV4dGVuZCh0aGlzLCBjb25maWcsIFtcclxuICAgICAgXCJxdWVyeVwiLCBcImVudGl0eU1hbmFnZXJcIiwgXCJkYXRhU2VydmljZVwiLCBcIm1lcmdlT3B0aW9uc1wiXHJcbiAgICBdKTtcclxuXHJcbiAgICAvLyBjYWxjJ2QgcHJvcHNcclxuICAgIHRoaXMucmVmTWFwID0ge307XHJcbiAgICB0aGlzLmRlZmVycmVkRm5zID0gW107XHJcbiAgICB0aGlzLmpzb25SZXN1bHRzQWRhcHRlciA9IHRoaXMuZGF0YVNlcnZpY2UuanNvblJlc3VsdHNBZGFwdGVyO1xyXG4gICAgdGhpcy5tZXRhZGF0YVN0b3JlID0gdGhpcy5lbnRpdHlNYW5hZ2VyLm1ldGFkYXRhU3RvcmU7XHJcbiAgICB0aGlzLnJhd1ZhbHVlRm4gPSBEYXRhUHJvcGVydHkuZ2V0UmF3VmFsdWVGcm9tU2VydmVyOyAvLyB0aGluayBhYm91dCBwYXNzaW5nIHRoaXMgaW4gbGF0ZXIuXHJcbiAgfVxyXG5cclxuICBnZXRVcmwoKSB7XHJcbiAgICBsZXQgcXVlcnkgPSB0aGlzLnF1ZXJ5O1xyXG4gICAgaWYgKCFxdWVyeSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJxdWVyeSBjYW5ub3QgYmUgZW1wdHlcIik7XHJcbiAgICB9XHJcbiAgICBsZXQgdXJpU3RyaW5nOiBzdHJpbmc7XHJcbiAgICBpZiAodHlwZW9mIHF1ZXJ5ID09PSAnc3RyaW5nJykge1xyXG4gICAgICB1cmlTdHJpbmcgPSBxdWVyeTtcclxuICAgIH0gZWxzZSBpZiAocXVlcnkgaW5zdGFuY2VvZiBFbnRpdHlRdWVyeSkge1xyXG4gICAgICB1cmlTdHJpbmcgPSB0aGlzLmRhdGFTZXJ2aWNlLnVyaUJ1aWxkZXIhLmJ1aWxkVXJpKHF1ZXJ5LCB0aGlzLm1ldGFkYXRhU3RvcmUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIHJlY29nbml6ZSBxdWVyeSBwYXJhbWV0ZXIgYXMgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIEVudGl0eVF1ZXJ5XCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucXVhbGlmeVVybCh1cmlTdHJpbmcpO1xyXG4gIH1cclxuXHJcbiAgdmlzaXRBbmRNZXJnZShub2RlczogYW55W10sIG5vZGVDb250ZXh0OiBhbnkpIHtcclxuICAgIGxldCBxdWVyeSA9IHRoaXMucXVlcnk7XHJcbiAgICBsZXQganJhID0gdGhpcy5qc29uUmVzdWx0c0FkYXB0ZXI7XHJcbiAgICBub2RlQ29udGV4dCA9IG5vZGVDb250ZXh0IHx8IHt9O1xyXG4gICAgbGV0IHRoYXQgPSB0aGlzO1xyXG4gICAgcmV0dXJuIGNvcmUubWFwKG5vZGVzLCBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgICBpZiAocXVlcnkgPT0gbnVsbCAmJiBub2RlLmVudGl0eUFzcGVjdCkge1xyXG4gICAgICAgIC8vIGRvbid0IGJvdGhlciBtZXJnaW5nIGEgcmVzdWx0IGZyb20gYSBzYXZlIHRoYXQgd2FzIG5vdCByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICAgICAgaWYgKG5vZGUuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGVsZXRlZCgpKSB7XHJcbiAgICAgICAgICB0aGF0LmVudGl0eU1hbmFnZXIuZGV0YWNoRW50aXR5KG5vZGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBub2RlLmVudGl0eUFzcGVjdC5hY2NlcHRDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbWV0YSA9IGpyYS52aXNpdE5vZGUobm9kZSwgdGhhdCwgbm9kZUNvbnRleHQpIHx8IHt9O1xyXG4gICAgICBub2RlID0gbWV0YS5ub2RlIHx8IG5vZGU7XHJcbiAgICAgIGlmIChxdWVyeSAmJiBub2RlQ29udGV4dC5ub2RlVHlwZSA9PT0gXCJyb290XCIgJiYgIW1ldGEuZW50aXR5VHlwZSkge1xyXG4gICAgICAgIG1ldGEuZW50aXR5VHlwZSA9IHF1ZXJ5IGluc3RhbmNlb2YgRW50aXR5UXVlcnkgJiYgIHF1ZXJ5Ll9nZXRUb0VudGl0eVR5cGUgJiYgcXVlcnkuX2dldFRvRW50aXR5VHlwZSh0aGF0Lm1ldGFkYXRhU3RvcmUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwcm9jZXNzTWV0YSh0aGF0LCBub2RlLCBtZXRhKTtcclxuICAgIH0sIHRoaXMubWVyZ2VPcHRpb25zLmluY2x1ZGVEZWxldGVkKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NEZWZlcnJlZCgpIHtcclxuICAgIGlmICh0aGlzLmRlZmVycmVkRm5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5kZWZlcnJlZEZucy5mb3JFYWNoKChmbikgPT4ge1xyXG4gICAgICAgIGZuKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5NYXBwaW5nQ29udGV4dC5wcm90b3R5cGUuXyR0eXBlTmFtZSA9IFwiTWFwcGluZ0NvbnRleHRcIjtcclxuXHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzTWV0YShtYzogTWFwcGluZ0NvbnRleHQsIG5vZGU6IGFueSwgbWV0YTogTm9kZU1ldGEsIGFzc2lnbkZuPzogKHZhbDogYW55KSA9PiB2b2lkKSB7XHJcbiAgLy8gPT0gaXMgZGVsaWJlcmF0ZSBoZXJlIGluc3RlYWQgb2YgPT09XHJcbiAgaWYgKG1ldGEuaWdub3JlIHx8IG5vZGUgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIGlmIChtZXRhLm5vZGVSZWZJZCkge1xyXG4gICAgbGV0IHJlZlZhbHVlID0gcmVzb2x2ZUVudGl0eVJlZihtYywgbWV0YS5ub2RlUmVmSWQpO1xyXG4gICAgaWYgKHR5cGVvZiByZWZWYWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIGFzc2lnbkZuICE9IG51bGwpIHtcclxuICAgICAgbWMuZGVmZXJyZWRGbnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgYXNzaWduRm4ocmVmVmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZGVmZXJyZWQgYW5kIHdpbGwgYmUgc2V0IGxhdGVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZlZhbHVlO1xyXG4gIH0gZWxzZSBpZiAobWV0YS5lbnRpdHlUeXBlKSB7XHJcbiAgICBsZXQgZW50aXR5VHlwZSA9IG1ldGEuZW50aXR5VHlwZTtcclxuICAgIGlmIChtYy5tZXJnZU9wdGlvbnMubm9UcmFja2luZykge1xyXG4gICAgICBub2RlID0gcHJvY2Vzc05vTWVyZ2UobWMsIGVudGl0eVR5cGUsIG5vZGUpO1xyXG4gICAgICBpZiAoZW50aXR5VHlwZS5ub1RyYWNraW5nRm4pIHtcclxuICAgICAgICBub2RlID0gZW50aXR5VHlwZS5ub1RyYWNraW5nRm4obm9kZSwgZW50aXR5VHlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1ldGEubm9kZUlkKSB7XHJcbiAgICAgICAgbWMucmVmTWFwW21ldGEubm9kZUlkXSA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZW50aXR5VHlwZS5pc0NvbXBsZXhUeXBlKSB7XHJcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSBzdGlsbCBuZWVkIHRvIGRvIHNlcnZlck5hbWUgdG8gY2xpZW50IG5hbWUgcHJvY2Vzc2luZ1xyXG4gICAgICAgIHJldHVybiBwcm9jZXNzTm9NZXJnZShtYywgZW50aXR5VHlwZSwgbm9kZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG1lcmdlRW50aXR5KG1jLCBub2RlLCBtZXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcblxyXG4gICAgaWYgKCghbWV0YS5wYXNzVGhydSkgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmICEgY29yZS5pc0RhdGUobm9kZSkpIHtcclxuICAgICAgbm9kZSA9IHByb2Nlc3NBbm9uVHlwZShtYywgbm9kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRpbmcgdGhlIHJlZk1hcCBmb3IgZW50aXRpZXMgaXMgaGFuZGxlZCBieSB1cGRhdGVFbnRpdHlSZWYgZm9yIGVudGl0aWVzLlxyXG4gICAgaWYgKG1ldGEubm9kZUlkKSB7XHJcbiAgICAgIG1jLnJlZk1hcFttZXRhLm5vZGVJZF0gPSBub2RlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzTm9NZXJnZShtYzogTWFwcGluZ0NvbnRleHQsIHN0eXBlOiBTdHJ1Y3R1cmFsVHlwZSwgbm9kZTogYW55KSB7XHJcbiAgbGV0IHJlc3VsdCA9IHt9O1xyXG5cclxuICBzdHlwZS5kYXRhUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChkcCkge1xyXG4gICAgaWYgKGRwLmlzQ29tcGxleFByb3BlcnR5KSB7XHJcbiAgICAgIHJlc3VsdFtkcC5uYW1lXSA9IGNvcmUubWFwKG5vZGVbZHAubmFtZU9uU2VydmVyXSwgKHY6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBwcm9jZXNzTm9NZXJnZShtYywgZHAuZGF0YVR5cGUgYXMgYW55LCB2KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHRbZHAubmFtZV0gPSBEYXRhVHlwZS5wYXJzZVJhd1ZhbHVlKG5vZGVbZHAubmFtZU9uU2VydmVyXSwgZHAuZGF0YVR5cGUgYXMgRGF0YVR5cGUpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAoc3R5cGUgaW5zdGFuY2VvZiBFbnRpdHlUeXBlKSAmJiBzdHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKCAobnApID0+IHtcclxuICAgIGxldCBub2RlQ29udGV4dCA9IHsgbm9kZVR5cGU6IFwibmF2UHJvcFwiLCBuYXZpZ2F0aW9uUHJvcGVydHk6IG5wIH07XHJcbiAgICB2aXNpdE5vZGUobm9kZVtucC5uYW1lT25TZXJ2ZXJdLCBtYywgbm9kZUNvbnRleHQsIHJlc3VsdCwgbnAubmFtZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NBbm9uVHlwZShtYzogTWFwcGluZ0NvbnRleHQsIG5vZGU6IGFueSkge1xyXG4gIC8vIG5vZGUgaXMgZ3VhcmFudGVlZCB0byBiZSBhbiBvYmplY3QgYnkgdGhpcyBwb2ludCwgaS5lLiBub3QgYSBzY2FsYXJcclxuICBsZXQga2V5Rm4gPSBtYy5tZXRhZGF0YVN0b3JlLm5hbWluZ0NvbnZlbnRpb24uc2VydmVyUHJvcGVydHlOYW1lVG9DbGllbnQ7XHJcbiAgbGV0IHJlc3VsdCA9IHt9O1xyXG5cclxuICBjb3JlLm9iamVjdEZvckVhY2gobm9kZSwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgIGxldCBuZXdLZXkgPSBrZXlGbihrZXkpO1xyXG4gICAgbGV0IG5vZGVDb250ZXh0ID0geyBub2RlVHlwZTogXCJhbm9uUHJvcFwiLCBwcm9wZXJ0eU5hbWU6IG5ld0tleSB9O1xyXG4gICAgdmlzaXROb2RlKHZhbHVlLCBtYywgbm9kZUNvbnRleHQsIHJlc3VsdCwgbmV3S2V5KTtcclxuICB9KTtcclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiB2aXNpdE5vZGUobm9kZTogYW55LCBtYzogTWFwcGluZ0NvbnRleHQsIG5vZGVDb250ZXh0OiBOb2RlQ29udGV4dCwgcmVzdWx0OiBPYmplY3QsIGtleTogc3RyaW5nKSB7XHJcbiAgbGV0IGpyYSA9IG1jLmpzb25SZXN1bHRzQWRhcHRlcjtcclxuICBsZXQgbWV0YSA9IGpyYS52aXNpdE5vZGUobm9kZSwgbWMsIG5vZGVDb250ZXh0KSB8fCB7fTtcclxuICAvLyBhbGxvd3MgdmlzaXROb2RlIHRvIGNoYW5nZSB0aGUgdmFsdWU7XHJcbiAgbm9kZSA9IG1ldGEubm9kZSB8fCBub2RlO1xyXG5cclxuICBpZiAobWV0YS5pZ25vcmUpIHJldHVybjtcclxuICBpZiAobWV0YS5wYXNzVGhydSkgcmV0dXJuIG5vZGU7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcclxuICAgIG5vZGVDb250ZXh0Lm5vZGVUeXBlID0gbm9kZUNvbnRleHQubm9kZVR5cGUgKyBcIkl0ZW1cIjtcclxuICAgIHJlc3VsdFtrZXldID0gbm9kZS5tYXAoZnVuY3Rpb24gKHYsIGl4KSB7XHJcbiAgICAgIG1ldGEgPSBqcmEudmlzaXROb2RlKHYsIG1jLCBub2RlQ29udGV4dCkgfHwge307XHJcbiAgICAgIHYgPSBtZXRhLm5vZGUgfHwgdjtcclxuICAgICAgcmV0dXJuIHByb2Nlc3NNZXRhKG1jLCB2LCBtZXRhLCBmdW5jdGlvbiAocmVmVmFsdWUpIHtcclxuICAgICAgICByZXN1bHRba2V5XVtpeF0gPSByZWZWYWx1ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXN1bHRba2V5XSA9IHByb2Nlc3NNZXRhKG1jLCBub2RlLCBtZXRhLCBmdW5jdGlvbiAocmVmVmFsdWUpIHtcclxuICAgICAgcmVzdWx0W2tleV0gPSByZWZWYWx1ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByZXNvbHZlRW50aXR5UmVmKG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZVJlZklkOiBzdHJpbmcpIHtcclxuICBsZXQgZW50aXR5ID0gbWMucmVmTWFwW25vZGVSZWZJZF07XHJcbiAgaWYgKGVudGl0eSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xyXG4gICAgICByZXR1cm4gbWMucmVmTWFwW25vZGVSZWZJZF07XHJcbiAgICB9O1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZW50aXR5O1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5UmVmKG1jOiBNYXBwaW5nQ29udGV4dCwgdGFyZ2V0RW50aXR5OiBhbnksIG5vZGU6IGFueSkge1xyXG4gIGxldCBub2RlSWQgPSBub2RlLl8kbWV0YS5ub2RlSWQ7XHJcbiAgaWYgKCFub2RlSWQgJiYgbm9kZS5fJG1ldGEuZXh0cmFNZXRhZGF0YSkge1xyXG4gICAgLy8gb2RhdGEgY2FzZS4gIHJlZk1hcCBpc24ndCByZWFsbHkgdXNlZCwgYnV0IGlzIHJldHVybmVkIGFzIGRhdGEucmV0cmlldmVkRW50aXRpZXMsIHNvIHdlIHBvcHVsYXRlZCBpdCBhbnl3YXkuXHJcbiAgICBub2RlSWQgPSBub2RlLl8kbWV0YS5leHRyYU1ldGFkYXRhLnVyaUtleTtcclxuICB9XHJcbiAgaWYgKG5vZGVJZCAhPSBudWxsKSB7XHJcbiAgICBtYy5yZWZNYXBbbm9kZUlkXSA9IHRhcmdldEVudGl0eTtcclxuICB9XHJcbn1cclxuXHJcbi8vIGNhbiByZXR1cm4gbnVsbCBmb3IgYSBkZWxldGVkIGVudGl0eSBpZiBpbmNsdWRlRGVsZXRlZCA9PSBmYWxzZVxyXG5mdW5jdGlvbiBtZXJnZUVudGl0eShtYzogTWFwcGluZ0NvbnRleHQsIG5vZGU6IGFueSwgbWV0YTogTm9kZU1ldGEpIHtcclxuICBub2RlLl8kbWV0YSA9IG1ldGE7XHJcbiAgbGV0IGVtID0gbWMuZW50aXR5TWFuYWdlcjtcclxuXHJcbiAgbGV0IGVudGl0eVR5cGUgPSBtZXRhLmVudGl0eVR5cGUgYXMgRW50aXR5VHlwZTtcclxuICBpZiAodHlwZW9mIChlbnRpdHlUeXBlKSA9PT0gJ3N0cmluZycpIHtcclxuICAgIGVudGl0eVR5cGUgPSBtYy5tZXRhZGF0YVN0b3JlLl9nZXRTdHJ1Y3R1cmFsVHlwZShlbnRpdHlUeXBlLCBmYWxzZSkgYXMgRW50aXR5VHlwZTtcclxuICB9XHJcbiAgbm9kZS5lbnRpdHlUeXBlID0gZW50aXR5VHlwZTtcclxuXHJcbiAgbGV0IG1lcmdlU3RyYXRlZ3kgPSBtYy5tZXJnZU9wdGlvbnMubWVyZ2VTdHJhdGVneTtcclxuICBsZXQgaXNTYXZpbmcgPSBtYy5xdWVyeSA9PSBudWxsO1xyXG5cclxuICBsZXQgZW50aXR5S2V5ID0gZW50aXR5VHlwZS5nZXRFbnRpdHlLZXlGcm9tUmF3RW50aXR5KG5vZGUsIG1jLnJhd1ZhbHVlRm4pO1xyXG4gIGxldCB0YXJnZXRFbnRpdHkgPSBlbS5maW5kRW50aXR5QnlLZXkoZW50aXR5S2V5KTtcclxuICBpZiAodGFyZ2V0RW50aXR5KSB7XHJcbiAgICBpZiAoaXNTYXZpbmcgJiYgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZS5pc0RlbGV0ZWQoKSkge1xyXG4gICAgICBlbS5kZXRhY2hFbnRpdHkodGFyZ2V0RW50aXR5KTtcclxuICAgICAgcmV0dXJuIHRhcmdldEVudGl0eTtcclxuICAgIH1cclxuICAgIGxldCB0YXJnZXRFbnRpdHlTdGF0ZSA9IHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGU7XHJcbiAgICBpZiAobWVyZ2VTdHJhdGVneSA9PT0gTWVyZ2VTdHJhdGVneS5EaXNhbGxvd2VkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkEgTWVyZ2VTdHJhdGVneSBvZiAnRGlzYWxsb3dlZCcgcHJldmVudHMgXCIgKyBlbnRpdHlLZXkudG9TdHJpbmcoKSArIFwiIGZyb20gYmVpbmcgbWVyZ2VkXCIpO1xyXG4gICAgfSBlbHNlIGlmIChtZXJnZVN0cmF0ZWd5ID09PSBNZXJnZVN0cmF0ZWd5LlNraXBNZXJnZSkge1xyXG4gICAgICB1cGRhdGVFbnRpdHlOb01lcmdlKG1jLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG1lcmdlU3RyYXRlZ3kgPT09IE1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlQ2hhbmdlc1xyXG4gICAgICAgIHx8IHRhcmdldEVudGl0eVN0YXRlLmlzVW5jaGFuZ2VkKCkpIHtcclxuICAgICAgICB1cGRhdGVFbnRpdHkobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICAgICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC53YXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChtZXRhLmV4dHJhTWV0YWRhdGEpIHtcclxuICAgICAgICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QuZXh0cmFNZXRhZGF0YSA9IG1ldGEuZXh0cmFNZXRhZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZSA9IEVudGl0eVN0YXRlLlVuY2hhbmdlZDtcclxuICAgICAgICBjbGVhck9yaWdpbmFsVmFsdWVzKHRhcmdldEVudGl0eSk7XHJcbiAgICAgICAgLy8gcHJvcGVydHlOYW1lIG5vdCBzcGVjaWZpZWQgYmVjYXVzZSBtdWx0aXBsZSBwcm9wcyBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzXHJcbiAgICAgICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5wcm9wZXJ0eUNoYW5nZWQucHVibGlzaCh7IGVudGl0eTogdGFyZ2V0RW50aXR5LCBwcm9wZXJ0eU5hbWU6IG51bGwgfSk7XHJcbiAgICAgICAgbGV0IGFjdGlvbiA9IGlzU2F2aW5nID8gRW50aXR5QWN0aW9uLk1lcmdlT25TYXZlIDogRW50aXR5QWN0aW9uLk1lcmdlT25RdWVyeTtcclxuICAgICAgICBlbS5lbnRpdHlDaGFuZ2VkLnB1Ymxpc2goeyBlbnRpdHlBY3Rpb246IGFjdGlvbiwgZW50aXR5OiB0YXJnZXRFbnRpdHkgfSk7XHJcbiAgICAgICAgLy8gdGhpcyBpcyBuZWVkZWQgdG8gaGFuZGxlIGFuIG92ZXJ3cml0ZSBvZiBhIG1vZGlmaWVkIGVudGl0eSB3aXRoIGFuIHVuY2hhbmdlZCBlbnRpdHlcclxuICAgICAgICAvLyB3aGljaCBtaWdodCBpbiB0dXJuIGNhdXNlIF9oYXNDaGFuZ2VzIHRvIGNoYW5nZS5cclxuICAgICAgICBpZiAoIXRhcmdldEVudGl0eVN0YXRlLmlzVW5jaGFuZ2VkKCkpIHtcclxuICAgICAgICAgIGVtLl9ub3RpZnlTdGF0ZUNoYW5nZSh0YXJnZXRFbnRpdHksIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRhcmdldEVudGl0eVN0YXRlID09PSBFbnRpdHlTdGF0ZS5EZWxldGVkICYmICFtYy5tZXJnZU9wdGlvbnMuaW5jbHVkZURlbGV0ZWQpIHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB1cGRhdGVFbnRpdHlOb01lcmdlKG1jLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHRhcmdldEVudGl0eSA9IGVudGl0eVR5cGUuX2NyZWF0ZUluc3RhbmNlQ29yZSgpIGFzIEVudGl0eTtcclxuXHJcbiAgICB1cGRhdGVFbnRpdHkobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcblxyXG4gICAgaWYgKG1ldGEuZXh0cmFNZXRhZGF0YSkge1xyXG4gICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmV4dHJhTWV0YWRhdGEgPSBtZXRhLmV4dHJhTWV0YWRhdGE7XHJcbiAgICB9XHJcbiAgICAvLyBlbS5fYXR0YWNoRW50aXR5Q29yZSh0YXJnZXRFbnRpdHksIEVudGl0eVN0YXRlLlVuY2hhbmdlZCwgTWVyZ2VTdHJhdGVneS5EaXNhbGxvd2VkKTtcclxuICAgIGVtLl9hdHRhY2hFbnRpdHlDb3JlKHRhcmdldEVudGl0eSwgRW50aXR5U3RhdGUuVW5jaGFuZ2VkLCBtZXJnZVN0cmF0ZWd5KTtcclxuICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3Qud2FzTG9hZGVkID0gdHJ1ZTtcclxuICAgIGVtLmVudGl0eUNoYW5nZWQucHVibGlzaCh7IGVudGl0eUFjdGlvbjogRW50aXR5QWN0aW9uLkF0dGFjaE9uUXVlcnksIGVudGl0eTogdGFyZ2V0RW50aXR5IH0pO1xyXG4gIH1cclxuICByZXR1cm4gdGFyZ2V0RW50aXR5O1xyXG59XHJcblxyXG4vLyBjb3BpZWQgZnJvbSBlbnRpdHlBc3BlY3RcclxuZnVuY3Rpb24gY2xlYXJPcmlnaW5hbFZhbHVlcyh0YXJnZXQ6IGFueSkge1xyXG4gIGxldCBhc3BlY3QgPSB0YXJnZXQuZW50aXR5QXNwZWN0IHx8IHRhcmdldC5jb21wbGV4QXNwZWN0O1xyXG4gIGFzcGVjdC5vcmlnaW5hbFZhbHVlcyA9IHt9O1xyXG4gIGxldCBzdHlwZSA9IHRhcmdldC5lbnRpdHlUeXBlIHx8IHRhcmdldC5jb21wbGV4VHlwZTtcclxuICBzdHlwZS5jb21wbGV4UHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChjcDogYW55KSB7XHJcbiAgICBsZXQgY29zID0gdGFyZ2V0LmdldFByb3BlcnR5KGNwLm5hbWUpO1xyXG4gICAgaWYgKGNwLmlzU2NhbGFyKSB7XHJcbiAgICAgIGNsZWFyT3JpZ2luYWxWYWx1ZXMoY29zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvcy5fYWNjZXB0Q2hhbmdlcygpO1xyXG4gICAgICBjb3MuZm9yRWFjaChjbGVhck9yaWdpbmFsVmFsdWVzKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIHVwZGF0ZUVudGl0eU5vTWVyZ2UobWM6IE1hcHBpbmdDb250ZXh0LCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgbm9kZTogYW55KSB7XHJcbiAgdXBkYXRlRW50aXR5UmVmKG1jLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gIC8vIHdlIHN0aWxsIG5lZWQgdG8gbWVyZ2UgcmVsYXRlZCBlbnRpdGllcyBldmVuIGlmIHRvcCBsZXZlbCBlbnRpdHkgd2Fzbid0IG1vZGlmaWVkLlxyXG4gIG5vZGUuZW50aXR5VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChucDogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgICBpZiAobnAuaXNTY2FsYXIpIHtcclxuICAgICAgbWVyZ2VSZWxhdGVkRW50aXR5Q29yZShtYywgbm9kZSwgbnApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbWVyZ2VSZWxhdGVkRW50aXRpZXNDb3JlKG1jLCBub2RlLCBucCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVwZGF0ZUVudGl0eShtYzogTWFwcGluZ0NvbnRleHQsIHRhcmdldEVudGl0eTogRW50aXR5LCBub2RlOiBhbnkpIHtcclxuICB1cGRhdGVFbnRpdHlSZWYobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgbGV0IGVudGl0eVR5cGUgPSB0YXJnZXRFbnRpdHkuZW50aXR5VHlwZTtcclxuICBlbnRpdHlUeXBlLl91cGRhdGVUYXJnZXRGcm9tUmF3KHRhcmdldEVudGl0eSwgbm9kZSwgbWMucmF3VmFsdWVGbik7XHJcblxyXG4gIGVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAobnApIHtcclxuICAgIGlmIChucC5pc1NjYWxhcikge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdHkobWMsIG5wLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbWVyZ2VSZWxhdGVkRW50aXRpZXMobWMsIG5wLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVJlbGF0ZWRFbnRpdHkobWM6IE1hcHBpbmdDb250ZXh0LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIHJhd0VudGl0eTogYW55KSB7XHJcblxyXG4gIGxldCByZWxhdGVkRW50aXR5ID0gbWVyZ2VSZWxhdGVkRW50aXR5Q29yZShtYywgcmF3RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gIGlmIChyZWxhdGVkRW50aXR5ID09IG51bGwpIHJldHVybjtcclxuICBpZiAodHlwZW9mIHJlbGF0ZWRFbnRpdHkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgIG1jLmRlZmVycmVkRm5zLnB1c2goZnVuY3Rpb24gKCkge1xyXG4gICAgICByZWxhdGVkRW50aXR5ID0gcmVsYXRlZEVudGl0eSgpO1xyXG4gICAgICB1cGRhdGVSZWxhdGVkRW50aXR5KHJlbGF0ZWRFbnRpdHksIHRhcmdldEVudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5KTtcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB1cGRhdGVSZWxhdGVkRW50aXR5KHJlbGF0ZWRFbnRpdHksIHRhcmdldEVudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lcmdlUmVsYXRlZEVudGl0aWVzKG1jOiBNYXBwaW5nQ29udGV4dCwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHksIHRhcmdldEVudGl0eTogRW50aXR5LCByYXdFbnRpdHk6IGFueSkge1xyXG4gIGxldCByZWxhdGVkRW50aXRpZXMgPSBtZXJnZVJlbGF0ZWRFbnRpdGllc0NvcmUobWMsIHJhd0VudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5KTtcclxuICBpZiAocmVsYXRlZEVudGl0aWVzID09IG51bGwpIHJldHVybjtcclxuXHJcbiAgbGV0IGludmVyc2VQcm9wZXJ0eSA9IG5hdmlnYXRpb25Qcm9wZXJ0eS5pbnZlcnNlO1xyXG4gIGlmICghaW52ZXJzZVByb3BlcnR5KSByZXR1cm47XHJcblxyXG4gIGxldCBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcyA9IHRhcmdldEVudGl0eS5nZXRQcm9wZXJ0eShuYXZpZ2F0aW9uUHJvcGVydHkubmFtZSk7XHJcbiAgb3JpZ2luYWxSZWxhdGVkRW50aXRpZXMud2FzTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgcmVsYXRlZEVudGl0aWVzLmZvckVhY2goZnVuY3Rpb24gKHJlbGF0ZWRFbnRpdHk6IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiByZWxhdGVkRW50aXR5ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIG1jLmRlZmVycmVkRm5zLnB1c2goZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJlbGF0ZWRFbnRpdHkgPSByZWxhdGVkRW50aXR5KCk7XHJcbiAgICAgICAgdXBkYXRlUmVsYXRlZEVudGl0eUluQ29sbGVjdGlvbihtYywgcmVsYXRlZEVudGl0eSwgb3JpZ2luYWxSZWxhdGVkRW50aXRpZXMsIHRhcmdldEVudGl0eSwgaW52ZXJzZVByb3BlcnR5IGFzIE5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXBkYXRlUmVsYXRlZEVudGl0eUluQ29sbGVjdGlvbihtYywgcmVsYXRlZEVudGl0eSwgb3JpZ2luYWxSZWxhdGVkRW50aXRpZXMsIHRhcmdldEVudGl0eSwgaW52ZXJzZVByb3BlcnR5IGFzIE5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lcmdlUmVsYXRlZEVudGl0eUNvcmUobWM6IE1hcHBpbmdDb250ZXh0LCByYXdFbnRpdHk6IGFueSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICBsZXQgcmVsYXRlZFJhd0VudGl0eSA9IHJhd0VudGl0eVtuYXZpZ2F0aW9uUHJvcGVydHkubmFtZU9uU2VydmVyXTtcclxuICBpZiAoIXJlbGF0ZWRSYXdFbnRpdHkpIHJldHVybiBudWxsO1xyXG5cclxuICBsZXQgcmVsYXRlZEVudGl0eSA9IG1jLnZpc2l0QW5kTWVyZ2UocmVsYXRlZFJhd0VudGl0eSwgeyBub2RlVHlwZTogXCJuYXZQcm9wXCIsIG5hdmlnYXRpb25Qcm9wZXJ0eTogbmF2aWdhdGlvblByb3BlcnR5IH0pO1xyXG4gIHJldHVybiByZWxhdGVkRW50aXR5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVJlbGF0ZWRFbnRpdGllc0NvcmUobWM6IE1hcHBpbmdDb250ZXh0LCByYXdFbnRpdHk6IGFueSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICBsZXQgcmVsYXRlZFJhd0VudGl0aWVzID0gcmF3RW50aXR5W25hdmlnYXRpb25Qcm9wZXJ0eS5uYW1lT25TZXJ2ZXJdO1xyXG4gIGlmICghcmVsYXRlZFJhd0VudGl0aWVzKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgLy8gbmVlZGVkIGlmIHdoYXQgaXMgcmV0dXJuZWQgaXMgbm90IGFuIGFycmF5IGFuZCB3ZSBleHBlY3Qgb25lIC0gdGhpcyBoYXBwZW5zIHdpdGggX19kZWZlcnJlZCBpbiBPRGF0YS5cclxuICBpZiAoIUFycmF5LmlzQXJyYXkocmVsYXRlZFJhd0VudGl0aWVzKSkge1xyXG4gICAgLy8gcmV0dXJuIG51bGw7XHJcbiAgICByZWxhdGVkUmF3RW50aXRpZXMgPSByZWxhdGVkUmF3RW50aXRpZXMucmVzdWx0czsgLy8gT0RhdGEgdjMgd2lsbCBsb29rIGxpa2UgdGhpcyB3aXRoIGFuIGV4cGFuZFxyXG4gICAgaWYgKCFyZWxhdGVkUmF3RW50aXRpZXMpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgcmVsYXRlZEVudGl0aWVzID0gbWMudmlzaXRBbmRNZXJnZShyZWxhdGVkUmF3RW50aXRpZXMsIHsgbm9kZVR5cGU6IFwibmF2UHJvcEl0ZW1cIiwgbmF2aWdhdGlvblByb3BlcnR5OiBuYXZpZ2F0aW9uUHJvcGVydHkgfSk7XHJcbiAgcmV0dXJuIHJlbGF0ZWRFbnRpdGllcztcclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlUmVsYXRlZEVudGl0eShyZWxhdGVkRW50aXR5OiBFbnRpdHksIHRhcmdldEVudGl0eTogRW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gIGlmICghcmVsYXRlZEVudGl0eSkgcmV0dXJuO1xyXG4gIGxldCBwcm9wTmFtZSA9IG5hdmlnYXRpb25Qcm9wZXJ0eS5uYW1lO1xyXG4gIGxldCBjdXJyZW50UmVsYXRlZEVudGl0eSA9IHRhcmdldEVudGl0eS5nZXRQcm9wZXJ0eShwcm9wTmFtZSk7XHJcblxyXG4gIC8vIGNoZWNrIGlmIHRoZSByZWxhdGVkIGVudGl0eSBpcyBhbHJlYWR5IGhvb2tlZCB1cFxyXG4gIGlmIChjdXJyZW50UmVsYXRlZEVudGl0eSAhPT0gcmVsYXRlZEVudGl0eSkge1xyXG4gICAgLy8gaWYgbm90IGhvb2sgdXAgYm90aCBkaXJlY3Rpb25zLlxyXG4gICAgdGFyZ2V0RW50aXR5LnNldFByb3BlcnR5KHByb3BOYW1lLCByZWxhdGVkRW50aXR5KTtcclxuICAgIGxldCBpbnZlcnNlUHJvcGVydHkgPSBuYXZpZ2F0aW9uUHJvcGVydHkuaW52ZXJzZTtcclxuICAgIGlmICghaW52ZXJzZVByb3BlcnR5KSByZXR1cm47XHJcbiAgICBpZiAoaW52ZXJzZVByb3BlcnR5LmlzU2NhbGFyKSB7XHJcbiAgICAgIHJlbGF0ZWRFbnRpdHkuc2V0UHJvcGVydHkoaW52ZXJzZVByb3BlcnR5Lm5hbWUsIHRhcmdldEVudGl0eSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgY29sbGVjdGlvbiA9IHJlbGF0ZWRFbnRpdHkuZ2V0UHJvcGVydHkoaW52ZXJzZVByb3BlcnR5Lm5hbWUpO1xyXG4gICAgICBjb2xsZWN0aW9uLnB1c2godGFyZ2V0RW50aXR5KTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVSZWxhdGVkRW50aXR5SW5Db2xsZWN0aW9uKG1jOiBNYXBwaW5nQ29udGV4dCwgcmVsYXRlZEVudGl0eTogRW50aXR5IHwgdW5kZWZpbmVkLFxyXG4gICAgcmVsYXRlZEVudGl0aWVzOiBFbnRpdHlbXSwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIGludmVyc2VQcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgaWYgKCFyZWxhdGVkRW50aXR5KSByZXR1cm47XHJcblxyXG4gIC8vIGRvbid0IHVwZGF0ZSByZWxhdGVkQ29sbGVjdGlvbiBpZiBwcmVzZXJ2ZUNoYW5nZXMgJiByZWxhdGVkRW50aXR5IGhhcyBhbiBma0NoYW5nZS5cclxuICBpZiAocmVsYXRlZEVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUgPT09IEVudGl0eVN0YXRlLk1vZGlmaWVkXHJcbiAgICAmJiBtYy5tZXJnZU9wdGlvbnMubWVyZ2VTdHJhdGVneSA9PT0gTWVyZ2VTdHJhdGVneS5QcmVzZXJ2ZUNoYW5nZXMpIHtcclxuICAgIGxldCBvcmlnVmFsdWVzID0gcmVsYXRlZEVudGl0eS5lbnRpdHlBc3BlY3Qub3JpZ2luYWxWYWx1ZXM7XHJcbiAgICBsZXQgZmtXYXNNb2RpZmllZCA9IGludmVyc2VQcm9wZXJ0eS5yZWxhdGVkRGF0YVByb3BlcnRpZXMuc29tZShmdW5jdGlvbiAoZHApIHtcclxuICAgICAgcmV0dXJuIG9yaWdWYWx1ZXNbZHAubmFtZV0gIT0gdW5kZWZpbmVkO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoZmtXYXNNb2RpZmllZCkgcmV0dXJuO1xyXG4gIH1cclxuICAvLyBjaGVjayBpZiB0aGUgcmVsYXRlZCBlbnRpdHkgaXMgYWxyZWFkeSBob29rZWQgdXBcclxuICBsZXQgdGhpc0VudGl0eSA9IHJlbGF0ZWRFbnRpdHkuZ2V0UHJvcGVydHkoaW52ZXJzZVByb3BlcnR5Lm5hbWUpO1xyXG5cclxuICBpZiAodGhpc0VudGl0eSAhPT0gdGFyZ2V0RW50aXR5KSB7XHJcbiAgICAvLyBpZiBub3QgLSBob29rIGl0IHVwLlxyXG4gICAgcmVsYXRlZEVudGl0aWVzLnB1c2gocmVsYXRlZEVudGl0eSk7XHJcbiAgICByZWxhdGVkRW50aXR5LnNldFByb3BlcnR5KGludmVyc2VQcm9wZXJ0eS5uYW1lLCB0YXJnZXRFbnRpdHkpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9tYXBwaW5nLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFHLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUcsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQixVQUFVLEVBQWtCLFlBQVksRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBc0I3Qzs7OztFQUlFO0FBQ0YsTUFBTSxPQUFPLGNBQWM7SUFpQnpCLFlBQVksTUFBNEI7UUFieEMsZUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLHFDQUFxQztRQWVwRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYztTQUN4RCxDQUFDLENBQUM7UUFFSCxlQUFlO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFD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LElBQUksQ0FBQyxDQUFDO0lBRWpFLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtRQUMvQix1QkFBdUI7UUFDdkIsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxhQUFhLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDL0Q7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNlcnZpY2VBZGFwdGVyIH0gZnJvbSAnLi9pbnRlcmZhY2UtcmVnaXN0cnknO1xyXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgSnNvblJlc3VsdHNBZGFwdGVyLCBOb2RlQ29udGV4dCwgTm9kZU1ldGEgfSBmcm9tICcuL2RhdGEtc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGl0eVN0YXRlICB9IGZyb20gJy4vZW50aXR5LXN0YXRlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uIH0gZnJvbSAnLi9lbnRpdHktYWN0aW9uJztcclxuaW1wb3J0IHsgTWV0YWRhdGFTdG9yZSwgRW50aXR5VHlwZSwgU3RydWN0dXJhbFR5cGUsIERhdGFQcm9wZXJ0eSwgTmF2aWdhdGlvblByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSAnLi9lbnRpdHktbWFuYWdlcic7XHJcbmltcG9ydCB7IE1lcmdlU3RyYXRlZ3kgfSBmcm9tICcuL3F1ZXJ5LW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eS1hc3BlY3QnO1xyXG5pbXBvcnQgeyBFbnRpdHlRdWVyeSB9IGZyb20gJy4vZW50aXR5LXF1ZXJ5JztcclxuXHJcblxyXG4vKipcclxuRm9yIHVzZSBieSBicmVlemUgcGx1Z2luIGF1dGhvcnMgb25seS4gVGhlIGNsYXNzIGlzIGZvciB1c2UgaW4gYnVpbGRpbmcgYSBbW0lEYXRhU2VydmljZUFkYXB0ZXJdXSBpbXBsZW1lbnRhdGlvbi4gXHJcbkBhZGFwdGVyIChzZWUgW1tJRGF0YVNlcnZpY2VBZGFwdGVyXV0pICAgIFxyXG5AaGlkZGVuIFxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlT3B0aW9ucyB7XHJcbiAgbWVyZ2VTdHJhdGVneTogTWVyZ2VTdHJhdGVneTtcclxuICBpbmNsdWRlRGVsZXRlZD86IGJvb2xlYW47XHJcbiAgbm9UcmFja2luZz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKiBAaGlkZGVuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwcGluZ0NvbnRleHRDb25maWcge1xyXG4gIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZTtcclxuICBxdWVyeT86IEVudGl0eVF1ZXJ5IHwgc3RyaW5nO1xyXG4gIGVudGl0eU1hbmFnZXI6IEVudGl0eU1hbmFnZXI7XHJcbiAgbWVyZ2VPcHRpb25zOiBNZXJnZU9wdGlvbnM7XHJcbn1cclxuXHJcbi8qKlxyXG5Gb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiBUaGUgY2xhc3MgaXMgZm9yIHVzZSBpbiBidWlsZGluZyBhIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dIGltcGxlbWVudGF0aW9uLiBcclxuQGFkYXB0ZXIgKHNlZSBbW0lEYXRhU2VydmljZUFkYXB0ZXJdXSkgICAgXHJcbkBoaWRkZW4gXHJcbiovXHJcbmV4cG9ydCBjbGFzcyBNYXBwaW5nQ29udGV4dCB7XHJcbiAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXHJcbiAgXyR0eXBlTmFtZTogc3RyaW5nOyAvLyBvbiBwcm90b3R5cGVcclxuXHJcbiAgcmF3VmFsdWVGbiA9IERhdGFQcm9wZXJ0eS5nZXRSYXdWYWx1ZUZyb21TZXJ2ZXI7IC8vIHRoaW5rIGFib3V0IHBhc3NpbmcgdGhpcyBpbiBsYXRlci5cclxuXHJcbiAgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlO1xyXG4gIHF1ZXJ5OiBFbnRpdHlRdWVyeSB8IHN0cmluZztcclxuICBlbnRpdHlNYW5hZ2VyOiBFbnRpdHlNYW5hZ2VyO1xyXG4gIG1lcmdlT3B0aW9uczogTWVyZ2VPcHRpb25zO1xyXG4gIGFkYXB0ZXI6IERhdGFTZXJ2aWNlQWRhcHRlcjsgIC8vIGFzc2lnbmVkIGluIHRoZSBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlci5cclxuXHJcbiAgcmVmTWFwOiBPYmplY3Q7IC8vIFRPRE9cclxuICBkZWZlcnJlZEZuczogRnVuY3Rpb25bXTsgLy8gVE9ET1xyXG4gIGpzb25SZXN1bHRzQWRhcHRlcjogSnNvblJlc3VsdHNBZGFwdGVyO1xyXG4gIG1ldGFkYXRhU3RvcmU6IE1ldGFkYXRhU3RvcmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogTWFwcGluZ0NvbnRleHRDb25maWcpIHtcclxuXHJcbiAgICBjb3JlLmV4dGVuZCh0aGlzLCBjb25maWcsIFtcclxuICAgICAgXCJxdWVyeVwiLCBcImVudGl0eU1hbmFnZXJcIiwgXCJkYXRhU2VydmljZVwiLCBcIm1lcmdlT3B0aW9uc1wiXHJcbiAgICBdKTtcclxuXHJcbiAgICAvLyBjYWxjJ2QgcHJvcHNcclxuICAgIHRoaXMucmVmTWFwID0ge307XHJcbiAgICB0aGlzLmRlZmVycmVkRm5zID0gW107XHJcbiAgICB0aGlzLmpzb25SZXN1bHRzQWRhcHRlciA9IHRoaXMuZGF0YVNlcnZpY2UuanNvblJlc3VsdHNBZGFwdGVyO1xyXG4gICAgdGhpcy5tZXRhZGF0YVN0b3JlID0gdGhpcy5lbnRpdHlNYW5hZ2VyLm1ldGFkYXRhU3RvcmU7XHJcbiAgICB0aGlzLnJhd1ZhbHVlRm4gPSBEYXRhUHJvcGVydHkuZ2V0UmF3VmFsdWVGcm9tU2VydmVyOyAvLyB0aGluayBhYm91dCBwYXNzaW5nIHRoaXMgaW4gbGF0ZXIuXHJcbiAgfVxyXG5cclxuICBnZXRVcmwoKSB7XHJcbiAgICBsZXQgcXVlcnkgPSB0aGlzLnF1ZXJ5O1xyXG4gICAgaWYgKCFxdWVyeSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJxdWVyeSBjYW5ub3QgYmUgZW1wdHlcIik7XHJcbiAgICB9XHJcbiAgICBsZXQgdXJpU3RyaW5nOiBzdHJpbmc7XHJcbiAgICBpZiAodHlwZW9mIHF1ZXJ5ID09PSAnc3RyaW5nJykge1xyXG4gICAgICB1cmlTdHJpbmcgPSBxdWVyeTtcclxuICAgIH0gZWxzZSBpZiAocXVlcnkgaW5zdGFuY2VvZiBFbnRpdHlRdWVyeSkge1xyXG4gICAgICB1cmlTdHJpbmcgPSB0aGlzLmRhdGFTZXJ2aWNlLnVyaUJ1aWxkZXIhLmJ1aWxkVXJpKHF1ZXJ5LCB0aGlzLm1ldGFkYXRhU3RvcmUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIHJlY29nbml6ZSBxdWVyeSBwYXJhbWV0ZXIgYXMgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIEVudGl0eVF1ZXJ5XCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucXVhbGlmeVVybCh1cmlTdHJpbmcpO1xyXG4gIH1cclxuXHJcbiAgdmlzaXRBbmRNZXJnZShub2RlczogYW55W10sIG5vZGVDb250ZXh0OiBhbnkpIHtcclxuICAgIGxldCBxdWVyeSA9IHRoaXMucXVlcnk7XHJcbiAgICBsZXQganJhID0gdGhpcy5qc29uUmVzdWx0c0FkYXB0ZXI7XHJcbiAgICBub2RlQ29udGV4dCA9IG5vZGVDb250ZXh0IHx8IHt9O1xyXG4gICAgbGV0IHRoYXQgPSB0aGlzO1xyXG4gICAgcmV0dXJuIGNvcmUubWFwKG5vZGVzLCBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgICBpZiAocXVlcnkgPT0gbnVsbCAmJiBub2RlLmVudGl0eUFzcGVjdCkge1xyXG4gICAgICAgIC8vIGRvbid0IGJvdGhlciBtZXJnaW5nIGEgcmVzdWx0IGZyb20gYSBzYXZlIHRoYXQgd2FzIG5vdCByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICAgICAgaWYgKG5vZGUuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGVsZXRlZCgpKSB7XHJcbiAgICAgICAgICB0aGF0LmVudGl0eU1hbmFnZXIuZGV0YWNoRW50aXR5KG5vZGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBub2RlLmVudGl0eUFzcGVjdC5hY2NlcHRDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbWV0YSA9IGpyYS52aXNpdE5vZGUobm9kZSwgdGhhdCwgbm9kZUNvbnRleHQpIHx8IHt9O1xyXG4gICAgICBub2RlID0gbWV0YS5ub2RlIHx8IG5vZGU7XHJcbiAgICAgIGlmIChxdWVyeSAmJiBub2RlQ29udGV4dC5ub2RlVHlwZSA9PT0gXCJyb290XCIgJiYgIW1ldGEuZW50aXR5VHlwZSkge1xyXG4gICAgICAgIG1ldGEuZW50aXR5VHlwZSA9IHF1ZXJ5IGluc3RhbmNlb2YgRW50aXR5UXVlcnkgJiYgIHF1ZXJ5Ll9nZXRUb0VudGl0eVR5cGUgJiYgcXVlcnkuX2dldFRvRW50aXR5VHlwZSh0aGF0Lm1ldGFkYXRhU3RvcmUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwcm9jZXNzTWV0YSh0aGF0LCBub2RlLCBtZXRhKTtcclxuICAgIH0sIHRoaXMubWVyZ2VPcHRpb25zLmluY2x1ZGVEZWxldGVkKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NEZWZlcnJlZCgpIHtcclxuICAgIGlmICh0aGlzLmRlZmVycmVkRm5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5kZWZlcnJlZEZucy5mb3JFYWNoKChmbikgPT4ge1xyXG4gICAgICAgIGZuKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5NYXBwaW5nQ29udGV4dC5wcm90b3R5cGUuXyR0eXBlTmFtZSA9IFwiTWFwcGluZ0NvbnRleHRcIjtcclxuXHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzTWV0YShtYzogTWFwcGluZ0NvbnRleHQsIG5vZGU6IGFueSwgbWV0YTogTm9kZU1ldGEsIGFzc2lnbkZuPzogKHZhbDogYW55KSA9PiB2b2lkKSB7XHJcbiAgLy8gPT0gaXMgZGVsaWJlcmF0ZSBoZXJlIGluc3RlYWQgb2YgPT09XHJcbiAgaWYgKG1ldGEuaWdub3JlIHx8IG5vZGUgPT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIGlmIChtZXRhLm5vZGVSZWZJZCkge1xyXG4gICAgbGV0IHJlZlZhbHVlID0gcmVzb2x2ZUVudGl0eVJlZihtYywgbWV0YS5ub2RlUmVmSWQpO1xyXG4gICAgaWYgKHR5cGVvZiByZWZWYWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIGFzc2lnbkZuICE9IG51bGwpIHtcclxuICAgICAgbWMuZGVmZXJyZWRGbnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgYXNzaWduRm4ocmVmVmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZGVmZXJyZWQgYW5kIHdpbGwgYmUgc2V0IGxhdGVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZlZhbHVlO1xyXG4gIH0gZWxzZSBpZiAobWV0YS5lbnRpdHlUeXBlKSB7XHJcbiAgICBsZXQgZW50aXR5VHlwZSA9IG1ldGEuZW50aXR5VHlwZTtcclxuICAgIGlmIChtYy5tZXJnZU9wdGlvbnMubm9UcmFja2luZykge1xyXG4gICAgICBub2RlID0gcHJvY2Vzc05vTWVyZ2UobWMsIGVudGl0eVR5cGUsIG5vZGUpO1xyXG4gICAgICBpZiAoZW50aXR5VHlwZS5ub1RyYWNraW5nRm4pIHtcclxuICAgICAgICBub2RlID0gZW50aXR5VHlwZS5ub1RyYWNraW5nRm4obm9kZSwgZW50aXR5VHlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1ldGEubm9kZUlkKSB7XHJcbiAgICAgICAgbWMucmVmTWFwW21ldGEubm9kZUlkXSA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZW50aXR5VHlwZS5pc0NvbXBsZXhUeXBlKSB7XHJcbiAgICAgICAgLy8gYmVjYXVzZSB3ZSBzdGlsbCBuZWVkIHRvIGRvIHNlcnZlck5hbWUgdG8gY2xpZW50IG5hbWUgcHJvY2Vzc2luZ1xyXG4gICAgICAgIHJldHVybiBwcm9jZXNzTm9NZXJnZShtYywgZW50aXR5VHlwZSwgbm9kZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG1lcmdlRW50aXR5KG1jLCBub2RlLCBtZXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcblxyXG4gICAgaWYgKCghbWV0YS5wYXNzVGhydSkgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmICEgY29yZS5pc0RhdGUobm9kZSkpIHtcclxuICAgICAgbm9kZSA9IHByb2Nlc3NBbm9uVHlwZShtYywgbm9kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRpbmcgdGhlIHJlZk1hcCBmb3IgZW50aXRpZXMgaXMgaGFuZGxlZCBieSB1cGRhdGVFbnRpdHlSZWYgZm9yIGVudGl0aWVzLlxyXG4gICAgaWYgKG1ldGEubm9kZUlkKSB7XHJcbiAgICAgIG1jLnJlZk1hcFttZXRhLm5vZGVJZF0gPSBub2RlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBwcm9jZXNzTm9NZXJnZShtYzogTWFwcGluZ0NvbnRleHQsIHN0eXBlOiBTdHJ1Y3R1cmFsVHlwZSwgbm9kZTogYW55KSB7XHJcbiAgbGV0IHJlc3VsdCA9IHt9O1xyXG5cclxuICBzdHlwZS5kYXRhUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChkcCkge1xyXG4gICAgaWYgKGRwLmlzQ29tcGxleFByb3BlcnR5KSB7XHJcbiAgICAgIHJlc3VsdFtkcC5uYW1lXSA9IGNvcmUubWFwKG5vZGVbZHAubmFtZU9uU2VydmVyXSwgKHY6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBwcm9jZXNzTm9NZXJnZShtYywgZHAuZGF0YVR5cGUgYXMgYW55LCB2KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHRbZHAubmFtZV0gPSBEYXRhVHlwZS5wYXJzZVJhd1ZhbHVlKG5vZGVbZHAubmFtZU9uU2VydmVyXSwgZHAuZGF0YVR5cGUgYXMgRGF0YVR5cGUpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAoc3R5cGUgaW5zdGFuY2VvZiBFbnRpdHlUeXBlKSAmJiBzdHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKCAobnApID0+IHtcclxuICAgIGxldCBub2RlQ29udGV4dCA9IHsgbm9kZVR5cGU6IFwibmF2UHJvcFwiLCBuYXZpZ2F0aW9uUHJvcGVydHk6IG5wIH07XHJcbiAgICB2aXNpdE5vZGUobm9kZVtucC5uYW1lT25TZXJ2ZXJdLCBtYywgbm9kZUNvbnRleHQsIHJlc3VsdCwgbnAubmFtZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NBbm9uVHlwZShtYzogTWFwcGluZ0NvbnRleHQsIG5vZGU6IGFueSkge1xyXG4gIC8vIG5vZGUgaXMgZ3VhcmFudGVlZCB0byBiZSBhbiBvYmplY3QgYnkgdGhpcyBwb2ludCwgaS5lLiBub3QgYSBzY2FsYXJcclxuICBsZXQga2V5Rm4gPSBtYy5tZXRhZGF0YVN0b3JlLm5hbWluZ0NvbnZlbnRpb24uc2VydmVyUHJvcGVydHlOYW1lVG9DbGllbnQ7XHJcbiAgbGV0IHJlc3VsdCA9IHt9O1xyXG5cclxuICBjb3JlLm9iamVjdEZvckVhY2gobm9kZSwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgIGxldCBuZXdLZXkgPSBrZXlGbihrZXkpO1xyXG4gICAgbGV0IG5vZGVDb250ZXh0ID0geyBub2RlVHlwZTogXCJhbm9uUHJvcFwiLCBwcm9wZXJ0eU5hbWU6IG5ld0tleSB9O1xyXG4gICAgdmlzaXROb2RlKHZhbHVlLCBtYywgbm9kZUNvbnRleHQsIHJlc3VsdCwgbmV3S2V5KTtcclxuICB9KTtcclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiB2aXNpdE5vZGUobm9kZTogYW55LCBtYzogTWFwcGluZ0NvbnRleHQsIG5vZGVDb250ZXh0OiBOb2RlQ29udGV4dCwgcmVzdWx0OiBPYmplY3QsIGtleTogc3RyaW5nKSB7XHJcbiAgbGV0IGpyYSA9IG1jLmpzb25SZXN1bHRzQWRhcHRlcjtcclxuICBsZXQgbWV0YSA9IGpyYS52aXNpdE5vZGUobm9kZSwgbWMsIG5vZGVDb250ZXh0KSB8fCB7fTtcclxuICAvLyBhbGxvd3MgdmlzaXROb2RlIHRvIGNoYW5nZSB0aGUgdmFsdWU7XHJcbiAgbm9kZSA9IG1ldGEubm9kZSB8fCBub2RlO1xyXG5cclxuICBpZiAobWV0YS5pZ25vcmUpIHJldHVybjtcclxuICBpZiAobWV0YS5wYXNzVGhydSkgcmV0dXJuIG5vZGU7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcclxuICAgIG5vZGVDb250ZXh0Lm5vZGVUeXBlID0gbm9kZUNvbnRleHQubm9kZVR5cGUgKyBcIkl0ZW1cIjtcclxuICAgIHJlc3VsdFtrZXldID0gbm9kZS5tYXAoZnVuY3Rpb24gKHYsIGl4KSB7XHJcbiAgICAgIG1ldGEgPSBqcmEudmlzaXROb2RlKHYsIG1jLCBub2RlQ29udGV4dCkgfHwge307XHJcbiAgICAgIHYgPSBtZXRhLm5vZGUgfHwgdjtcclxuICAgICAgcmV0dXJuIHByb2Nlc3NNZXRhKG1jLCB2LCBtZXRhLCBmdW5jdGlvbiAocmVmVmFsdWUpIHtcclxuICAgICAgICByZXN1bHRba2V5XVtpeF0gPSByZWZWYWx1ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXN1bHRba2V5XSA9IHByb2Nlc3NNZXRhKG1jLCBub2RlLCBtZXRhLCBmdW5jdGlvbiAocmVmVmFsdWUpIHtcclxuICAgICAgcmVzdWx0W2tleV0gPSByZWZWYWx1ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByZXNvbHZlRW50aXR5UmVmKG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZVJlZklkOiBzdHJpbmcpIHtcclxuICBsZXQgZW50aXR5ID0gbWMucmVmTWFwW25vZGVSZWZJZF07XHJcbiAgaWYgKGVudGl0eSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xyXG4gICAgICByZXR1cm4gbWMucmVmTWFwW25vZGVSZWZJZF07XHJcbiAgICB9O1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZW50aXR5O1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5UmVmKG1jOiBNYXBwaW5nQ29udGV4dCwgdGFyZ2V0RW50aXR5OiBhbnksIG5vZGU6IGFueSkge1xyXG4gIGxldCBub2RlSWQgPSBub2RlLl8kbWV0YS5ub2RlSWQ7XHJcbiAgaWYgKCFub2RlSWQgJiYgbm9kZS5fJG1ldGEuZXh0cmFNZXRhZGF0YSkge1xyXG4gICAgLy8gb2RhdGEgY2FzZS4gIHJlZk1hcCBpc24ndCByZWFsbHkgdXNlZCwgYnV0IGlzIHJldHVybmVkIGFzIGRhdGEucmV0cmlldmVkRW50aXRpZXMsIHNvIHdlIHBvcHVsYXRlZCBpdCBhbnl3YXkuXHJcbiAgICBub2RlSWQgPSBub2RlLl8kbWV0YS5leHRyYU1ldGFkYXRhLnVyaUtleTtcclxuICB9XHJcbiAgaWYgKG5vZGVJZCAhPSBudWxsKSB7XHJcbiAgICBtYy5yZWZNYXBbbm9kZUlkXSA9IHRhcmdldEVudGl0eTtcclxuICB9XHJcbn1cclxuXHJcbi8vIGNhbiByZXR1cm4gbnVsbCBmb3IgYSBkZWxldGVkIGVudGl0eSBpZiBpbmNsdWRlRGVsZXRlZCA9PSBmYWxzZVxyXG5mdW5jdGlvbiBtZXJnZUVudGl0eShtYzogTWFwcGluZ0NvbnRleHQsIG5vZGU6IGFueSwgbWV0YTogTm9kZU1ldGEpIHtcclxuICBub2RlLl8kbWV0YSA9IG1ldGE7XHJcbiAgbGV0IGVtID0gbWMuZW50aXR5TWFuYWdlcjtcclxuXHJcbiAgbGV0IGVudGl0eVR5cGUgPSBtZXRhLmVudGl0eVR5cGUgYXMgRW50aXR5VHlwZTtcclxuICBpZiAodHlwZW9mIChlbnRpdHlUeXBlKSA9PT0gJ3N0cmluZycpIHtcclxuICAgIGVudGl0eVR5cGUgPSBtYy5tZXRhZGF0YVN0b3JlLl9nZXRTdHJ1Y3R1cmFsVHlwZShlbnRpdHlUeXBlLCBmYWxzZSkgYXMgRW50aXR5VHlwZTtcclxuICB9XHJcbiAgbm9kZS5lbnRpdHlUeXBlID0gZW50aXR5VHlwZTtcclxuXHJcbiAgbGV0IG1lcmdlU3RyYXRlZ3kgPSBtYy5tZXJnZU9wdGlvbnMubWVyZ2VTdHJhdGVneTtcclxuICBsZXQgaXNTYXZpbmcgPSBtYy5xdWVyeSA9PSBudWxsO1xyXG5cclxuICBsZXQgZW50aXR5S2V5ID0gZW50aXR5VHlwZS5nZXRFbnRpdHlLZXlGcm9tUmF3RW50aXR5KG5vZGUsIG1jLnJhd1ZhbHVlRm4pO1xyXG4gIGxldCB0YXJnZXRFbnRpdHkgPSBlbS5nZXRFbnRpdHlCeUtleShlbnRpdHlLZXkpO1xyXG4gIGlmICh0YXJnZXRFbnRpdHkpIHtcclxuICAgIGlmIChpc1NhdmluZyAmJiB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGVsZXRlZCgpKSB7XHJcbiAgICAgIGVtLmRldGFjaEVudGl0eSh0YXJnZXRFbnRpdHkpO1xyXG4gICAgICByZXR1cm4gdGFyZ2V0RW50aXR5O1xyXG4gICAgfVxyXG4gICAgbGV0IHRhcmdldEVudGl0eVN0YXRlID0gdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICAgIGlmIChtZXJnZVN0cmF0ZWd5ID09PSBNZXJnZVN0cmF0ZWd5LkRpc2FsbG93ZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBNZXJnZVN0cmF0ZWd5IG9mICdEaXNhbGxvd2VkJyBwcmV2ZW50cyBcIiArIGVudGl0eUtleS50b1N0cmluZygpICsgXCIgZnJvbSBiZWluZyBtZXJnZWRcIik7XHJcbiAgICB9IGVsc2UgaWYgKG1lcmdlU3RyYXRlZ3kgPT09IE1lcmdlU3RyYXRlZ3kuU2tpcE1lcmdlKSB7XHJcbiAgICAgIHVwZGF0ZUVudGl0eU5vTWVyZ2UobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobWVyZ2VTdHJhdGVneSA9PT0gTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGVDaGFuZ2VzXHJcbiAgICAgICAgfHwgdGFyZ2V0RW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgICAgIHVwZGF0ZUVudGl0eShtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0Lndhc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG1ldGEuZXh0cmFNZXRhZGF0YSkge1xyXG4gICAgICAgICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5leHRyYU1ldGFkYXRhID0gbWV0YS5leHRyYU1ldGFkYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlID0gRW50aXR5U3RhdGUuVW5jaGFuZ2VkO1xyXG4gICAgICAgIGNsZWFyT3JpZ2luYWxWYWx1ZXModGFyZ2V0RW50aXR5KTtcclxuICAgICAgICAvLyBwcm9wZXJ0eU5hbWUgbm90IHNwZWNpZmllZCBiZWNhdXNlIG11bHRpcGxlIHByb3BzIEVudGl0eUNoYW5nZWRFdmVudEFyZ3NcclxuICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LnByb3BlcnR5Q2hhbmdlZC5wdWJsaXNoKHsgZW50aXR5OiB0YXJnZXRFbnRpdHksIHByb3BlcnR5TmFtZTogbnVsbCB9KTtcclxuICAgICAgICBsZXQgYWN0aW9uID0gaXNTYXZpbmcgPyBFbnRpdHlBY3Rpb24uTWVyZ2VPblNhdmUgOiBFbnRpdHlBY3Rpb24uTWVyZ2VPblF1ZXJ5O1xyXG4gICAgICAgIGVtLmVudGl0eUNoYW5nZWQucHVibGlzaCh7IGVudGl0eUFjdGlvbjogYWN0aW9uLCBlbnRpdHk6IHRhcmdldEVudGl0eSB9KTtcclxuICAgICAgICAvLyB0aGlzIGlzIG5lZWRlZCB0byBoYW5kbGUgYW4gb3ZlcndyaXRlIG9mIGEgbW9kaWZpZWQgZW50aXR5IHdpdGggYW4gdW5jaGFuZ2VkIGVudGl0eVxyXG4gICAgICAgIC8vIHdoaWNoIG1pZ2h0IGluIHR1cm4gY2F1c2UgX2hhc0NoYW5nZXMgdG8gY2hhbmdlLlxyXG4gICAgICAgIGlmICghdGFyZ2V0RW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgICAgICAgZW0uX25vdGlmeVN0YXRlQ2hhbmdlKHRhcmdldEVudGl0eSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGFyZ2V0RW50aXR5U3RhdGUgPT09IEVudGl0eVN0YXRlLkRlbGV0ZWQgJiYgIW1jLm1lcmdlT3B0aW9ucy5pbmNsdWRlRGVsZXRlZCkge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVwZGF0ZUVudGl0eU5vTWVyZ2UobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgdGFyZ2V0RW50aXR5ID0gZW50aXR5VHlwZS5fY3JlYXRlSW5zdGFuY2VDb3JlKCkgYXMgRW50aXR5O1xyXG5cclxuICAgIHVwZGF0ZUVudGl0eShtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuXHJcbiAgICBpZiAobWV0YS5leHRyYU1ldGFkYXRhKSB7XHJcbiAgICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QuZXh0cmFNZXRhZGF0YSA9IG1ldGEuZXh0cmFNZXRhZGF0YTtcclxuICAgIH1cclxuICAgIC8vIGVtLl9hdHRhY2hFbnRpdHlDb3JlKHRhcmdldEVudGl0eSwgRW50aXR5U3RhdGUuVW5jaGFuZ2VkLCBNZXJnZVN0cmF0ZWd5LkRpc2FsbG93ZWQpO1xyXG4gICAgZW0uX2F0dGFjaEVudGl0eUNvcmUodGFyZ2V0RW50aXR5LCBFbnRpdHlTdGF0ZS5VbmNoYW5nZWQsIG1lcmdlU3RyYXRlZ3kpO1xyXG4gICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC53YXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgZW0uZW50aXR5Q2hhbmdlZC5wdWJsaXNoKHsgZW50aXR5QWN0aW9uOiBFbnRpdHlBY3Rpb24uQXR0YWNoT25RdWVyeSwgZW50aXR5OiB0YXJnZXRFbnRpdHkgfSk7XHJcbiAgfVxyXG4gIHJldHVybiB0YXJnZXRFbnRpdHk7XHJcbn1cclxuXHJcbi8vIGNvcGllZCBmcm9tIGVudGl0eUFzcGVjdFxyXG5mdW5jdGlvbiBjbGVhck9yaWdpbmFsVmFsdWVzKHRhcmdldDogYW55KSB7XHJcbiAgbGV0IGFzcGVjdCA9IHRhcmdldC5lbnRpdHlBc3BlY3QgfHwgdGFyZ2V0LmNvbXBsZXhBc3BlY3Q7XHJcbiAgYXNwZWN0Lm9yaWdpbmFsVmFsdWVzID0ge307XHJcbiAgbGV0IHN0eXBlID0gdGFyZ2V0LmVudGl0eVR5cGUgfHwgdGFyZ2V0LmNvbXBsZXhUeXBlO1xyXG4gIHN0eXBlLmNvbXBsZXhQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKGNwOiBhbnkpIHtcclxuICAgIGxldCBjb3MgPSB0YXJnZXQuZ2V0UHJvcGVydHkoY3AubmFtZSk7XHJcbiAgICBpZiAoY3AuaXNTY2FsYXIpIHtcclxuICAgICAgY2xlYXJPcmlnaW5hbFZhbHVlcyhjb3MpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29zLl9hY2NlcHRDaGFuZ2VzKCk7XHJcbiAgICAgIGNvcy5mb3JFYWNoKGNsZWFyT3JpZ2luYWxWYWx1ZXMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5Tm9NZXJnZShtYzogTWFwcGluZ0NvbnRleHQsIHRhcmdldEVudGl0eTogRW50aXR5LCBub2RlOiBhbnkpIHtcclxuICB1cGRhdGVFbnRpdHlSZWYobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgLy8gd2Ugc3RpbGwgbmVlZCB0byBtZXJnZSByZWxhdGVkIGVudGl0aWVzIGV2ZW4gaWYgdG9wIGxldmVsIGVudGl0eSB3YXNuJ3QgbW9kaWZpZWQuXHJcbiAgbm9kZS5lbnRpdHlUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKG5wOiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICAgIGlmIChucC5pc1NjYWxhcikge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdHlDb3JlKG1jLCBub2RlLCBucCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdGllc0NvcmUobWMsIG5vZGUsIG5wKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5KG1jOiBNYXBwaW5nQ29udGV4dCwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIG5vZGU6IGFueSkge1xyXG4gIHVwZGF0ZUVudGl0eVJlZihtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICBsZXQgZW50aXR5VHlwZSA9IHRhcmdldEVudGl0eS5lbnRpdHlUeXBlO1xyXG4gIGVudGl0eVR5cGUuX3VwZGF0ZVRhcmdldEZyb21SYXcodGFyZ2V0RW50aXR5LCBub2RlLCBtYy5yYXdWYWx1ZUZuKTtcclxuXHJcbiAgZW50aXR5VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChucCkge1xyXG4gICAgaWYgKG5wLmlzU2NhbGFyKSB7XHJcbiAgICAgIG1lcmdlUmVsYXRlZEVudGl0eShtYywgbnAsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdGllcyhtYywgbnAsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lcmdlUmVsYXRlZEVudGl0eShtYzogTWFwcGluZ0NvbnRleHQsIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5LCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgcmF3RW50aXR5OiBhbnkpIHtcclxuXHJcbiAgbGV0IHJlbGF0ZWRFbnRpdHkgPSBtZXJnZVJlbGF0ZWRFbnRpdHlDb3JlKG1jLCByYXdFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgaWYgKHJlbGF0ZWRFbnRpdHkgPT0gbnVsbCkgcmV0dXJuO1xyXG4gIGlmICh0eXBlb2YgcmVsYXRlZEVudGl0eSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgbWMuZGVmZXJyZWRGbnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHJlbGF0ZWRFbnRpdHkgPSByZWxhdGVkRW50aXR5KCk7XHJcbiAgICAgIHVwZGF0ZVJlbGF0ZWRFbnRpdHkocmVsYXRlZEVudGl0eSwgdGFyZ2V0RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHVwZGF0ZVJlbGF0ZWRFbnRpdHkocmVsYXRlZEVudGl0eSwgdGFyZ2V0RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZWxhdGVkRW50aXRpZXMobWM6IE1hcHBpbmdDb250ZXh0LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIHJhd0VudGl0eTogYW55KSB7XHJcbiAgbGV0IHJlbGF0ZWRFbnRpdGllcyA9IG1lcmdlUmVsYXRlZEVudGl0aWVzQ29yZShtYywgcmF3RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gIGlmIChyZWxhdGVkRW50aXRpZXMgPT0gbnVsbCkgcmV0dXJuO1xyXG5cclxuICBsZXQgaW52ZXJzZVByb3BlcnR5ID0gbmF2aWdhdGlvblByb3BlcnR5LmludmVyc2U7XHJcbiAgaWYgKCFpbnZlcnNlUHJvcGVydHkpIHJldHVybjtcclxuXHJcbiAgbGV0IG9yaWdpbmFsUmVsYXRlZEVudGl0aWVzID0gdGFyZ2V0RW50aXR5LmdldFByb3BlcnR5KG5hdmlnYXRpb25Qcm9wZXJ0eS5uYW1lKTtcclxuICBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcy53YXNMb2FkZWQgPSB0cnVlO1xyXG5cclxuICByZWxhdGVkRW50aXRpZXMuZm9yRWFjaChmdW5jdGlvbiAocmVsYXRlZEVudGl0eTogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIHJlbGF0ZWRFbnRpdHkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgbWMuZGVmZXJyZWRGbnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmVsYXRlZEVudGl0eSA9IHJlbGF0ZWRFbnRpdHkoKTtcclxuICAgICAgICB1cGRhdGVSZWxhdGVkRW50aXR5SW5Db2xsZWN0aW9uKG1jLCByZWxhdGVkRW50aXR5LCBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcywgdGFyZ2V0RW50aXR5LCBpbnZlcnNlUHJvcGVydHkgYXMgTmF2aWdhdGlvblByb3BlcnR5KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cGRhdGVSZWxhdGVkRW50aXR5SW5Db2xsZWN0aW9uKG1jLCByZWxhdGVkRW50aXR5LCBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcywgdGFyZ2V0RW50aXR5LCBpbnZlcnNlUHJvcGVydHkgYXMgTmF2aWdhdGlvblByb3BlcnR5KTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZWxhdGVkRW50aXR5Q29yZShtYzogTWFwcGluZ0NvbnRleHQsIHJhd0VudGl0eTogYW55LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gIGxldCByZWxhdGVkUmF3RW50aXR5ID0gcmF3RW50aXR5W25hdmlnYXRpb25Qcm9wZXJ0eS5uYW1lT25TZXJ2ZXJdO1xyXG4gIGlmICghcmVsYXRlZFJhd0VudGl0eSkgcmV0dXJuIG51bGw7XHJcblxyXG4gIGxldCByZWxhdGVkRW50aXR5ID0gbWMudmlzaXRBbmRNZXJnZShyZWxhdGVkUmF3RW50aXR5LCB7IG5vZGVUeXBlOiBcIm5hdlByb3BcIiwgbmF2aWdhdGlvblByb3BlcnR5OiBuYXZpZ2F0aW9uUHJvcGVydHkgfSk7XHJcbiAgcmV0dXJuIHJlbGF0ZWRFbnRpdHk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lcmdlUmVsYXRlZEVudGl0aWVzQ29yZShtYzogTWFwcGluZ0NvbnRleHQsIHJhd0VudGl0eTogYW55LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gIGxldCByZWxhdGVkUmF3RW50aXRpZXMgPSByYXdFbnRpdHlbbmF2aWdhdGlvblByb3BlcnR5Lm5hbWVPblNlcnZlcl07XHJcbiAgaWYgKCFyZWxhdGVkUmF3RW50aXRpZXMpIHJldHVybiBudWxsO1xyXG5cclxuICAvLyBuZWVkZWQgaWYgd2hhdCBpcyByZXR1cm5lZCBpcyBub3QgYW4gYXJyYXkgYW5kIHdlIGV4cGVjdCBvbmUgLSB0aGlzIGhhcHBlbnMgd2l0aCBfX2RlZmVycmVkIGluIE9EYXRhLlxyXG4gIGlmICghQXJyYXkuaXNBcnJheShyZWxhdGVkUmF3RW50aXRpZXMpKSB7XHJcbiAgICAvLyByZXR1cm4gbnVsbDtcclxuICAgIHJlbGF0ZWRSYXdFbnRpdGllcyA9IHJlbGF0ZWRSYXdFbnRpdGllcy5yZXN1bHRzOyAvLyBPRGF0YSB2MyB3aWxsIGxvb2sgbGlrZSB0aGlzIHdpdGggYW4gZXhwYW5kXHJcbiAgICBpZiAoIXJlbGF0ZWRSYXdFbnRpdGllcykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCByZWxhdGVkRW50aXRpZXMgPSBtYy52aXNpdEFuZE1lcmdlKHJlbGF0ZWRSYXdFbnRpdGllcywgeyBub2RlVHlwZTogXCJuYXZQcm9wSXRlbVwiLCBuYXZpZ2F0aW9uUHJvcGVydHk6IG5hdmlnYXRpb25Qcm9wZXJ0eSB9KTtcclxuICByZXR1cm4gcmVsYXRlZEVudGl0aWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVSZWxhdGVkRW50aXR5KHJlbGF0ZWRFbnRpdHk6IEVudGl0eSwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgaWYgKCFyZWxhdGVkRW50aXR5KSByZXR1cm47XHJcbiAgbGV0IHByb3BOYW1lID0gbmF2aWdhdGlvblByb3BlcnR5Lm5hbWU7XHJcbiAgbGV0IGN1cnJlbnRSZWxhdGVkRW50aXR5ID0gdGFyZ2V0RW50aXR5LmdldFByb3BlcnR5KHByb3BOYW1lKTtcclxuXHJcbiAgLy8gY2hlY2sgaWYgdGhlIHJlbGF0ZWQgZW50aXR5IGlzIGFscmVhZHkgaG9va2VkIHVwXHJcbiAgaWYgKGN1cnJlbnRSZWxhdGVkRW50aXR5ICE9PSByZWxhdGVkRW50aXR5KSB7XHJcbiAgICAvLyBpZiBub3QgaG9vayB1cCBib3RoIGRpcmVjdGlvbnMuXHJcbiAgICB0YXJnZXRFbnRpdHkuc2V0UHJvcGVydHkocHJvcE5hbWUsIHJlbGF0ZWRFbnRpdHkpO1xyXG4gICAgbGV0IGludmVyc2VQcm9wZXJ0eSA9IG5hdmlnYXRpb25Qcm9wZXJ0eS5pbnZlcnNlO1xyXG4gICAgaWYgKCFpbnZlcnNlUHJvcGVydHkpIHJldHVybjtcclxuICAgIGlmIChpbnZlcnNlUHJvcGVydHkuaXNTY2FsYXIpIHtcclxuICAgICAgcmVsYXRlZEVudGl0eS5zZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSwgdGFyZ2V0RW50aXR5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBjb2xsZWN0aW9uID0gcmVsYXRlZEVudGl0eS5nZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSk7XHJcbiAgICAgIGNvbGxlY3Rpb24ucHVzaCh0YXJnZXRFbnRpdHkpO1xyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVwZGF0ZVJlbGF0ZWRFbnRpdHlJbkNvbGxlY3Rpb24obWM6IE1hcHBpbmdDb250ZXh0LCByZWxhdGVkRW50aXR5OiBFbnRpdHkgfCB1bmRlZmluZWQsXHJcbiAgICByZWxhdGVkRW50aXRpZXM6IEVudGl0eVtdLCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgaW52ZXJzZVByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICBpZiAoIXJlbGF0ZWRFbnRpdHkpIHJldHVybjtcclxuXHJcbiAgLy8gZG9uJ3QgdXBkYXRlIHJlbGF0ZWRDb2xsZWN0aW9uIGlmIHByZXNlcnZlQ2hhbmdlcyAmIHJlbGF0ZWRFbnRpdHkgaGFzIGFuIGZrQ2hhbmdlLlxyXG4gIGlmIChyZWxhdGVkRW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZSA9PT0gRW50aXR5U3RhdGUuTW9kaWZpZWRcclxuICAgICYmIG1jLm1lcmdlT3B0aW9ucy5tZXJnZVN0cmF0ZWd5ID09PSBNZXJnZVN0cmF0ZWd5LlByZXNlcnZlQ2hhbmdlcykge1xyXG4gICAgbGV0IG9yaWdWYWx1ZXMgPSByZWxhdGVkRW50aXR5LmVudGl0eUFzcGVjdC5vcmlnaW5hbFZhbHVlcztcclxuICAgIGxldCBma1dhc01vZGlmaWVkID0gaW52ZXJzZVByb3BlcnR5LnJlbGF0ZWREYXRhUHJvcGVydGllcy5zb21lKGZ1bmN0aW9uIChkcCkge1xyXG4gICAgICByZXR1cm4gb3JpZ1ZhbHVlc1tkcC5uYW1lXSAhPSB1bmRlZmluZWQ7XHJcbiAgICB9KTtcclxuICAgIGlmIChma1dhc01vZGlmaWVkKSByZXR1cm47XHJcbiAgfVxyXG4gIC8vIGNoZWNrIGlmIHRoZSByZWxhdGVkIGVudGl0eSBpcyBhbHJlYWR5IGhvb2tlZCB1cFxyXG4gIGxldCB0aGlzRW50aXR5ID0gcmVsYXRlZEVudGl0eS5nZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSk7XHJcblxyXG4gIGlmICh0aGlzRW50aXR5ICE9PSB0YXJnZXRFbnRpdHkpIHtcclxuICAgIC8vIGlmIG5vdCAtIGhvb2sgaXQgdXAuXHJcbiAgICByZWxhdGVkRW50aXRpZXMucHVzaChyZWxhdGVkRW50aXR5KTtcclxuICAgIHJlbGF0ZWRFbnRpdHkuc2V0UHJvcGVydHkoaW52ZXJzZVByb3BlcnR5Lm5hbWUsIHRhcmdldEVudGl0eSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19

@@ -73,3 +73,3 @@ import { AbstractDataServiceAdapter } from './abstract-data-service-adapter';

Validator: Validator,
version: "2.1.0"
version: "2.1.1"
};

@@ -86,2 +86,2 @@ /** @hidden @internal */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9icmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQW1ELE1BQU0sZ0JBQWdCLENBQUM7QUFDckksT0FBTyxFQUFFLFFBQVEsRUFBRyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXFFLE1BQU0saUJBQWlCLENBQUM7QUFDakksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFtTixNQUFNLGtCQUFrQixDQUFDO0FBQ2xRLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtLLE1BQU0sc0JBQXNCLENBQUM7QUFDek4sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FB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QyxZQUFZLEVBQUUsWUFBWTtJQUMxQiwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsYUFBYSxFQUFFLGFBQWE7SUFDNUIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxhQUFhLEVBQUUsYUFBYTtJQUM1QixLQUFLLE9BQUE7SUFDTCxTQUFTLEVBQUUsU0FBUztJQUNwQixZQUFZLEVBQUUsWUFBWTtJQUMxQixXQUFXLEVBQUUsV0FBVztJQUN4QixlQUFlLEVBQUUsZUFBZTtJQUNoQyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsU0FBUyxFQUFFLFNBQVM7SUFDcEIsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQWdCRix3QkFBd0I7QUFDeEIsSUFBSSxHQUFRLENBQUM7QUFDYixJQUFJO0lBQ0YsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7Q0FDOUQ7QUFBQyxPQUFPLENBQUMsRUFBRTtDQUVYO0FBQ0QsSUFBSSxHQUFHLEVBQUU7SUFDUCxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztDQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlcn0gZnJvbSAnLi9hYnN0cmFjdC1kYXRhLXNlcnZpY2UtYWRhcHRlcic7XHJcbmltcG9ydCB7IGFzc2VydFBhcmFtLCBhc3NlcnRDb25maWcsIFBhcmFtIH0gZnJvbSAnLi9hc3NlcnQtcGFyYW0nO1xyXG5pbXBvcnQgeyBCcmVlemVDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IEJyZWV6ZUVudW19IGZyb20gJy4vZW51bSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IENvbXBsZXhBcnJheSB9IGZyb20gJy4vY29tcGxleC1hcnJheSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlLCBEYXRhU2VydmljZUNvbmZpZywgSnNvblJlc3VsdHNBZGFwdGVyLCBKc29uUmVzdWx0c0FkYXB0ZXJDb25maWcsIE5vZGVDb250ZXh0LCBOb2RlTWV0YSB9IGZyb20gJy4vZGF0YS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb24gfSBmcm9tICcuL2VudGl0eS1hY3Rpb24nO1xyXG5pbXBvcnQgeyBFbnRpdHlBc3BlY3QsIENvbXBsZXhBc3BlY3QsIEVudGl0eSwgQ29tcGxleE9iamVjdCwgU3RydWN0dXJhbE9iamVjdCwgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi9lbnRpdHktYXNwZWN0JztcclxuaW1wb3J0IHsgRW50aXR5S2V5IH0gZnJvbSAnLi9lbnRpdHkta2V5JztcclxuaW1wb3J0IHsgRW50aXR5TWFuYWdlciwgRW50aXR5TWFuYWdlckNvbmZpZywgRW50aXR5RXJyb3IsIEVudGl0eUNoYW5nZWRFdmVudEFyZ3MsIFNhdmVDb250ZXh0LCBTYXZlQnVuZGxlLCBIdHRwUmVzcG9uc2UsIEtleU1hcHBpbmcsIFNlcnZlckVycm9yLCBTYXZlUmVzdWx0LCBRdWVyeVJlc3VsdCwgVmFsaWRhdGlvbkVycm9yc0NoYW5nZWRFdmVudEFyZ3MsIEhhc0NoYW5nZXNDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi9lbnRpdHktbWFuYWdlcic7XHJcbmltcG9ydCB7IEVudGl0eVF1ZXJ5LCBGaWx0ZXJRdWVyeU9wLCBCb29sZWFuUXVlcnlPcCwgT3JkZXJCeUNsYXVzZSwgRXhwYW5kQ2xhdXNlLCBTZWxlY3RDbGF1c2UgfSBmcm9tICcuL2VudGl0eS1xdWVyeSc7XHJcbmltcG9ydCB7IEVudGl0eVN0YXRlIH0gZnJvbSAnLi9lbnRpdHktc3RhdGUnO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VSZWdpc3RyeSwgQWpheEFkYXB0ZXIsIEFqYXhDb25maWcsIERhdGFTZXJ2aWNlQWRhcHRlciwgTW9kZWxMaWJyYXJ5QWRhcHRlciwgQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yLCBVcmlCdWlsZGVyQWRhcHRlciwgSW50ZXJmYWNlUmVnaXN0cnlDb25maWcsIEFqYXhSZXF1ZXN0SW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyZmFjZS1yZWdpc3RyeSc7XHJcbmltcG9ydCB7IEtleUdlbmVyYXRvciB9IGZyb20gJy4va2V5LWdlbmVyYXRvcic7XHJcbmltcG9ydCB7IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyB9IGZyb20gJy4vbG9jYWwtcXVlcnktY29tcGFyaXNvbi1vcHRpb25zJztcclxuaW1wb3J0IHsgTWFwcGluZ0NvbnRleHQgfSBmcm9tICcuL21hcHBpbmctY29udGV4dCc7XHJcbmltcG9ydCB7IE1ldGFkYXRhU3RvcmUsIEVudGl0eVR5cGUsIENvbXBsZXhUeXBlLCBTdHJ1Y3R1cmFsVHlwZSwgRGF0YVByb3BlcnR5LCBFbnRpdHlQcm9wZXJ0eSwgTmF2aWdhdGlvblByb3BlcnR5LCBBdXRvR2VuZXJhdGVkS2V5VHlwZSAgIH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBOYW1pbmdDb252ZW50aW9uIH0gZnJvbSAnLi9uYW1pbmctY29udmVudGlvbic7XHJcbmltcG9ydCB7IFByZWRpY2F0ZSwgVmlzaXRDb250ZXh0LCBWaXNpdG9yLCBFeHByZXNzaW9uQ29udGV4dCwgVW5hcnlQcmVkaWNhdGUsIEJpbmFyeVByZWRpY2F0ZSwgQW55QWxsUHJlZGljYXRlLCBBbmRPclByZWRpY2F0ZSwgTGl0RXhwciwgRm5FeHByLCBQcm9wRXhwciB9IGZyb20gJy4vcHJlZGljYXRlJztcclxuaW1wb3J0IHsgUXVlcnlPcHRpb25zLCAgRmV0Y2hTdHJhdGVneSwgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4vcXVlcnktb3B0aW9ucyc7XHJcbmltcG9ydCB7IFNhdmVPcHRpb25zIH0gZnJvbSAnLi9zYXZlLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRvciB9IGZyb20gJy4vdmFsaWRhdGUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uT3B0aW9ucyB9IGZyb20gJy4vdmFsaWRhdGlvbi1vcHRpb25zJztcclxuXHJcbmltcG9ydCB7IGNvbmZpZywgQmFzZUFkYXB0ZXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IGNvcmUsIENhbGxiYWNrLCBFcnJvckNhbGxiYWNrIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgbWFrZVJlbGF0aW9uQXJyYXksIG1ha2VQcmltaXRpdmVBcnJheSwgbWFrZUNvbXBsZXhBcnJheSB9IGZyb20gJy4vYXJyYXknO1xyXG5cclxuaW1wb3J0IHsgUmVsYXRpb25BcnJheSB9IGZyb20gJy4vcmVsYXRpb24tYXJyYXknO1xyXG5pbXBvcnQgeyBBcnJheUNoYW5nZWRBcmdzIH0gZnJvbSAnLi9vYnNlcnZhYmxlLWFycmF5JztcclxuZXhwb3J0IHsgQnJlZXplQ29uZmlnLCBDb21wbGV4QXJyYXksIFJlbGF0aW9uQXJyYXkgfTtcclxuXHJcbmV4cG9ydCB7XHJcbiAgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXIsXHJcbiAgQWpheEFkYXB0ZXIsXHJcbiAgQWpheENvbmZpZyxcclxuICBBamF4UmVxdWVzdEludGVyY2VwdG9yLFxyXG4gIEFuZE9yUHJlZGljYXRlLFxyXG4gIEFueUFsbFByZWRpY2F0ZSxcclxuICBBcnJheUNoYW5nZWRBcmdzLFxyXG4gIGFzc2VydENvbmZpZyxcclxuICBhc3NlcnRQYXJhbSxcclxuICBBdXRvR2VuZXJhdGVkS2V5VHlwZSxcclxuICBCYXNlQWRhcHRlcixcclxuICBCaW5hcnlQcmVkaWNhdGUsXHJcbiAgQnJlZXplRW51bSxcclxuICBCcmVlemVFdmVudCwgXHJcbiAgQ2FsbGJhY2ssXHJcbiAgQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yLFxyXG4gIENvbXBsZXhBc3BlY3QsXHJcbiAgQ29tcGxleE9iamVjdCxcclxuICBDb21wbGV4VHlwZSxcclxuICBjb25maWcsXHJcbiAgY29yZSxcclxuICBEYXRhUHJvcGVydHksXHJcbiAgRGF0YVNlcnZpY2UsXHJcbiAgRGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIERhdGFTZXJ2aWNlQ29uZmlnLFxyXG4gIERhdGFUeXBlLFxyXG4gIEVudGl0eSxcclxuICBFbnRpdHlBY3Rpb24sXHJcbiAgRW50aXR5QXNwZWN0LFxyXG4gIEVudGl0eUNoYW5nZWRFdmVudEFyZ3MsXHJcbiAgRW50aXR5RXJyb3IsXHJcbiAgRW50aXR5S2V5LFxyXG4gIEVudGl0eU1hbmFnZXIsXHJcbiAgRW50aXR5TWFuYWdlckNvbmZpZyxcclxuICBFbnRpdHlQcm9wZXJ0eSxcclxuICBFbnRpdHlRdWVyeSxcclxuICBFbnRpdHlTdGF0ZSxcclxuICBFbnRpdHlUeXBlLFxyXG4gIEVycm9yQ2FsbGJhY2ssXHJcbiAgRXhwYW5kQ2xhdXNlLFxyXG4gIEV4cHJlc3Npb25Db250ZXh0LFxyXG4gIEZldGNoU3RyYXRlZ3ksXHJcbiAgRmlsdGVyUXVlcnlPcCxcclxuICBGbkV4cHIsXHJcbiAgSGFzQ2hhbmdlc0NoYW5nZWRFdmVudEFyZ3MsXHJcbiAgSHR0cFJlc3BvbnNlLFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5LFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5Q29uZmlnLFxyXG4gIEpzb25SZXN1bHRzQWRhcHRlcixcclxuICBKc29uUmVzdWx0c0FkYXB0ZXJDb25maWcsXHJcbiAgS2V5R2VuZXJhdG9yLFxyXG4gIEtleU1hcHBpbmcsXHJcbiAgTGl0RXhwcixcclxuICBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMsXHJcbiAgbWFrZUNvbXBsZXhBcnJheSxcclxuICBtYWtlUHJpbWl0aXZlQXJyYXksXHJcbiAgbWFrZVJlbGF0aW9uQXJyYXksXHJcbiAgTWFwcGluZ0NvbnRleHQsXHJcbiAgTWVyZ2VTdHJhdGVneSxcclxuICBNZXRhZGF0YVN0b3JlLFxyXG4gIE1vZGVsTGlicmFyeUFkYXB0ZXIsXHJcbiAgTmFtaW5nQ29udmVudGlvbixcclxuICBOYXZpZ2F0aW9uUHJvcGVydHksXHJcbiAgTm9kZUNvbnRleHQsXHJcbiAgTm9kZU1ldGEsXHJcbiAgT3JkZXJCeUNsYXVzZSxcclxuICBQcmVkaWNhdGUsXHJcbiAgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIFByb3BFeHByLFxyXG4gIFF1ZXJ5T3B0aW9ucyxcclxuICBRdWVyeVJlc3VsdCxcclxuICBTYXZlQnVuZGxlLFxyXG4gIFNhdmVDb250ZXh0LFxyXG4gIFNhdmVPcHRpb25zLFxyXG4gIFNhdmVSZXN1bHQsXHJcbiAgU2VsZWN0Q2xhdXNlLFxyXG4gIFNlcnZlckVycm9yLFxyXG4gIFN0cnVjdHVyYWxPYmplY3QsXHJcbiAgU3RydWN0dXJhbFR5cGUsXHJcbiAgVW5hcnlQcmVkaWNhdGUsXHJcbiAgVXJpQnVpbGRlckFkYXB0ZXIsXHJcbiAgVmFsaWRhdGlvbkVycm9yc0NoYW5nZWRFdmVudEFyZ3MsXHJcbiAgVmFsaWRhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25PcHRpb25zLFxyXG4gIFZhbGlkYXRvcixcclxuICBWaXNpdENvbnRleHQsXHJcbiAgVmlzaXRvcixcclxufTtcclxuXHJcbi8vIGNyZWF0ZSBhIGJyZWV6ZSB2YXJpYWJsZSBoZXJlXHJcbmV4cG9ydCBjb25zdCBicmVlemUgPSB7XHJcbiAgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXI6IEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIGFzc2VydENvbmZpZzogbnVsbCBhcyBhbnksXHJcbiAgYXNzZXJ0UGFyYW06IG51bGwgYXMgYW55LFxyXG4gIEF1dG9HZW5lcmF0ZWRLZXlUeXBlOiBBdXRvR2VuZXJhdGVkS2V5VHlwZSxcclxuICBCb29sZWFuUXVlcnlPcDogQm9vbGVhblF1ZXJ5T3AsXHJcbiAgQ29tcGxleEFzcGVjdDogQ29tcGxleEFzcGVjdCxcclxuICBDb21wbGV4VHlwZTogQ29tcGxleFR5cGUsXHJcbiAgY29uZmlnOiBjb25maWcsXHJcbiAgY29yZTogY29yZSxcclxuICBEYXRhUHJvcGVydHk6IERhdGFQcm9wZXJ0eSxcclxuICBEYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgRGF0YVR5cGU6IERhdGFUeXBlLFxyXG4gIEVudGl0eUFjdGlvbjogRW50aXR5QWN0aW9uLFxyXG4gIEVudGl0eUFzcGVjdDogRW50aXR5QXNwZWN0LFxyXG4gIEVudGl0eUtleTogRW50aXR5S2V5LFxyXG4gIEVudGl0eU1hbmFnZXI6IEVudGl0eU1hbmFnZXIsXHJcbiAgRW50aXR5UXVlcnk6IEVudGl0eVF1ZXJ5LFxyXG4gIEVudGl0eVN0YXRlOiBFbnRpdHlTdGF0ZSxcclxuICBFbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxyXG4gIEV2ZW50OiBCcmVlemVFdmVudCxcclxuICBGZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LFxyXG4gIEZpbHRlclF1ZXJ5T3A6IEZpbHRlclF1ZXJ5T3AsXHJcbiAgSW50ZXJmYWNlUmVnaXN0cnk6IEludGVyZmFjZVJlZ2lzdHJ5LFxyXG4gIEpzb25SZXN1bHRzQWRhcHRlcjogSnNvblJlc3VsdHNBZGFwdGVyLFxyXG4gIEtleUdlbmVyYXRvcjogS2V5R2VuZXJhdG9yLFxyXG4gIExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9uczogTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zLFxyXG4gIG1ha2VDb21wbGV4QXJyYXk6IG1ha2VDb21wbGV4QXJyYXksXHJcbiAgbWFrZVByaW1pdGl2ZUFycmF5OiBtYWtlUHJpbWl0aXZlQXJyYXksXHJcbiAgbWFrZVJlbGF0aW9uQXJyYXk6IG1ha2VSZWxhdGlvbkFycmF5LFxyXG4gIE1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3ksXHJcbiAgTWV0YWRhdGFTdG9yZTogTWV0YWRhdGFTdG9yZSxcclxuICBOYW1pbmdDb252ZW50aW9uOiBOYW1pbmdDb252ZW50aW9uLFxyXG4gIE5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5LFxyXG4gIE9yZGVyQnlDbGF1c2U6IE9yZGVyQnlDbGF1c2UsIC8vIGZvciB0ZXN0aW5nIG9ubHlcclxuICBQYXJhbSxcclxuICBQcmVkaWNhdGU6IFByZWRpY2F0ZSxcclxuICBRdWVyeU9wdGlvbnM6IFF1ZXJ5T3B0aW9ucyxcclxuICBTYXZlT3B0aW9uczogU2F2ZU9wdGlvbnMsXHJcbiAgVmFsaWRhdGlvbkVycm9yOiBWYWxpZGF0aW9uRXJyb3IsXHJcbiAgVmFsaWRhdGlvbk9wdGlvbnM6IFZhbGlkYXRpb25PcHRpb25zLFxyXG4gIFZhbGlkYXRvcjogVmFsaWRhdG9yLFxyXG4gIHZlcnNpb246IFwiMi4xLjBcIlxyXG59O1xyXG5cclxuLy8gYnJlZXplLmFzc2VydENvbmZpZyA9IGFzc2VydENvbmZpZyBhcyBhbnk7XHJcbi8vIGJyZWV6ZS5hc3NlcnRQYXJhbSA9IGFzc2VydFBhcmFtIGFzIGFueTtcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgcHJvbWlzZXMge1xyXG4gIC8qKiBuby1vcCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGJyZWV6ZS1icmlkZ2UyLWFuZ3VsYXIgKi9cclxuICBleHBvcnQgaW50ZXJmYWNlIElQcm9taXNlU2VydmljZSB7fVxyXG59XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZGVjbGFyZSB2YXIgd2luZG93OiBhbnk7XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZGVjbGFyZSB2YXIgZ2xvYmFsOiBhbnk7XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxubGV0IHdpbjogYW55O1xyXG50cnkge1xyXG4gIHdpbiA9IHdpbmRvdyA/IHdpbmRvdyA6IChnbG9iYWwgPyBnbG9iYWwud2luZG93IDogdW5kZWZpbmVkKTtcclxufSBjYXRjaCAoZSkge1xyXG5cclxufVxyXG5pZiAod2luKSB7XHJcbiAgd2luLmJyZWV6ZSA9IGJyZWV6ZTtcclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9icmVlemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBcUIsa0JBQWtCLEVBQW1ELE1BQU0sZ0JBQWdCLENBQUM7QUFDckksT0FBTyxFQUFFLFFBQVEsRUFBRyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXFFLE1BQU0saUJBQWlCLENBQUM7QUFDakksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFtTixNQUFNLGtCQUFrQixDQUFDO0FBQ2xRLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQWtLLE1BQU0sc0JBQXNCLENBQUM7QUFDek4sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FB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QyxZQUFZLEVBQUUsWUFBWTtJQUMxQiwyQkFBMkIsRUFBRSwyQkFBMkI7SUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsYUFBYSxFQUFFLGFBQWE7SUFDNUIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN0QyxhQUFhLEVBQUUsYUFBYTtJQUM1QixLQUFLLE9BQUE7SUFDTCxTQUFTLEVBQUUsU0FBUztJQUNwQixZQUFZLEVBQUUsWUFBWTtJQUMxQixXQUFXLEVBQUUsV0FBVztJQUN4QixlQUFlLEVBQUUsZUFBZTtJQUNoQyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsU0FBUyxFQUFFLFNBQVM7SUFDcEIsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQWdCRix3QkFBd0I7QUFDeEIsSUFBSSxHQUFRLENBQUM7QUFDYixJQUFJO0lBQ0YsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7Q0FDOUQ7QUFBQyxPQUFPLENBQUMsRUFBRTtDQUVYO0FBQ0QsSUFBSSxHQUFHLEVBQUU7SUFDUCxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztDQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBBYnN0cmFjdERhdGFTZXJ2aWNlQWRhcHRlcn0gZnJvbSAnLi9hYnN0cmFjdC1kYXRhLXNlcnZpY2UtYWRhcHRlcic7XHJcbmltcG9ydCB7IGFzc2VydFBhcmFtLCBhc3NlcnRDb25maWcsIFBhcmFtIH0gZnJvbSAnLi9hc3NlcnQtcGFyYW0nO1xyXG5pbXBvcnQgeyBCcmVlemVDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IEJyZWV6ZUVudW19IGZyb20gJy4vZW51bSc7XHJcbmltcG9ydCB7IEJyZWV6ZUV2ZW50IH0gZnJvbSAnLi9ldmVudCc7XHJcbmltcG9ydCB7IENvbXBsZXhBcnJheSB9IGZyb20gJy4vY29tcGxleC1hcnJheSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlLCBEYXRhU2VydmljZUNvbmZpZywgSnNvblJlc3VsdHNBZGFwdGVyLCBKc29uUmVzdWx0c0FkYXB0ZXJDb25maWcsIE5vZGVDb250ZXh0LCBOb2RlTWV0YSB9IGZyb20gJy4vZGF0YS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb24gfSBmcm9tICcuL2VudGl0eS1hY3Rpb24nO1xyXG5pbXBvcnQgeyBFbnRpdHlBc3BlY3QsIENvbXBsZXhBc3BlY3QsIEVudGl0eSwgQ29tcGxleE9iamVjdCwgU3RydWN0dXJhbE9iamVjdCwgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi9lbnRpdHktYXNwZWN0JztcclxuaW1wb3J0IHsgRW50aXR5S2V5IH0gZnJvbSAnLi9lbnRpdHkta2V5JztcclxuaW1wb3J0IHsgRW50aXR5TWFuYWdlciwgRW50aXR5TWFuYWdlckNvbmZpZywgRW50aXR5RXJyb3IsIEVudGl0eUNoYW5nZWRFdmVudEFyZ3MsIFNhdmVDb250ZXh0LCBTYXZlQnVuZGxlLCBIdHRwUmVzcG9uc2UsIEtleU1hcHBpbmcsIFNlcnZlckVycm9yLCBTYXZlUmVzdWx0LCBRdWVyeVJlc3VsdCwgVmFsaWRhdGlvbkVycm9yc0NoYW5nZWRFdmVudEFyZ3MsIEhhc0NoYW5nZXNDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi9lbnRpdHktbWFuYWdlcic7XHJcbmltcG9ydCB7IEVudGl0eVF1ZXJ5LCBGaWx0ZXJRdWVyeU9wLCBCb29sZWFuUXVlcnlPcCwgT3JkZXJCeUNsYXVzZSwgRXhwYW5kQ2xhdXNlLCBTZWxlY3RDbGF1c2UgfSBmcm9tICcuL2VudGl0eS1xdWVyeSc7XHJcbmltcG9ydCB7IEVudGl0eVN0YXRlIH0gZnJvbSAnLi9lbnRpdHktc3RhdGUnO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VSZWdpc3RyeSwgQWpheEFkYXB0ZXIsIEFqYXhDb25maWcsIERhdGFTZXJ2aWNlQWRhcHRlciwgTW9kZWxMaWJyYXJ5QWRhcHRlciwgQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yLCBVcmlCdWlsZGVyQWRhcHRlciwgSW50ZXJmYWNlUmVnaXN0cnlDb25maWcsIEFqYXhSZXF1ZXN0SW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyZmFjZS1yZWdpc3RyeSc7XHJcbmltcG9ydCB7IEtleUdlbmVyYXRvciB9IGZyb20gJy4va2V5LWdlbmVyYXRvcic7XHJcbmltcG9ydCB7IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyB9IGZyb20gJy4vbG9jYWwtcXVlcnktY29tcGFyaXNvbi1vcHRpb25zJztcclxuaW1wb3J0IHsgTWFwcGluZ0NvbnRleHQgfSBmcm9tICcuL21hcHBpbmctY29udGV4dCc7XHJcbmltcG9ydCB7IE1ldGFkYXRhU3RvcmUsIEVudGl0eVR5cGUsIENvbXBsZXhUeXBlLCBTdHJ1Y3R1cmFsVHlwZSwgRGF0YVByb3BlcnR5LCBFbnRpdHlQcm9wZXJ0eSwgTmF2aWdhdGlvblByb3BlcnR5LCBBdXRvR2VuZXJhdGVkS2V5VHlwZSAgIH0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBOYW1pbmdDb252ZW50aW9uIH0gZnJvbSAnLi9uYW1pbmctY29udmVudGlvbic7XHJcbmltcG9ydCB7IFByZWRpY2F0ZSwgVmlzaXRDb250ZXh0LCBWaXNpdG9yLCBFeHByZXNzaW9uQ29udGV4dCwgVW5hcnlQcmVkaWNhdGUsIEJpbmFyeVByZWRpY2F0ZSwgQW55QWxsUHJlZGljYXRlLCBBbmRPclByZWRpY2F0ZSwgTGl0RXhwciwgRm5FeHByLCBQcm9wRXhwciB9IGZyb20gJy4vcHJlZGljYXRlJztcclxuaW1wb3J0IHsgUXVlcnlPcHRpb25zLCAgRmV0Y2hTdHJhdGVneSwgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4vcXVlcnktb3B0aW9ucyc7XHJcbmltcG9ydCB7IFNhdmVPcHRpb25zIH0gZnJvbSAnLi9zYXZlLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRvciB9IGZyb20gJy4vdmFsaWRhdGUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uT3B0aW9ucyB9IGZyb20gJy4vdmFsaWRhdGlvbi1vcHRpb25zJztcclxuXHJcbmltcG9ydCB7IGNvbmZpZywgQmFzZUFkYXB0ZXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IGNvcmUsIENhbGxiYWNrLCBFcnJvckNhbGxiYWNrIH0gZnJvbSAnLi9jb3JlJztcclxuaW1wb3J0IHsgbWFrZVJlbGF0aW9uQXJyYXksIG1ha2VQcmltaXRpdmVBcnJheSwgbWFrZUNvbXBsZXhBcnJheSB9IGZyb20gJy4vYXJyYXknO1xyXG5cclxuaW1wb3J0IHsgUmVsYXRpb25BcnJheSB9IGZyb20gJy4vcmVsYXRpb24tYXJyYXknO1xyXG5pbXBvcnQgeyBBcnJheUNoYW5nZWRBcmdzIH0gZnJvbSAnLi9vYnNlcnZhYmxlLWFycmF5JztcclxuZXhwb3J0IHsgQnJlZXplQ29uZmlnLCBDb21wbGV4QXJyYXksIFJlbGF0aW9uQXJyYXkgfTtcclxuXHJcbmV4cG9ydCB7XHJcbiAgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXIsXHJcbiAgQWpheEFkYXB0ZXIsXHJcbiAgQWpheENvbmZpZyxcclxuICBBamF4UmVxdWVzdEludGVyY2VwdG9yLFxyXG4gIEFuZE9yUHJlZGljYXRlLFxyXG4gIEFueUFsbFByZWRpY2F0ZSxcclxuICBBcnJheUNoYW5nZWRBcmdzLFxyXG4gIGFzc2VydENvbmZpZyxcclxuICBhc3NlcnRQYXJhbSxcclxuICBBdXRvR2VuZXJhdGVkS2V5VHlwZSxcclxuICBCYXNlQWRhcHRlcixcclxuICBCaW5hcnlQcmVkaWNhdGUsXHJcbiAgQnJlZXplRW51bSxcclxuICBCcmVlemVFdmVudCwgXHJcbiAgQ2FsbGJhY2ssXHJcbiAgQ2hhbmdlUmVxdWVzdEludGVyY2VwdG9yLFxyXG4gIENvbXBsZXhBc3BlY3QsXHJcbiAgQ29tcGxleE9iamVjdCxcclxuICBDb21wbGV4VHlwZSxcclxuICBjb25maWcsXHJcbiAgY29yZSxcclxuICBEYXRhUHJvcGVydHksXHJcbiAgRGF0YVNlcnZpY2UsXHJcbiAgRGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIERhdGFTZXJ2aWNlQ29uZmlnLFxyXG4gIERhdGFUeXBlLFxyXG4gIEVudGl0eSxcclxuICBFbnRpdHlBY3Rpb24sXHJcbiAgRW50aXR5QXNwZWN0LFxyXG4gIEVudGl0eUNoYW5nZWRFdmVudEFyZ3MsXHJcbiAgRW50aXR5RXJyb3IsXHJcbiAgRW50aXR5S2V5LFxyXG4gIEVudGl0eU1hbmFnZXIsXHJcbiAgRW50aXR5TWFuYWdlckNvbmZpZyxcclxuICBFbnRpdHlQcm9wZXJ0eSxcclxuICBFbnRpdHlRdWVyeSxcclxuICBFbnRpdHlTdGF0ZSxcclxuICBFbnRpdHlUeXBlLFxyXG4gIEVycm9yQ2FsbGJhY2ssXHJcbiAgRXhwYW5kQ2xhdXNlLFxyXG4gIEV4cHJlc3Npb25Db250ZXh0LFxyXG4gIEZldGNoU3RyYXRlZ3ksXHJcbiAgRmlsdGVyUXVlcnlPcCxcclxuICBGbkV4cHIsXHJcbiAgSGFzQ2hhbmdlc0NoYW5nZWRFdmVudEFyZ3MsXHJcbiAgSHR0cFJlc3BvbnNlLFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5LFxyXG4gIEludGVyZmFjZVJlZ2lzdHJ5Q29uZmlnLFxyXG4gIEpzb25SZXN1bHRzQWRhcHRlcixcclxuICBKc29uUmVzdWx0c0FkYXB0ZXJDb25maWcsXHJcbiAgS2V5R2VuZXJhdG9yLFxyXG4gIEtleU1hcHBpbmcsXHJcbiAgTGl0RXhwcixcclxuICBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMsXHJcbiAgbWFrZUNvbXBsZXhBcnJheSxcclxuICBtYWtlUHJpbWl0aXZlQXJyYXksXHJcbiAgbWFrZVJlbGF0aW9uQXJyYXksXHJcbiAgTWFwcGluZ0NvbnRleHQsXHJcbiAgTWVyZ2VTdHJhdGVneSxcclxuICBNZXRhZGF0YVN0b3JlLFxyXG4gIE1vZGVsTGlicmFyeUFkYXB0ZXIsXHJcbiAgTmFtaW5nQ29udmVudGlvbixcclxuICBOYXZpZ2F0aW9uUHJvcGVydHksXHJcbiAgTm9kZUNvbnRleHQsXHJcbiAgTm9kZU1ldGEsXHJcbiAgT3JkZXJCeUNsYXVzZSxcclxuICBQcmVkaWNhdGUsXHJcbiAgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzLFxyXG4gIFByb3BFeHByLFxyXG4gIFF1ZXJ5T3B0aW9ucyxcclxuICBRdWVyeVJlc3VsdCxcclxuICBTYXZlQnVuZGxlLFxyXG4gIFNhdmVDb250ZXh0LFxyXG4gIFNhdmVPcHRpb25zLFxyXG4gIFNhdmVSZXN1bHQsXHJcbiAgU2VsZWN0Q2xhdXNlLFxyXG4gIFNlcnZlckVycm9yLFxyXG4gIFN0cnVjdHVyYWxPYmplY3QsXHJcbiAgU3RydWN0dXJhbFR5cGUsXHJcbiAgVW5hcnlQcmVkaWNhdGUsXHJcbiAgVXJpQnVpbGRlckFkYXB0ZXIsXHJcbiAgVmFsaWRhdGlvbkVycm9yc0NoYW5nZWRFdmVudEFyZ3MsXHJcbiAgVmFsaWRhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25PcHRpb25zLFxyXG4gIFZhbGlkYXRvcixcclxuICBWaXNpdENvbnRleHQsXHJcbiAgVmlzaXRvcixcclxufTtcclxuXHJcbi8vIGNyZWF0ZSBhIGJyZWV6ZSB2YXJpYWJsZSBoZXJlXHJcbmV4cG9ydCBjb25zdCBicmVlemUgPSB7XHJcbiAgQWJzdHJhY3REYXRhU2VydmljZUFkYXB0ZXI6IEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLFxyXG4gIGFzc2VydENvbmZpZzogbnVsbCBhcyBhbnksXHJcbiAgYXNzZXJ0UGFyYW06IG51bGwgYXMgYW55LFxyXG4gIEF1dG9HZW5lcmF0ZWRLZXlUeXBlOiBBdXRvR2VuZXJhdGVkS2V5VHlwZSxcclxuICBCb29sZWFuUXVlcnlPcDogQm9vbGVhblF1ZXJ5T3AsXHJcbiAgQ29tcGxleEFzcGVjdDogQ29tcGxleEFzcGVjdCxcclxuICBDb21wbGV4VHlwZTogQ29tcGxleFR5cGUsXHJcbiAgY29uZmlnOiBjb25maWcsXHJcbiAgY29yZTogY29yZSxcclxuICBEYXRhUHJvcGVydHk6IERhdGFQcm9wZXJ0eSxcclxuICBEYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgRGF0YVR5cGU6IERhdGFUeXBlLFxyXG4gIEVudGl0eUFjdGlvbjogRW50aXR5QWN0aW9uLFxyXG4gIEVudGl0eUFzcGVjdDogRW50aXR5QXNwZWN0LFxyXG4gIEVudGl0eUtleTogRW50aXR5S2V5LFxyXG4gIEVudGl0eU1hbmFnZXI6IEVudGl0eU1hbmFnZXIsXHJcbiAgRW50aXR5UXVlcnk6IEVudGl0eVF1ZXJ5LFxyXG4gIEVudGl0eVN0YXRlOiBFbnRpdHlTdGF0ZSxcclxuICBFbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxyXG4gIEV2ZW50OiBCcmVlemVFdmVudCxcclxuICBGZXRjaFN0cmF0ZWd5OiBGZXRjaFN0cmF0ZWd5LFxyXG4gIEZpbHRlclF1ZXJ5T3A6IEZpbHRlclF1ZXJ5T3AsXHJcbiAgSW50ZXJmYWNlUmVnaXN0cnk6IEludGVyZmFjZVJlZ2lzdHJ5LFxyXG4gIEpzb25SZXN1bHRzQWRhcHRlcjogSnNvblJlc3VsdHNBZGFwdGVyLFxyXG4gIEtleUdlbmVyYXRvcjogS2V5R2VuZXJhdG9yLFxyXG4gIExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9uczogTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zLFxyXG4gIG1ha2VDb21wbGV4QXJyYXk6IG1ha2VDb21wbGV4QXJyYXksXHJcbiAgbWFrZVByaW1pdGl2ZUFycmF5OiBtYWtlUHJpbWl0aXZlQXJyYXksXHJcbiAgbWFrZVJlbGF0aW9uQXJyYXk6IG1ha2VSZWxhdGlvbkFycmF5LFxyXG4gIE1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3ksXHJcbiAgTWV0YWRhdGFTdG9yZTogTWV0YWRhdGFTdG9yZSxcclxuICBOYW1pbmdDb252ZW50aW9uOiBOYW1pbmdDb252ZW50aW9uLFxyXG4gIE5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5LFxyXG4gIE9yZGVyQnlDbGF1c2U6IE9yZGVyQnlDbGF1c2UsIC8vIGZvciB0ZXN0aW5nIG9ubHlcclxuICBQYXJhbSxcclxuICBQcmVkaWNhdGU6IFByZWRpY2F0ZSxcclxuICBRdWVyeU9wdGlvbnM6IFF1ZXJ5T3B0aW9ucyxcclxuICBTYXZlT3B0aW9uczogU2F2ZU9wdGlvbnMsXHJcbiAgVmFsaWRhdGlvbkVycm9yOiBWYWxpZGF0aW9uRXJyb3IsXHJcbiAgVmFsaWRhdGlvbk9wdGlvbnM6IFZhbGlkYXRpb25PcHRpb25zLFxyXG4gIFZhbGlkYXRvcjogVmFsaWRhdG9yLFxyXG4gIHZlcnNpb246IFwiMi4xLjFcIlxyXG59O1xyXG5cclxuLy8gYnJlZXplLmFzc2VydENvbmZpZyA9IGFzc2VydENvbmZpZyBhcyBhbnk7XHJcbi8vIGJyZWV6ZS5hc3NlcnRQYXJhbSA9IGFzc2VydFBhcmFtIGFzIGFueTtcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgcHJvbWlzZXMge1xyXG4gIC8qKiBuby1vcCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGJyZWV6ZS1icmlkZ2UyLWFuZ3VsYXIgKi9cclxuICBleHBvcnQgaW50ZXJmYWNlIElQcm9taXNlU2VydmljZSB7fVxyXG59XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZGVjbGFyZSB2YXIgd2luZG93OiBhbnk7XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuZGVjbGFyZSB2YXIgZ2xvYmFsOiBhbnk7XHJcblxyXG4vKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxubGV0IHdpbjogYW55O1xyXG50cnkge1xyXG4gIHdpbiA9IHdpbmRvdyA/IHdpbmRvdyA6IChnbG9iYWwgPyBnbG9iYWwud2luZG93IDogdW5kZWZpbmVkKTtcclxufSBjYXRjaCAoZSkge1xyXG5cclxufVxyXG5pZiAod2luKSB7XHJcbiAgd2luLmJyZWV6ZSA9IGJyZWV6ZTtcclxufVxyXG4iXX0=

@@ -213,3 +213,3 @@ import { core } from './core';

var entityKey = entityType.getEntityKeyFromRawEntity(node, mc.rawValueFn);
var targetEntity = em.findEntityByKey(entityKey);
var targetEntity = em.getEntityByKey(entityKey);
if (targetEntity) {

@@ -408,2 +408,2 @@ if (isSaving && targetEntity.entityAspect.entityState.isDeleted()) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9tYXBwaW5nLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFHLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUcsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQixVQUFVLEVBQWtCLFlBQVksRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBc0I3Qzs7OztFQUlFO0FBQ0Y7SUFpQkUsd0JBQVksTUFBNEI7UUFieEMsZUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLHFDQUFxQztRQWVwRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYztTQUN4RCxDQUFDLENBQUM7UUFFSCxlQUFlO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLHFDQUFxQztJQUM3RixD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QUMsSUFBSSxDQUFDLENBQUM7SUFFakUsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO1FBQy9CLHVCQUF1QjtRQUN2QixlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztLQUMvRDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU2VydmljZUFkYXB0ZXIgfSBmcm9tICcuL2ludGVyZmFjZS1yZWdpc3RyeSc7XHJcbmltcG9ydCB7IGNvcmUgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSAgfSBmcm9tICcuL2RhdGEtdHlwZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlLCBKc29uUmVzdWx0c0FkYXB0ZXIsIE5vZGVDb250ZXh0LCBOb2RlTWV0YSB9IGZyb20gJy4vZGF0YS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5U3RhdGUgIH0gZnJvbSAnLi9lbnRpdHktc3RhdGUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb24gfSBmcm9tICcuL2VudGl0eS1hY3Rpb24nO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVN0b3JlLCBFbnRpdHlUeXBlLCBTdHJ1Y3R1cmFsVHlwZSwgRGF0YVByb3BlcnR5LCBOYXZpZ2F0aW9uUHJvcGVydHkgfSBmcm9tICcuL2VudGl0eS1tZXRhZGF0YSc7XHJcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIgfSBmcm9tICcuL2VudGl0eS1tYW5hZ2VyJztcclxuaW1wb3J0IHsgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4vcXVlcnktb3B0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IEVudGl0eVF1ZXJ5IH0gZnJvbSAnLi9lbnRpdHktcXVlcnknO1xyXG5cclxuXHJcbi8qKlxyXG5Gb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiBUaGUgY2xhc3MgaXMgZm9yIHVzZSBpbiBidWlsZGluZyBhIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dIGltcGxlbWVudGF0aW9uLiBcclxuQGFkYXB0ZXIgKHNlZSBbW0lEYXRhU2VydmljZUFkYXB0ZXJdXSkgICAgXHJcbkBoaWRkZW4gXHJcbiovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VPcHRpb25zIHtcclxuICBtZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5O1xyXG4gIGluY2x1ZGVEZWxldGVkPzogYm9vbGVhbjtcclxuICBub1RyYWNraW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIEBoaWRkZW4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBNYXBwaW5nQ29udGV4dENvbmZpZyB7XHJcbiAgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlO1xyXG4gIHF1ZXJ5PzogRW50aXR5UXVlcnkgfCBzdHJpbmc7XHJcbiAgZW50aXR5TWFuYWdlcjogRW50aXR5TWFuYWdlcjtcclxuICBtZXJnZU9wdGlvbnM6IE1lcmdlT3B0aW9ucztcclxufVxyXG5cclxuLyoqXHJcbkZvciB1c2UgYnkgYnJlZXplIHBsdWdpbiBhdXRob3JzIG9ubHkuIFRoZSBjbGFzcyBpcyBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgW1tJRGF0YVNlcnZpY2VBZGFwdGVyXV0gaW1wbGVtZW50YXRpb24uIFxyXG5AYWRhcHRlciAoc2VlIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dKSAgICBcclxuQGhpZGRlbiBcclxuKi9cclxuZXhwb3J0IGNsYXNzIE1hcHBpbmdDb250ZXh0IHtcclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBfJHR5cGVOYW1lOiBzdHJpbmc7IC8vIG9uIHByb3RvdHlwZVxyXG5cclxuICByYXdWYWx1ZUZuID0gRGF0YVByb3BlcnR5LmdldFJhd1ZhbHVlRnJvbVNlcnZlcjsgLy8gdGhpbmsgYWJvdXQgcGFzc2luZyB0aGlzIGluIGxhdGVyLlxyXG5cclxuICBkYXRhU2VydmljZTogRGF0YVNlcnZpY2U7XHJcbiAgcXVlcnk6IEVudGl0eVF1ZXJ5IHwgc3RyaW5nO1xyXG4gIGVudGl0eU1hbmFnZXI6IEVudGl0eU1hbmFnZXI7XHJcbiAgbWVyZ2VPcHRpb25zOiBNZXJnZU9wdGlvbnM7XHJcbiAgYWRhcHRlcjogRGF0YVNlcnZpY2VBZGFwdGVyOyAgLy8gYXNzaWduZWQgaW4gdGhlIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLlxyXG5cclxuICByZWZNYXA6IE9iamVjdDsgLy8gVE9ET1xyXG4gIGRlZmVycmVkRm5zOiBGdW5jdGlvbltdOyAvLyBUT0RPXHJcbiAganNvblJlc3VsdHNBZGFwdGVyOiBKc29uUmVzdWx0c0FkYXB0ZXI7XHJcbiAgbWV0YWRhdGFTdG9yZTogTWV0YWRhdGFTdG9yZTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29uZmlnOiBNYXBwaW5nQ29udGV4dENvbmZpZykge1xyXG5cclxuICAgIGNvcmUuZXh0ZW5kKHRoaXMsIGNvbmZpZywgW1xyXG4gICAgICBcInF1ZXJ5XCIsIFwiZW50aXR5TWFuYWdlclwiLCBcImRhdGFTZXJ2aWNlXCIsIFwibWVyZ2VPcHRpb25zXCJcclxuICAgIF0pO1xyXG5cclxuICAgIC8vIGNhbGMnZCBwcm9wc1xyXG4gICAgdGhpcy5yZWZNYXAgPSB7fTtcclxuICAgIHRoaXMuZGVmZXJyZWRGbnMgPSBbXTtcclxuICAgIHRoaXMuanNvblJlc3VsdHNBZGFwdGVyID0gdGhpcy5kYXRhU2VydmljZS5qc29uUmVzdWx0c0FkYXB0ZXI7XHJcbiAgICB0aGlzLm1ldGFkYXRhU3RvcmUgPSB0aGlzLmVudGl0eU1hbmFnZXIubWV0YWRhdGFTdG9yZTtcclxuICAgIHRoaXMucmF3VmFsdWVGbiA9IERhdGFQcm9wZXJ0eS5nZXRSYXdWYWx1ZUZyb21TZXJ2ZXI7IC8vIHRoaW5rIGFib3V0IHBhc3NpbmcgdGhpcyBpbiBsYXRlci5cclxuICB9XHJcblxyXG4gIGdldFVybCgpIHtcclxuICAgIGxldCBxdWVyeSA9IHRoaXMucXVlcnk7XHJcbiAgICBpZiAoIXF1ZXJ5KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInF1ZXJ5IGNhbm5vdCBiZSBlbXB0eVwiKTtcclxuICAgIH1cclxuICAgIGxldCB1cmlTdHJpbmc6IHN0cmluZztcclxuICAgIGlmICh0eXBlb2YgcXVlcnkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHVyaVN0cmluZyA9IHF1ZXJ5O1xyXG4gICAgfSBlbHNlIGlmIChxdWVyeSBpbnN0YW5jZW9mIEVudGl0eVF1ZXJ5KSB7XHJcbiAgICAgIHVyaVN0cmluZyA9IHRoaXMuZGF0YVNlcnZpY2UudXJpQnVpbGRlciEuYnVpbGRVcmkocXVlcnksIHRoaXMubWV0YWRhdGFTdG9yZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmFibGUgdG8gcmVjb2duaXplIHF1ZXJ5IHBhcmFtZXRlciBhcyBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gRW50aXR5UXVlcnlcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5xdWFsaWZ5VXJsKHVyaVN0cmluZyk7XHJcbiAgfVxyXG5cclxuICB2aXNpdEFuZE1lcmdlKG5vZGVzOiBhbnlbXSwgbm9kZUNvbnRleHQ6IGFueSkge1xyXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5xdWVyeTtcclxuICAgIGxldCBqcmEgPSB0aGlzLmpzb25SZXN1bHRzQWRhcHRlcjtcclxuICAgIG5vZGVDb250ZXh0ID0gbm9kZUNvbnRleHQgfHwge307XHJcbiAgICBsZXQgdGhhdCA9IHRoaXM7XHJcbiAgICByZXR1cm4gY29yZS5tYXAobm9kZXMsIGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgIGlmIChxdWVyeSA9PSBudWxsICYmIG5vZGUuZW50aXR5QXNwZWN0KSB7XHJcbiAgICAgICAgLy8gZG9uJ3QgYm90aGVyIG1lcmdpbmcgYSByZXN1bHQgZnJvbSBhIHNhdmUgdGhhdCB3YXMgbm90IHJldHVybmVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgICAgICBpZiAobm9kZS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNEZWxldGVkKCkpIHtcclxuICAgICAgICAgIHRoYXQuZW50aXR5TWFuYWdlci5kZXRhY2hFbnRpdHkobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5vZGUuZW50aXR5QXNwZWN0LmFjY2VwdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBtZXRhID0ganJhLnZpc2l0Tm9kZShub2RlLCB0aGF0LCBub2RlQ29udGV4dCkgfHwge307XHJcbiAgICAgIG5vZGUgPSBtZXRhLm5vZGUgfHwgbm9kZTtcclxuICAgICAgaWYgKHF1ZXJ5ICYmIG5vZGVDb250ZXh0Lm5vZGVUeXBlID09PSBcInJvb3RcIiAmJiAhbWV0YS5lbnRpdHlUeXBlKSB7XHJcbiAgICAgICAgbWV0YS5lbnRpdHlUeXBlID0gcXVlcnkgaW5zdGFuY2VvZiBFbnRpdHlRdWVyeSAmJiAgcXVlcnkuX2dldFRvRW50aXR5VHlwZSAmJiBxdWVyeS5fZ2V0VG9FbnRpdHlUeXBlKHRoYXQubWV0YWRhdGFTdG9yZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHByb2Nlc3NNZXRhKHRoYXQsIG5vZGUsIG1ldGEpO1xyXG4gICAgfSwgdGhpcy5tZXJnZU9wdGlvbnMuaW5jbHVkZURlbGV0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0RlZmVycmVkKCkge1xyXG4gICAgaWYgKHRoaXMuZGVmZXJyZWRGbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRlZmVycmVkRm5zLmZvckVhY2goKGZuKSA9PiB7XHJcbiAgICAgICAgZm4oKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbk1hcHBpbmdDb250ZXh0LnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJNYXBwaW5nQ29udGV4dFwiO1xyXG5cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NNZXRhKG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZTogYW55LCBtZXRhOiBOb2RlTWV0YSwgYXNzaWduRm4/OiAodmFsOiBhbnkpID0+IHZvaWQpIHtcclxuICAvLyA9PSBpcyBkZWxpYmVyYXRlIGhlcmUgaW5zdGVhZCBvZiA9PT1cclxuICBpZiAobWV0YS5pZ25vcmUgfHwgbm9kZSA9PSBudWxsKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IGVsc2UgaWYgKG1ldGEubm9kZVJlZklkKSB7XHJcbiAgICBsZXQgcmVmVmFsdWUgPSByZXNvbHZlRW50aXR5UmVmKG1jLCBtZXRhLm5vZGVSZWZJZCk7XHJcbiAgICBpZiAodHlwZW9mIHJlZlZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiYgYXNzaWduRm4gIT0gbnVsbCkge1xyXG4gICAgICBtYy5kZWZlcnJlZEZucy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBhc3NpZ25GbihyZWZWYWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBkZWZlcnJlZCBhbmQgd2lsbCBiZSBzZXQgbGF0ZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVmVmFsdWU7XHJcbiAgfSBlbHNlIGlmIChtZXRhLmVudGl0eVR5cGUpIHtcclxuICAgIGxldCBlbnRpdHlUeXBlID0gbWV0YS5lbnRpdHlUeXBlO1xyXG4gICAgaWYgKG1jLm1lcmdlT3B0aW9ucy5ub1RyYWNraW5nKSB7XHJcbiAgICAgIG5vZGUgPSBwcm9jZXNzTm9NZXJnZShtYywgZW50aXR5VHlwZSwgbm9kZSk7XHJcbiAgICAgIGlmIChlbnRpdHlUeXBlLm5vVHJhY2tpbmdGbikge1xyXG4gICAgICAgIG5vZGUgPSBlbnRpdHlUeXBlLm5vVHJhY2tpbmdGbihub2RlLCBlbnRpdHlUeXBlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWV0YS5ub2RlSWQpIHtcclxuICAgICAgICBtYy5yZWZNYXBbbWV0YS5ub2RlSWRdID0gbm9kZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlbnRpdHlUeXBlLmlzQ29tcGxleFR5cGUpIHtcclxuICAgICAgICAvLyBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgdG8gZG8gc2VydmVyTmFtZSB0byBjbGllbnQgbmFtZSBwcm9jZXNzaW5nXHJcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NOb01lcmdlKG1jLCBlbnRpdHlUeXBlLCBub2RlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbWVyZ2VFbnRpdHkobWMsIG5vZGUsIG1ldGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuXHJcbiAgICBpZiAoKCFtZXRhLnBhc3NUaHJ1KSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgJiYgISBjb3JlLmlzRGF0ZShub2RlKSkge1xyXG4gICAgICBub2RlID0gcHJvY2Vzc0Fub25UeXBlKG1jLCBub2RlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGluZyB0aGUgcmVmTWFwIGZvciBlbnRpdGllcyBpcyBoYW5kbGVkIGJ5IHVwZGF0ZUVudGl0eVJlZiBmb3IgZW50aXRpZXMuXHJcbiAgICBpZiAobWV0YS5ub2RlSWQpIHtcclxuICAgICAgbWMucmVmTWFwW21ldGEubm9kZUlkXSA9IG5vZGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbm9kZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NOb01lcmdlKG1jOiBNYXBwaW5nQ29udGV4dCwgc3R5cGU6IFN0cnVjdHVyYWxUeXBlLCBub2RlOiBhbnkpIHtcclxuICBsZXQgcmVzdWx0ID0ge307XHJcblxyXG4gIHN0eXBlLmRhdGFQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKGRwKSB7XHJcbiAgICBpZiAoZHAuaXNDb21wbGV4UHJvcGVydHkpIHtcclxuICAgICAgcmVzdWx0W2RwLm5hbWVdID0gY29yZS5tYXAobm9kZVtkcC5uYW1lT25TZXJ2ZXJdLCAodjogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NOb01lcmdlKG1jLCBkcC5kYXRhVHlwZSBhcyBhbnksIHYpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdFtkcC5uYW1lXSA9IERhdGFUeXBlLnBhcnNlUmF3VmFsdWUobm9kZVtkcC5uYW1lT25TZXJ2ZXJdLCBkcC5kYXRhVHlwZSBhcyBEYXRhVHlwZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIChzdHlwZSBpbnN0YW5jZW9mIEVudGl0eVR5cGUpICYmIHN0eXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goIChucCkgPT4ge1xyXG4gICAgbGV0IG5vZGVDb250ZXh0ID0geyBub2RlVHlwZTogXCJuYXZQcm9wXCIsIG5hdmlnYXRpb25Qcm9wZXJ0eTogbnAgfTtcclxuICAgIHZpc2l0Tm9kZShub2RlW25wLm5hbWVPblNlcnZlcl0sIG1jLCBub2RlQ29udGV4dCwgcmVzdWx0LCBucC5uYW1lKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0Fub25UeXBlKG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZTogYW55KSB7XHJcbiAgLy8gbm9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIGFuIG9iamVjdCBieSB0aGlzIHBvaW50LCBpLmUuIG5vdCBhIHNjYWxhclxyXG4gIGxldCBrZXlGbiA9IG1jLm1ldGFkYXRhU3RvcmUubmFtaW5nQ29udmVudGlvbi5zZXJ2ZXJQcm9wZXJ0eU5hbWVUb0NsaWVudDtcclxuICBsZXQgcmVzdWx0ID0ge307XHJcblxyXG4gIGNvcmUub2JqZWN0Rm9yRWFjaChub2RlLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgbGV0IG5ld0tleSA9IGtleUZuKGtleSk7XHJcbiAgICBsZXQgbm9kZUNvbnRleHQgPSB7IG5vZGVUeXBlOiBcImFub25Qcm9wXCIsIHByb3BlcnR5TmFtZTogbmV3S2V5IH07XHJcbiAgICB2aXNpdE5vZGUodmFsdWUsIG1jLCBub2RlQ29udGV4dCwgcmVzdWx0LCBuZXdLZXkpO1xyXG4gIH0pO1xyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZpc2l0Tm9kZShub2RlOiBhbnksIG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZUNvbnRleHQ6IE5vZGVDb250ZXh0LCByZXN1bHQ6IE9iamVjdCwga2V5OiBzdHJpbmcpIHtcclxuICBsZXQganJhID0gbWMuanNvblJlc3VsdHNBZGFwdGVyO1xyXG4gIGxldCBtZXRhID0ganJhLnZpc2l0Tm9kZShub2RlLCBtYywgbm9kZUNvbnRleHQpIHx8IHt9O1xyXG4gIC8vIGFsbG93cyB2aXNpdE5vZGUgdG8gY2hhbmdlIHRoZSB2YWx1ZTtcclxuICBub2RlID0gbWV0YS5ub2RlIHx8IG5vZGU7XHJcblxyXG4gIGlmIChtZXRhLmlnbm9yZSkgcmV0dXJuO1xyXG4gIGlmIChtZXRhLnBhc3NUaHJ1KSByZXR1cm4gbm9kZTtcclxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xyXG4gICAgbm9kZUNvbnRleHQubm9kZVR5cGUgPSBub2RlQ29udGV4dC5ub2RlVHlwZSArIFwiSXRlbVwiO1xyXG4gICAgcmVzdWx0W2tleV0gPSBub2RlLm1hcChmdW5jdGlvbiAodiwgaXgpIHtcclxuICAgICAgbWV0YSA9IGpyYS52aXNpdE5vZGUodiwgbWMsIG5vZGVDb250ZXh0KSB8fCB7fTtcclxuICAgICAgdiA9IG1ldGEubm9kZSB8fCB2O1xyXG4gICAgICByZXR1cm4gcHJvY2Vzc01ldGEobWMsIHYsIG1ldGEsIGZ1bmN0aW9uIChyZWZWYWx1ZSkge1xyXG4gICAgICAgIHJlc3VsdFtrZXldW2l4XSA9IHJlZlZhbHVlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJlc3VsdFtrZXldID0gcHJvY2Vzc01ldGEobWMsIG5vZGUsIG1ldGEsIGZ1bmN0aW9uIChyZWZWYWx1ZSkge1xyXG4gICAgICByZXN1bHRba2V5XSA9IHJlZlZhbHVlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlc29sdmVFbnRpdHlSZWYobWM6IE1hcHBpbmdDb250ZXh0LCBub2RlUmVmSWQ6IHN0cmluZykge1xyXG4gIGxldCBlbnRpdHkgPSBtYy5yZWZNYXBbbm9kZVJlZklkXTtcclxuICBpZiAoZW50aXR5ID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHJldHVybiBtYy5yZWZNYXBbbm9kZVJlZklkXTtcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBlbnRpdHk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVFbnRpdHlSZWYobWM6IE1hcHBpbmdDb250ZXh0LCB0YXJnZXRFbnRpdHk6IGFueSwgbm9kZTogYW55KSB7XHJcbiAgbGV0IG5vZGVJZCA9IG5vZGUuXyRtZXRhLm5vZGVJZDtcclxuICBpZiAoIW5vZGVJZCAmJiBub2RlLl8kbWV0YS5leHRyYU1ldGFkYXRhKSB7XHJcbiAgICAvLyBvZGF0YSBjYXNlLiAgcmVmTWFwIGlzbid0IHJlYWxseSB1c2VkLCBidXQgaXMgcmV0dXJuZWQgYXMgZGF0YS5yZXRyaWV2ZWRFbnRpdGllcywgc28gd2UgcG9wdWxhdGVkIGl0IGFueXdheS5cclxuICAgIG5vZGVJZCA9IG5vZGUuXyRtZXRhLmV4dHJhTWV0YWRhdGEudXJpS2V5O1xyXG4gIH1cclxuICBpZiAobm9kZUlkICE9IG51bGwpIHtcclxuICAgIG1jLnJlZk1hcFtub2RlSWRdID0gdGFyZ2V0RW50aXR5O1xyXG4gIH1cclxufVxyXG5cclxuLy8gY2FuIHJldHVybiBudWxsIGZvciBhIGRlbGV0ZWQgZW50aXR5IGlmIGluY2x1ZGVEZWxldGVkID09IGZhbHNlXHJcbmZ1bmN0aW9uIG1lcmdlRW50aXR5KG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZTogYW55LCBtZXRhOiBOb2RlTWV0YSkge1xyXG4gIG5vZGUuXyRtZXRhID0gbWV0YTtcclxuICBsZXQgZW0gPSBtYy5lbnRpdHlNYW5hZ2VyO1xyXG5cclxuICBsZXQgZW50aXR5VHlwZSA9IG1ldGEuZW50aXR5VHlwZSBhcyBFbnRpdHlUeXBlO1xyXG4gIGlmICh0eXBlb2YgKGVudGl0eVR5cGUpID09PSAnc3RyaW5nJykge1xyXG4gICAgZW50aXR5VHlwZSA9IG1jLm1ldGFkYXRhU3RvcmUuX2dldFN0cnVjdHVyYWxUeXBlKGVudGl0eVR5cGUsIGZhbHNlKSBhcyBFbnRpdHlUeXBlO1xyXG4gIH1cclxuICBub2RlLmVudGl0eVR5cGUgPSBlbnRpdHlUeXBlO1xyXG5cclxuICBsZXQgbWVyZ2VTdHJhdGVneSA9IG1jLm1lcmdlT3B0aW9ucy5tZXJnZVN0cmF0ZWd5O1xyXG4gIGxldCBpc1NhdmluZyA9IG1jLnF1ZXJ5ID09IG51bGw7XHJcblxyXG4gIGxldCBlbnRpdHlLZXkgPSBlbnRpdHlUeXBlLmdldEVudGl0eUtleUZyb21SYXdFbnRpdHkobm9kZSwgbWMucmF3VmFsdWVGbik7XHJcbiAgbGV0IHRhcmdldEVudGl0eSA9IGVtLmZpbmRFbnRpdHlCeUtleShlbnRpdHlLZXkpO1xyXG4gIGlmICh0YXJnZXRFbnRpdHkpIHtcclxuICAgIGlmIChpc1NhdmluZyAmJiB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlLmlzRGVsZXRlZCgpKSB7XHJcbiAgICAgIGVtLmRldGFjaEVudGl0eSh0YXJnZXRFbnRpdHkpO1xyXG4gICAgICByZXR1cm4gdGFyZ2V0RW50aXR5O1xyXG4gICAgfVxyXG4gICAgbGV0IHRhcmdldEVudGl0eVN0YXRlID0gdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZTtcclxuICAgIGlmIChtZXJnZVN0cmF0ZWd5ID09PSBNZXJnZVN0cmF0ZWd5LkRpc2FsbG93ZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBNZXJnZVN0cmF0ZWd5IG9mICdEaXNhbGxvd2VkJyBwcmV2ZW50cyBcIiArIGVudGl0eUtleS50b1N0cmluZygpICsgXCIgZnJvbSBiZWluZyBtZXJnZWRcIik7XHJcbiAgICB9IGVsc2UgaWYgKG1lcmdlU3RyYXRlZ3kgPT09IE1lcmdlU3RyYXRlZ3kuU2tpcE1lcmdlKSB7XHJcbiAgICAgIHVwZGF0ZUVudGl0eU5vTWVyZ2UobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobWVyZ2VTdHJhdGVneSA9PT0gTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGVDaGFuZ2VzXHJcbiAgICAgICAgfHwgdGFyZ2V0RW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgICAgIHVwZGF0ZUVudGl0eShtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0Lndhc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG1ldGEuZXh0cmFNZXRhZGF0YSkge1xyXG4gICAgICAgICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5leHRyYU1ldGFkYXRhID0gbWV0YS5leHRyYU1ldGFkYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlID0gRW50aXR5U3RhdGUuVW5jaGFuZ2VkO1xyXG4gICAgICAgIGNsZWFyT3JpZ2luYWxWYWx1ZXModGFyZ2V0RW50aXR5KTtcclxuICAgICAgICAvLyBwcm9wZXJ0eU5hbWUgbm90IHNwZWNpZmllZCBiZWNhdXNlIG11bHRpcGxlIHByb3BzIEVudGl0eUNoYW5nZWRFdmVudEFyZ3NcclxuICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LnByb3BlcnR5Q2hhbmdlZC5wdWJsaXNoKHsgZW50aXR5OiB0YXJnZXRFbnRpdHksIHByb3BlcnR5TmFtZTogbnVsbCB9KTtcclxuICAgICAgICBsZXQgYWN0aW9uID0gaXNTYXZpbmcgPyBFbnRpdHlBY3Rpb24uTWVyZ2VPblNhdmUgOiBFbnRpdHlBY3Rpb24uTWVyZ2VPblF1ZXJ5O1xyXG4gICAgICAgIGVtLmVudGl0eUNoYW5nZWQucHVibGlzaCh7IGVudGl0eUFjdGlvbjogYWN0aW9uLCBlbnRpdHk6IHRhcmdldEVudGl0eSB9KTtcclxuICAgICAgICAvLyB0aGlzIGlzIG5lZWRlZCB0byBoYW5kbGUgYW4gb3ZlcndyaXRlIG9mIGEgbW9kaWZpZWQgZW50aXR5IHdpdGggYW4gdW5jaGFuZ2VkIGVudGl0eVxyXG4gICAgICAgIC8vIHdoaWNoIG1pZ2h0IGluIHR1cm4gY2F1c2UgX2hhc0NoYW5nZXMgdG8gY2hhbmdlLlxyXG4gICAgICAgIGlmICghdGFyZ2V0RW50aXR5U3RhdGUuaXNVbmNoYW5nZWQoKSkge1xyXG4gICAgICAgICAgZW0uX25vdGlmeVN0YXRlQ2hhbmdlKHRhcmdldEVudGl0eSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGFyZ2V0RW50aXR5U3RhdGUgPT09IEVudGl0eVN0YXRlLkRlbGV0ZWQgJiYgIW1jLm1lcmdlT3B0aW9ucy5pbmNsdWRlRGVsZXRlZCkge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVwZGF0ZUVudGl0eU5vTWVyZ2UobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgdGFyZ2V0RW50aXR5ID0gZW50aXR5VHlwZS5fY3JlYXRlSW5zdGFuY2VDb3JlKCkgYXMgRW50aXR5O1xyXG5cclxuICAgIHVwZGF0ZUVudGl0eShtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuXHJcbiAgICBpZiAobWV0YS5leHRyYU1ldGFkYXRhKSB7XHJcbiAgICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QuZXh0cmFNZXRhZGF0YSA9IG1ldGEuZXh0cmFNZXRhZGF0YTtcclxuICAgIH1cclxuICAgIC8vIGVtLl9hdHRhY2hFbnRpdHlDb3JlKHRhcmdldEVudGl0eSwgRW50aXR5U3RhdGUuVW5jaGFuZ2VkLCBNZXJnZVN0cmF0ZWd5LkRpc2FsbG93ZWQpO1xyXG4gICAgZW0uX2F0dGFjaEVudGl0eUNvcmUodGFyZ2V0RW50aXR5LCBFbnRpdHlTdGF0ZS5VbmNoYW5nZWQsIG1lcmdlU3RyYXRlZ3kpO1xyXG4gICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC53YXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgZW0uZW50aXR5Q2hhbmdlZC5wdWJsaXNoKHsgZW50aXR5QWN0aW9uOiBFbnRpdHlBY3Rpb24uQXR0YWNoT25RdWVyeSwgZW50aXR5OiB0YXJnZXRFbnRpdHkgfSk7XHJcbiAgfVxyXG4gIHJldHVybiB0YXJnZXRFbnRpdHk7XHJcbn1cclxuXHJcbi8vIGNvcGllZCBmcm9tIGVudGl0eUFzcGVjdFxyXG5mdW5jdGlvbiBjbGVhck9yaWdpbmFsVmFsdWVzKHRhcmdldDogYW55KSB7XHJcbiAgbGV0IGFzcGVjdCA9IHRhcmdldC5lbnRpdHlBc3BlY3QgfHwgdGFyZ2V0LmNvbXBsZXhBc3BlY3Q7XHJcbiAgYXNwZWN0Lm9yaWdpbmFsVmFsdWVzID0ge307XHJcbiAgbGV0IHN0eXBlID0gdGFyZ2V0LmVudGl0eVR5cGUgfHwgdGFyZ2V0LmNvbXBsZXhUeXBlO1xyXG4gIHN0eXBlLmNvbXBsZXhQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKGNwOiBhbnkpIHtcclxuICAgIGxldCBjb3MgPSB0YXJnZXQuZ2V0UHJvcGVydHkoY3AubmFtZSk7XHJcbiAgICBpZiAoY3AuaXNTY2FsYXIpIHtcclxuICAgICAgY2xlYXJPcmlnaW5hbFZhbHVlcyhjb3MpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29zLl9hY2NlcHRDaGFuZ2VzKCk7XHJcbiAgICAgIGNvcy5mb3JFYWNoKGNsZWFyT3JpZ2luYWxWYWx1ZXMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5Tm9NZXJnZShtYzogTWFwcGluZ0NvbnRleHQsIHRhcmdldEVudGl0eTogRW50aXR5LCBub2RlOiBhbnkpIHtcclxuICB1cGRhdGVFbnRpdHlSZWYobWMsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgLy8gd2Ugc3RpbGwgbmVlZCB0byBtZXJnZSByZWxhdGVkIGVudGl0aWVzIGV2ZW4gaWYgdG9wIGxldmVsIGVudGl0eSB3YXNuJ3QgbW9kaWZpZWQuXHJcbiAgbm9kZS5lbnRpdHlUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKG5wOiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICAgIGlmIChucC5pc1NjYWxhcikge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdHlDb3JlKG1jLCBub2RlLCBucCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdGllc0NvcmUobWMsIG5vZGUsIG5wKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRW50aXR5KG1jOiBNYXBwaW5nQ29udGV4dCwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIG5vZGU6IGFueSkge1xyXG4gIHVwZGF0ZUVudGl0eVJlZihtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICBsZXQgZW50aXR5VHlwZSA9IHRhcmdldEVudGl0eS5lbnRpdHlUeXBlO1xyXG4gIGVudGl0eVR5cGUuX3VwZGF0ZVRhcmdldEZyb21SYXcodGFyZ2V0RW50aXR5LCBub2RlLCBtYy5yYXdWYWx1ZUZuKTtcclxuXHJcbiAgZW50aXR5VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChucCkge1xyXG4gICAgaWYgKG5wLmlzU2NhbGFyKSB7XHJcbiAgICAgIG1lcmdlUmVsYXRlZEVudGl0eShtYywgbnAsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtZXJnZVJlbGF0ZWRFbnRpdGllcyhtYywgbnAsIHRhcmdldEVudGl0eSwgbm9kZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lcmdlUmVsYXRlZEVudGl0eShtYzogTWFwcGluZ0NvbnRleHQsIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5LCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgcmF3RW50aXR5OiBhbnkpIHtcclxuXHJcbiAgbGV0IHJlbGF0ZWRFbnRpdHkgPSBtZXJnZVJlbGF0ZWRFbnRpdHlDb3JlKG1jLCByYXdFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgaWYgKHJlbGF0ZWRFbnRpdHkgPT0gbnVsbCkgcmV0dXJuO1xyXG4gIGlmICh0eXBlb2YgcmVsYXRlZEVudGl0eSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgbWMuZGVmZXJyZWRGbnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHJlbGF0ZWRFbnRpdHkgPSByZWxhdGVkRW50aXR5KCk7XHJcbiAgICAgIHVwZGF0ZVJlbGF0ZWRFbnRpdHkocmVsYXRlZEVudGl0eSwgdGFyZ2V0RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHVwZGF0ZVJlbGF0ZWRFbnRpdHkocmVsYXRlZEVudGl0eSwgdGFyZ2V0RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZWxhdGVkRW50aXRpZXMobWM6IE1hcHBpbmdDb250ZXh0LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIHJhd0VudGl0eTogYW55KSB7XHJcbiAgbGV0IHJlbGF0ZWRFbnRpdGllcyA9IG1lcmdlUmVsYXRlZEVudGl0aWVzQ29yZShtYywgcmF3RW50aXR5LCBuYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gIGlmIChyZWxhdGVkRW50aXRpZXMgPT0gbnVsbCkgcmV0dXJuO1xyXG5cclxuICBsZXQgaW52ZXJzZVByb3BlcnR5ID0gbmF2aWdhdGlvblByb3BlcnR5LmludmVyc2U7XHJcbiAgaWYgKCFpbnZlcnNlUHJvcGVydHkpIHJldHVybjtcclxuXHJcbiAgbGV0IG9yaWdpbmFsUmVsYXRlZEVudGl0aWVzID0gdGFyZ2V0RW50aXR5LmdldFByb3BlcnR5KG5hdmlnYXRpb25Qcm9wZXJ0eS5uYW1lKTtcclxuICBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcy53YXNMb2FkZWQgPSB0cnVlO1xyXG5cclxuICByZWxhdGVkRW50aXRpZXMuZm9yRWFjaChmdW5jdGlvbiAocmVsYXRlZEVudGl0eTogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIHJlbGF0ZWRFbnRpdHkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgbWMuZGVmZXJyZWRGbnMucHVzaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmVsYXRlZEVudGl0eSA9IHJlbGF0ZWRFbnRpdHkoKTtcclxuICAgICAgICB1cGRhdGVSZWxhdGVkRW50aXR5SW5Db2xsZWN0aW9uKG1jLCByZWxhdGVkRW50aXR5LCBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcywgdGFyZ2V0RW50aXR5LCBpbnZlcnNlUHJvcGVydHkgYXMgTmF2aWdhdGlvblByb3BlcnR5KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cGRhdGVSZWxhdGVkRW50aXR5SW5Db2xsZWN0aW9uKG1jLCByZWxhdGVkRW50aXR5LCBvcmlnaW5hbFJlbGF0ZWRFbnRpdGllcywgdGFyZ2V0RW50aXR5LCBpbnZlcnNlUHJvcGVydHkgYXMgTmF2aWdhdGlvblByb3BlcnR5KTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZWxhdGVkRW50aXR5Q29yZShtYzogTWFwcGluZ0NvbnRleHQsIHJhd0VudGl0eTogYW55LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gIGxldCByZWxhdGVkUmF3RW50aXR5ID0gcmF3RW50aXR5W25hdmlnYXRpb25Qcm9wZXJ0eS5uYW1lT25TZXJ2ZXJdO1xyXG4gIGlmICghcmVsYXRlZFJhd0VudGl0eSkgcmV0dXJuIG51bGw7XHJcblxyXG4gIGxldCByZWxhdGVkRW50aXR5ID0gbWMudmlzaXRBbmRNZXJnZShyZWxhdGVkUmF3RW50aXR5LCB7IG5vZGVUeXBlOiBcIm5hdlByb3BcIiwgbmF2aWdhdGlvblByb3BlcnR5OiBuYXZpZ2F0aW9uUHJvcGVydHkgfSk7XHJcbiAgcmV0dXJuIHJlbGF0ZWRFbnRpdHk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1lcmdlUmVsYXRlZEVudGl0aWVzQ29yZShtYzogTWFwcGluZ0NvbnRleHQsIHJhd0VudGl0eTogYW55LCBuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gIGxldCByZWxhdGVkUmF3RW50aXRpZXMgPSByYXdFbnRpdHlbbmF2aWdhdGlvblByb3BlcnR5Lm5hbWVPblNlcnZlcl07XHJcbiAgaWYgKCFyZWxhdGVkUmF3RW50aXRpZXMpIHJldHVybiBudWxsO1xyXG5cclxuICAvLyBuZWVkZWQgaWYgd2hhdCBpcyByZXR1cm5lZCBpcyBub3QgYW4gYXJyYXkgYW5kIHdlIGV4cGVjdCBvbmUgLSB0aGlzIGhhcHBlbnMgd2l0aCBfX2RlZmVycmVkIGluIE9EYXRhLlxyXG4gIGlmICghQXJyYXkuaXNBcnJheShyZWxhdGVkUmF3RW50aXRpZXMpKSB7XHJcbiAgICAvLyByZXR1cm4gbnVsbDtcclxuICAgIHJlbGF0ZWRSYXdFbnRpdGllcyA9IHJlbGF0ZWRSYXdFbnRpdGllcy5yZXN1bHRzOyAvLyBPRGF0YSB2MyB3aWxsIGxvb2sgbGlrZSB0aGlzIHdpdGggYW4gZXhwYW5kXHJcbiAgICBpZiAoIXJlbGF0ZWRSYXdFbnRpdGllcykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCByZWxhdGVkRW50aXRpZXMgPSBtYy52aXNpdEFuZE1lcmdlKHJlbGF0ZWRSYXdFbnRpdGllcywgeyBub2RlVHlwZTogXCJuYXZQcm9wSXRlbVwiLCBuYXZpZ2F0aW9uUHJvcGVydHk6IG5hdmlnYXRpb25Qcm9wZXJ0eSB9KTtcclxuICByZXR1cm4gcmVsYXRlZEVudGl0aWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVSZWxhdGVkRW50aXR5KHJlbGF0ZWRFbnRpdHk6IEVudGl0eSwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgaWYgKCFyZWxhdGVkRW50aXR5KSByZXR1cm47XHJcbiAgbGV0IHByb3BOYW1lID0gbmF2aWdhdGlvblByb3BlcnR5Lm5hbWU7XHJcbiAgbGV0IGN1cnJlbnRSZWxhdGVkRW50aXR5ID0gdGFyZ2V0RW50aXR5LmdldFByb3BlcnR5KHByb3BOYW1lKTtcclxuXHJcbiAgLy8gY2hlY2sgaWYgdGhlIHJlbGF0ZWQgZW50aXR5IGlzIGFscmVhZHkgaG9va2VkIHVwXHJcbiAgaWYgKGN1cnJlbnRSZWxhdGVkRW50aXR5ICE9PSByZWxhdGVkRW50aXR5KSB7XHJcbiAgICAvLyBpZiBub3QgaG9vayB1cCBib3RoIGRpcmVjdGlvbnMuXHJcbiAgICB0YXJnZXRFbnRpdHkuc2V0UHJvcGVydHkocHJvcE5hbWUsIHJlbGF0ZWRFbnRpdHkpO1xyXG4gICAgbGV0IGludmVyc2VQcm9wZXJ0eSA9IG5hdmlnYXRpb25Qcm9wZXJ0eS5pbnZlcnNlO1xyXG4gICAgaWYgKCFpbnZlcnNlUHJvcGVydHkpIHJldHVybjtcclxuICAgIGlmIChpbnZlcnNlUHJvcGVydHkuaXNTY2FsYXIpIHtcclxuICAgICAgcmVsYXRlZEVudGl0eS5zZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSwgdGFyZ2V0RW50aXR5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBjb2xsZWN0aW9uID0gcmVsYXRlZEVudGl0eS5nZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSk7XHJcbiAgICAgIGNvbGxlY3Rpb24ucHVzaCh0YXJnZXRFbnRpdHkpO1xyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVwZGF0ZVJlbGF0ZWRFbnRpdHlJbkNvbGxlY3Rpb24obWM6IE1hcHBpbmdDb250ZXh0LCByZWxhdGVkRW50aXR5OiBFbnRpdHkgfCB1bmRlZmluZWQsXHJcbiAgICByZWxhdGVkRW50aXRpZXM6IEVudGl0eVtdLCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgaW52ZXJzZVByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICBpZiAoIXJlbGF0ZWRFbnRpdHkpIHJldHVybjtcclxuXHJcbiAgLy8gZG9uJ3QgdXBkYXRlIHJlbGF0ZWRDb2xsZWN0aW9uIGlmIHByZXNlcnZlQ2hhbmdlcyAmIHJlbGF0ZWRFbnRpdHkgaGFzIGFuIGZrQ2hhbmdlLlxyXG4gIGlmIChyZWxhdGVkRW50aXR5LmVudGl0eUFzcGVjdC5lbnRpdHlTdGF0ZSA9PT0gRW50aXR5U3RhdGUuTW9kaWZpZWRcclxuICAgICYmIG1jLm1lcmdlT3B0aW9ucy5tZXJnZVN0cmF0ZWd5ID09PSBNZXJnZVN0cmF0ZWd5LlByZXNlcnZlQ2hhbmdlcykge1xyXG4gICAgbGV0IG9yaWdWYWx1ZXMgPSByZWxhdGVkRW50aXR5LmVudGl0eUFzcGVjdC5vcmlnaW5hbFZhbHVlcztcclxuICAgIGxldCBma1dhc01vZGlmaWVkID0gaW52ZXJzZVByb3BlcnR5LnJlbGF0ZWREYXRhUHJvcGVydGllcy5zb21lKGZ1bmN0aW9uIChkcCkge1xyXG4gICAgICByZXR1cm4gb3JpZ1ZhbHVlc1tkcC5uYW1lXSAhPSB1bmRlZmluZWQ7XHJcbiAgICB9KTtcclxuICAgIGlmIChma1dhc01vZGlmaWVkKSByZXR1cm47XHJcbiAgfVxyXG4gIC8vIGNoZWNrIGlmIHRoZSByZWxhdGVkIGVudGl0eSBpcyBhbHJlYWR5IGhvb2tlZCB1cFxyXG4gIGxldCB0aGlzRW50aXR5ID0gcmVsYXRlZEVudGl0eS5nZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSk7XHJcblxyXG4gIGlmICh0aGlzRW50aXR5ICE9PSB0YXJnZXRFbnRpdHkpIHtcclxuICAgIC8vIGlmIG5vdCAtIGhvb2sgaXQgdXAuXHJcbiAgICByZWxhdGVkRW50aXRpZXMucHVzaChyZWxhdGVkRW50aXR5KTtcclxuICAgIHJlbGF0ZWRFbnRpdHkuc2V0UHJvcGVydHkoaW52ZXJzZVByb3BlcnR5Lm5hbWUsIHRhcmdldEVudGl0eSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC8iLCJzb3VyY2VzIjpbInNyYy9tYXBwaW5nLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFHLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUcsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQixVQUFVLEVBQWtCLFlBQVksRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBc0I3Qzs7OztFQUlFO0FBQ0Y7SUFpQkUsd0JBQVksTUFBNEI7UUFieEMsZUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLHFDQUFxQztRQWVwRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYztTQUN4RCxDQUFDLENBQUM7UUFFSCxlQUFlO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLHFDQUFxQztJQUM3RixD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QUMsSUFBSSxDQUFDLENBQUM7SUFFakUsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO1FBQy9CLHVCQUF1QjtRQUN2QixlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztLQUMvRDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU2VydmljZUFkYXB0ZXIgfSBmcm9tICcuL2ludGVyZmFjZS1yZWdpc3RyeSc7XHJcbmltcG9ydCB7IGNvcmUgfSBmcm9tICcuL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSAgfSBmcm9tICcuL2RhdGEtdHlwZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlLCBKc29uUmVzdWx0c0FkYXB0ZXIsIE5vZGVDb250ZXh0LCBOb2RlTWV0YSB9IGZyb20gJy4vZGF0YS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5U3RhdGUgIH0gZnJvbSAnLi9lbnRpdHktc3RhdGUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb24gfSBmcm9tICcuL2VudGl0eS1hY3Rpb24nO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVN0b3JlLCBFbnRpdHlUeXBlLCBTdHJ1Y3R1cmFsVHlwZSwgRGF0YVByb3BlcnR5LCBOYXZpZ2F0aW9uUHJvcGVydHkgfSBmcm9tICcuL2VudGl0eS1tZXRhZGF0YSc7XHJcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIgfSBmcm9tICcuL2VudGl0eS1tYW5hZ2VyJztcclxuaW1wb3J0IHsgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4vcXVlcnktb3B0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5LWFzcGVjdCc7XHJcbmltcG9ydCB7IEVudGl0eVF1ZXJ5IH0gZnJvbSAnLi9lbnRpdHktcXVlcnknO1xyXG5cclxuXHJcbi8qKlxyXG5Gb3IgdXNlIGJ5IGJyZWV6ZSBwbHVnaW4gYXV0aG9ycyBvbmx5LiBUaGUgY2xhc3MgaXMgZm9yIHVzZSBpbiBidWlsZGluZyBhIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dIGltcGxlbWVudGF0aW9uLiBcclxuQGFkYXB0ZXIgKHNlZSBbW0lEYXRhU2VydmljZUFkYXB0ZXJdXSkgICAgXHJcbkBoaWRkZW4gXHJcbiovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VPcHRpb25zIHtcclxuICBtZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5O1xyXG4gIGluY2x1ZGVEZWxldGVkPzogYm9vbGVhbjtcclxuICBub1RyYWNraW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIEBoaWRkZW4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBNYXBwaW5nQ29udGV4dENvbmZpZyB7XHJcbiAgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlO1xyXG4gIHF1ZXJ5PzogRW50aXR5UXVlcnkgfCBzdHJpbmc7XHJcbiAgZW50aXR5TWFuYWdlcjogRW50aXR5TWFuYWdlcjtcclxuICBtZXJnZU9wdGlvbnM6IE1lcmdlT3B0aW9ucztcclxufVxyXG5cclxuLyoqXHJcbkZvciB1c2UgYnkgYnJlZXplIHBsdWdpbiBhdXRob3JzIG9ubHkuIFRoZSBjbGFzcyBpcyBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgW1tJRGF0YVNlcnZpY2VBZGFwdGVyXV0gaW1wbGVtZW50YXRpb24uIFxyXG5AYWRhcHRlciAoc2VlIFtbSURhdGFTZXJ2aWNlQWRhcHRlcl1dKSAgICBcclxuQGhpZGRlbiBcclxuKi9cclxuZXhwb3J0IGNsYXNzIE1hcHBpbmdDb250ZXh0IHtcclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBfJHR5cGVOYW1lOiBzdHJpbmc7IC8vIG9uIHByb3RvdHlwZVxyXG5cclxuICByYXdWYWx1ZUZuID0gRGF0YVByb3BlcnR5LmdldFJhd1ZhbHVlRnJvbVNlcnZlcjsgLy8gdGhpbmsgYWJvdXQgcGFzc2luZyB0aGlzIGluIGxhdGVyLlxyXG5cclxuICBkYXRhU2VydmljZTogRGF0YVNlcnZpY2U7XHJcbiAgcXVlcnk6IEVudGl0eVF1ZXJ5IHwgc3RyaW5nO1xyXG4gIGVudGl0eU1hbmFnZXI6IEVudGl0eU1hbmFnZXI7XHJcbiAgbWVyZ2VPcHRpb25zOiBNZXJnZU9wdGlvbnM7XHJcbiAgYWRhcHRlcjogRGF0YVNlcnZpY2VBZGFwdGVyOyAgLy8gYXNzaWduZWQgaW4gdGhlIEFic3RyYWN0RGF0YVNlcnZpY2VBZGFwdGVyLlxyXG5cclxuICByZWZNYXA6IE9iamVjdDsgLy8gVE9ET1xyXG4gIGRlZmVycmVkRm5zOiBGdW5jdGlvbltdOyAvLyBUT0RPXHJcbiAganNvblJlc3VsdHNBZGFwdGVyOiBKc29uUmVzdWx0c0FkYXB0ZXI7XHJcbiAgbWV0YWRhdGFTdG9yZTogTWV0YWRhdGFTdG9yZTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29uZmlnOiBNYXBwaW5nQ29udGV4dENvbmZpZykge1xyXG5cclxuICAgIGNvcmUuZXh0ZW5kKHRoaXMsIGNvbmZpZywgW1xyXG4gICAgICBcInF1ZXJ5XCIsIFwiZW50aXR5TWFuYWdlclwiLCBcImRhdGFTZXJ2aWNlXCIsIFwibWVyZ2VPcHRpb25zXCJcclxuICAgIF0pO1xyXG5cclxuICAgIC8vIGNhbGMnZCBwcm9wc1xyXG4gICAgdGhpcy5yZWZNYXAgPSB7fTtcclxuICAgIHRoaXMuZGVmZXJyZWRGbnMgPSBbXTtcclxuICAgIHRoaXMuanNvblJlc3VsdHNBZGFwdGVyID0gdGhpcy5kYXRhU2VydmljZS5qc29uUmVzdWx0c0FkYXB0ZXI7XHJcbiAgICB0aGlzLm1ldGFkYXRhU3RvcmUgPSB0aGlzLmVudGl0eU1hbmFnZXIubWV0YWRhdGFTdG9yZTtcclxuICAgIHRoaXMucmF3VmFsdWVGbiA9IERhdGFQcm9wZXJ0eS5nZXRSYXdWYWx1ZUZyb21TZXJ2ZXI7IC8vIHRoaW5rIGFib3V0IHBhc3NpbmcgdGhpcyBpbiBsYXRlci5cclxuICB9XHJcblxyXG4gIGdldFVybCgpIHtcclxuICAgIGxldCBxdWVyeSA9IHRoaXMucXVlcnk7XHJcbiAgICBpZiAoIXF1ZXJ5KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInF1ZXJ5IGNhbm5vdCBiZSBlbXB0eVwiKTtcclxuICAgIH1cclxuICAgIGxldCB1cmlTdHJpbmc6IHN0cmluZztcclxuICAgIGlmICh0eXBlb2YgcXVlcnkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHVyaVN0cmluZyA9IHF1ZXJ5O1xyXG4gICAgfSBlbHNlIGlmIChxdWVyeSBpbnN0YW5jZW9mIEVudGl0eVF1ZXJ5KSB7XHJcbiAgICAgIHVyaVN0cmluZyA9IHRoaXMuZGF0YVNlcnZpY2UudXJpQnVpbGRlciEuYnVpbGRVcmkocXVlcnksIHRoaXMubWV0YWRhdGFTdG9yZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmFibGUgdG8gcmVjb2duaXplIHF1ZXJ5IHBhcmFtZXRlciBhcyBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gRW50aXR5UXVlcnlcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5xdWFsaWZ5VXJsKHVyaVN0cmluZyk7XHJcbiAgfVxyXG5cclxuICB2aXNpdEFuZE1lcmdlKG5vZGVzOiBhbnlbXSwgbm9kZUNvbnRleHQ6IGFueSkge1xyXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5xdWVyeTtcclxuICAgIGxldCBqcmEgPSB0aGlzLmpzb25SZXN1bHRzQWRhcHRlcjtcclxuICAgIG5vZGVDb250ZXh0ID0gbm9kZUNvbnRleHQgfHwge307XHJcbiAgICBsZXQgdGhhdCA9IHRoaXM7XHJcbiAgICByZXR1cm4gY29yZS5tYXAobm9kZXMsIGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgIGlmIChxdWVyeSA9PSBudWxsICYmIG5vZGUuZW50aXR5QXNwZWN0KSB7XHJcbiAgICAgICAgLy8gZG9uJ3QgYm90aGVyIG1lcmdpbmcgYSByZXN1bHQgZnJvbSBhIHNhdmUgdGhhdCB3YXMgbm90IHJldHVybmVkIGZyb20gdGhlIHNlcnZlci5cclxuICAgICAgICBpZiAobm9kZS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNEZWxldGVkKCkpIHtcclxuICAgICAgICAgIHRoYXQuZW50aXR5TWFuYWdlci5kZXRhY2hFbnRpdHkobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5vZGUuZW50aXR5QXNwZWN0LmFjY2VwdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBtZXRhID0ganJhLnZpc2l0Tm9kZShub2RlLCB0aGF0LCBub2RlQ29udGV4dCkgfHwge307XHJcbiAgICAgIG5vZGUgPSBtZXRhLm5vZGUgfHwgbm9kZTtcclxuICAgICAgaWYgKHF1ZXJ5ICYmIG5vZGVDb250ZXh0Lm5vZGVUeXBlID09PSBcInJvb3RcIiAmJiAhbWV0YS5lbnRpdHlUeXBlKSB7XHJcbiAgICAgICAgbWV0YS5lbnRpdHlUeXBlID0gcXVlcnkgaW5zdGFuY2VvZiBFbnRpdHlRdWVyeSAmJiAgcXVlcnkuX2dldFRvRW50aXR5VHlwZSAmJiBxdWVyeS5fZ2V0VG9FbnRpdHlUeXBlKHRoYXQubWV0YWRhdGFTdG9yZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHByb2Nlc3NNZXRhKHRoYXQsIG5vZGUsIG1ldGEpO1xyXG4gICAgfSwgdGhpcy5tZXJnZU9wdGlvbnMuaW5jbHVkZURlbGV0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0RlZmVycmVkKCkge1xyXG4gICAgaWYgKHRoaXMuZGVmZXJyZWRGbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmRlZmVycmVkRm5zLmZvckVhY2goKGZuKSA9PiB7XHJcbiAgICAgICAgZm4oKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbk1hcHBpbmdDb250ZXh0LnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJNYXBwaW5nQ29udGV4dFwiO1xyXG5cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NNZXRhKG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZTogYW55LCBtZXRhOiBOb2RlTWV0YSwgYXNzaWduRm4/OiAodmFsOiBhbnkpID0+IHZvaWQpIHtcclxuICAvLyA9PSBpcyBkZWxpYmVyYXRlIGhlcmUgaW5zdGVhZCBvZiA9PT1cclxuICBpZiAobWV0YS5pZ25vcmUgfHwgbm9kZSA9PSBudWxsKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IGVsc2UgaWYgKG1ldGEubm9kZVJlZklkKSB7XHJcbiAgICBsZXQgcmVmVmFsdWUgPSByZXNvbHZlRW50aXR5UmVmKG1jLCBtZXRhLm5vZGVSZWZJZCk7XHJcbiAgICBpZiAodHlwZW9mIHJlZlZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiYgYXNzaWduRm4gIT0gbnVsbCkge1xyXG4gICAgICBtYy5kZWZlcnJlZEZucy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBhc3NpZ25GbihyZWZWYWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBkZWZlcnJlZCBhbmQgd2lsbCBiZSBzZXQgbGF0ZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVmVmFsdWU7XHJcbiAgfSBlbHNlIGlmIChtZXRhLmVudGl0eVR5cGUpIHtcclxuICAgIGxldCBlbnRpdHlUeXBlID0gbWV0YS5lbnRpdHlUeXBlO1xyXG4gICAgaWYgKG1jLm1lcmdlT3B0aW9ucy5ub1RyYWNraW5nKSB7XHJcbiAgICAgIG5vZGUgPSBwcm9jZXNzTm9NZXJnZShtYywgZW50aXR5VHlwZSwgbm9kZSk7XHJcbiAgICAgIGlmIChlbnRpdHlUeXBlLm5vVHJhY2tpbmdGbikge1xyXG4gICAgICAgIG5vZGUgPSBlbnRpdHlUeXBlLm5vVHJhY2tpbmdGbihub2RlLCBlbnRpdHlUeXBlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWV0YS5ub2RlSWQpIHtcclxuICAgICAgICBtYy5yZWZNYXBbbWV0YS5ub2RlSWRdID0gbm9kZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlbnRpdHlUeXBlLmlzQ29tcGxleFR5cGUpIHtcclxuICAgICAgICAvLyBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgdG8gZG8gc2VydmVyTmFtZSB0byBjbGllbnQgbmFtZSBwcm9jZXNzaW5nXHJcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NOb01lcmdlKG1jLCBlbnRpdHlUeXBlLCBub2RlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbWVyZ2VFbnRpdHkobWMsIG5vZGUsIG1ldGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuXHJcbiAgICBpZiAoKCFtZXRhLnBhc3NUaHJ1KSAmJiB0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgJiYgISBjb3JlLmlzRGF0ZShub2RlKSkge1xyXG4gICAgICBub2RlID0gcHJvY2Vzc0Fub25UeXBlKG1jLCBub2RlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGluZyB0aGUgcmVmTWFwIGZvciBlbnRpdGllcyBpcyBoYW5kbGVkIGJ5IHVwZGF0ZUVudGl0eVJlZiBmb3IgZW50aXRpZXMuXHJcbiAgICBpZiAobWV0YS5ub2RlSWQpIHtcclxuICAgICAgbWMucmVmTWFwW21ldGEubm9kZUlkXSA9IG5vZGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbm9kZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHByb2Nlc3NOb01lcmdlKG1jOiBNYXBwaW5nQ29udGV4dCwgc3R5cGU6IFN0cnVjdHVyYWxUeXBlLCBub2RlOiBhbnkpIHtcclxuICBsZXQgcmVzdWx0ID0ge307XHJcblxyXG4gIHN0eXBlLmRhdGFQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKGRwKSB7XHJcbiAgICBpZiAoZHAuaXNDb21wbGV4UHJvcGVydHkpIHtcclxuICAgICAgcmVzdWx0W2RwLm5hbWVdID0gY29yZS5tYXAobm9kZVtkcC5uYW1lT25TZXJ2ZXJdLCAodjogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NOb01lcmdlKG1jLCBkcC5kYXRhVHlwZSBhcyBhbnksIHYpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdFtkcC5uYW1lXSA9IERhdGFUeXBlLnBhcnNlUmF3VmFsdWUobm9kZVtkcC5uYW1lT25TZXJ2ZXJdLCBkcC5kYXRhVHlwZSBhcyBEYXRhVHlwZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIChzdHlwZSBpbnN0YW5jZW9mIEVudGl0eVR5cGUpICYmIHN0eXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goIChucCkgPT4ge1xyXG4gICAgbGV0IG5vZGVDb250ZXh0ID0geyBub2RlVHlwZTogXCJuYXZQcm9wXCIsIG5hdmlnYXRpb25Qcm9wZXJ0eTogbnAgfTtcclxuICAgIHZpc2l0Tm9kZShub2RlW25wLm5hbWVPblNlcnZlcl0sIG1jLCBub2RlQ29udGV4dCwgcmVzdWx0LCBucC5uYW1lKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0Fub25UeXBlKG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZTogYW55KSB7XHJcbiAgLy8gbm9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIGFuIG9iamVjdCBieSB0aGlzIHBvaW50LCBpLmUuIG5vdCBhIHNjYWxhclxyXG4gIGxldCBrZXlGbiA9IG1jLm1ldGFkYXRhU3RvcmUubmFtaW5nQ29udmVudGlvbi5zZXJ2ZXJQcm9wZXJ0eU5hbWVUb0NsaWVudDtcclxuICBsZXQgcmVzdWx0ID0ge307XHJcblxyXG4gIGNvcmUub2JqZWN0Rm9yRWFjaChub2RlLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xyXG4gICAgbGV0IG5ld0tleSA9IGtleUZuKGtleSk7XHJcbiAgICBsZXQgbm9kZUNvbnRleHQgPSB7IG5vZGVUeXBlOiBcImFub25Qcm9wXCIsIHByb3BlcnR5TmFtZTogbmV3S2V5IH07XHJcbiAgICB2aXNpdE5vZGUodmFsdWUsIG1jLCBub2RlQ29udGV4dCwgcmVzdWx0LCBuZXdLZXkpO1xyXG4gIH0pO1xyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZpc2l0Tm9kZShub2RlOiBhbnksIG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZUNvbnRleHQ6IE5vZGVDb250ZXh0LCByZXN1bHQ6IE9iamVjdCwga2V5OiBzdHJpbmcpIHtcclxuICBsZXQganJhID0gbWMuanNvblJlc3VsdHNBZGFwdGVyO1xyXG4gIGxldCBtZXRhID0ganJhLnZpc2l0Tm9kZShub2RlLCBtYywgbm9kZUNvbnRleHQpIHx8IHt9O1xyXG4gIC8vIGFsbG93cyB2aXNpdE5vZGUgdG8gY2hhbmdlIHRoZSB2YWx1ZTtcclxuICBub2RlID0gbWV0YS5ub2RlIHx8IG5vZGU7XHJcblxyXG4gIGlmIChtZXRhLmlnbm9yZSkgcmV0dXJuO1xyXG4gIGlmIChtZXRhLnBhc3NUaHJ1KSByZXR1cm4gbm9kZTtcclxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xyXG4gICAgbm9kZUNvbnRleHQubm9kZVR5cGUgPSBub2RlQ29udGV4dC5ub2RlVHlwZSArIFwiSXRlbVwiO1xyXG4gICAgcmVzdWx0W2tleV0gPSBub2RlLm1hcChmdW5jdGlvbiAodiwgaXgpIHtcclxuICAgICAgbWV0YSA9IGpyYS52aXNpdE5vZGUodiwgbWMsIG5vZGVDb250ZXh0KSB8fCB7fTtcclxuICAgICAgdiA9IG1ldGEubm9kZSB8fCB2O1xyXG4gICAgICByZXR1cm4gcHJvY2Vzc01ldGEobWMsIHYsIG1ldGEsIGZ1bmN0aW9uIChyZWZWYWx1ZSkge1xyXG4gICAgICAgIHJlc3VsdFtrZXldW2l4XSA9IHJlZlZhbHVlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJlc3VsdFtrZXldID0gcHJvY2Vzc01ldGEobWMsIG5vZGUsIG1ldGEsIGZ1bmN0aW9uIChyZWZWYWx1ZSkge1xyXG4gICAgICByZXN1bHRba2V5XSA9IHJlZlZhbHVlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlc29sdmVFbnRpdHlSZWYobWM6IE1hcHBpbmdDb250ZXh0LCBub2RlUmVmSWQ6IHN0cmluZykge1xyXG4gIGxldCBlbnRpdHkgPSBtYy5yZWZNYXBbbm9kZVJlZklkXTtcclxuICBpZiAoZW50aXR5ID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHJldHVybiBtYy5yZWZNYXBbbm9kZVJlZklkXTtcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBlbnRpdHk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVFbnRpdHlSZWYobWM6IE1hcHBpbmdDb250ZXh0LCB0YXJnZXRFbnRpdHk6IGFueSwgbm9kZTogYW55KSB7XHJcbiAgbGV0IG5vZGVJZCA9IG5vZGUuXyRtZXRhLm5vZGVJZDtcclxuICBpZiAoIW5vZGVJZCAmJiBub2RlLl8kbWV0YS5leHRyYU1ldGFkYXRhKSB7XHJcbiAgICAvLyBvZGF0YSBjYXNlLiAgcmVmTWFwIGlzbid0IHJlYWxseSB1c2VkLCBidXQgaXMgcmV0dXJuZWQgYXMgZGF0YS5yZXRyaWV2ZWRFbnRpdGllcywgc28gd2UgcG9wdWxhdGVkIGl0IGFueXdheS5cclxuICAgIG5vZGVJZCA9IG5vZGUuXyRtZXRhLmV4dHJhTWV0YWRhdGEudXJpS2V5O1xyXG4gIH1cclxuICBpZiAobm9kZUlkICE9IG51bGwpIHtcclxuICAgIG1jLnJlZk1hcFtub2RlSWRdID0gdGFyZ2V0RW50aXR5O1xyXG4gIH1cclxufVxyXG5cclxuLy8gY2FuIHJldHVybiBudWxsIGZvciBhIGRlbGV0ZWQgZW50aXR5IGlmIGluY2x1ZGVEZWxldGVkID09IGZhbHNlXHJcbmZ1bmN0aW9uIG1lcmdlRW50aXR5KG1jOiBNYXBwaW5nQ29udGV4dCwgbm9kZTogYW55LCBtZXRhOiBOb2RlTWV0YSkge1xyXG4gIG5vZGUuXyRtZXRhID0gbWV0YTtcclxuICBsZXQgZW0gPSBtYy5lbnRpdHlNYW5hZ2VyO1xyXG5cclxuICBsZXQgZW50aXR5VHlwZSA9IG1ldGEuZW50aXR5VHlwZSBhcyBFbnRpdHlUeXBlO1xyXG4gIGlmICh0eXBlb2YgKGVudGl0eVR5cGUpID09PSAnc3RyaW5nJykge1xyXG4gICAgZW50aXR5VHlwZSA9IG1jLm1ldGFkYXRhU3RvcmUuX2dldFN0cnVjdHVyYWxUeXBlKGVudGl0eVR5cGUsIGZhbHNlKSBhcyBFbnRpdHlUeXBlO1xyXG4gIH1cclxuICBub2RlLmVudGl0eVR5cGUgPSBlbnRpdHlUeXBlO1xyXG5cclxuICBsZXQgbWVyZ2VTdHJhdGVneSA9IG1jLm1lcmdlT3B0aW9ucy5tZXJnZVN0cmF0ZWd5O1xyXG4gIGxldCBpc1NhdmluZyA9IG1jLnF1ZXJ5ID09IG51bGw7XHJcblxyXG4gIGxldCBlbnRpdHlLZXkgPSBlbnRpdHlUeXBlLmdldEVudGl0eUtleUZyb21SYXdFbnRpdHkobm9kZSwgbWMucmF3VmFsdWVGbik7XHJcbiAgbGV0IHRhcmdldEVudGl0eSA9IGVtLmdldEVudGl0eUJ5S2V5KGVudGl0eUtleSk7XHJcbiAgaWYgKHRhcmdldEVudGl0eSkge1xyXG4gICAgaWYgKGlzU2F2aW5nICYmIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUuaXNEZWxldGVkKCkpIHtcclxuICAgICAgZW0uZGV0YWNoRW50aXR5KHRhcmdldEVudGl0eSk7XHJcbiAgICAgIHJldHVybiB0YXJnZXRFbnRpdHk7XHJcbiAgICB9XHJcbiAgICBsZXQgdGFyZ2V0RW50aXR5U3RhdGUgPSB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlO1xyXG4gICAgaWYgKG1lcmdlU3RyYXRlZ3kgPT09IE1lcmdlU3RyYXRlZ3kuRGlzYWxsb3dlZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIE1lcmdlU3RyYXRlZ3kgb2YgJ0Rpc2FsbG93ZWQnIHByZXZlbnRzIFwiICsgZW50aXR5S2V5LnRvU3RyaW5nKCkgKyBcIiBmcm9tIGJlaW5nIG1lcmdlZFwiKTtcclxuICAgIH0gZWxzZSBpZiAobWVyZ2VTdHJhdGVneSA9PT0gTWVyZ2VTdHJhdGVneS5Ta2lwTWVyZ2UpIHtcclxuICAgICAgdXBkYXRlRW50aXR5Tm9NZXJnZShtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChtZXJnZVN0cmF0ZWd5ID09PSBNZXJnZVN0cmF0ZWd5Lk92ZXJ3cml0ZUNoYW5nZXNcclxuICAgICAgICB8fCB0YXJnZXRFbnRpdHlTdGF0ZS5pc1VuY2hhbmdlZCgpKSB7XHJcbiAgICAgICAgdXBkYXRlRW50aXR5KG1jLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gICAgICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3Qud2FzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAobWV0YS5leHRyYU1ldGFkYXRhKSB7XHJcbiAgICAgICAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0LmV4dHJhTWV0YWRhdGEgPSBtZXRhLmV4dHJhTWV0YWRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QuZW50aXR5U3RhdGUgPSBFbnRpdHlTdGF0ZS5VbmNoYW5nZWQ7XHJcbiAgICAgICAgY2xlYXJPcmlnaW5hbFZhbHVlcyh0YXJnZXRFbnRpdHkpO1xyXG4gICAgICAgIC8vIHByb3BlcnR5TmFtZSBub3Qgc3BlY2lmaWVkIGJlY2F1c2UgbXVsdGlwbGUgcHJvcHMgRW50aXR5Q2hhbmdlZEV2ZW50QXJnc1xyXG4gICAgICAgIHRhcmdldEVudGl0eS5lbnRpdHlBc3BlY3QucHJvcGVydHlDaGFuZ2VkLnB1Ymxpc2goeyBlbnRpdHk6IHRhcmdldEVudGl0eSwgcHJvcGVydHlOYW1lOiBudWxsIH0pO1xyXG4gICAgICAgIGxldCBhY3Rpb24gPSBpc1NhdmluZyA/IEVudGl0eUFjdGlvbi5NZXJnZU9uU2F2ZSA6IEVudGl0eUFjdGlvbi5NZXJnZU9uUXVlcnk7XHJcbiAgICAgICAgZW0uZW50aXR5Q2hhbmdlZC5wdWJsaXNoKHsgZW50aXR5QWN0aW9uOiBhY3Rpb24sIGVudGl0eTogdGFyZ2V0RW50aXR5IH0pO1xyXG4gICAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIGhhbmRsZSBhbiBvdmVyd3JpdGUgb2YgYSBtb2RpZmllZCBlbnRpdHkgd2l0aCBhbiB1bmNoYW5nZWQgZW50aXR5XHJcbiAgICAgICAgLy8gd2hpY2ggbWlnaHQgaW4gdHVybiBjYXVzZSBfaGFzQ2hhbmdlcyB0byBjaGFuZ2UuXHJcbiAgICAgICAgaWYgKCF0YXJnZXRFbnRpdHlTdGF0ZS5pc1VuY2hhbmdlZCgpKSB7XHJcbiAgICAgICAgICBlbS5fbm90aWZ5U3RhdGVDaGFuZ2UodGFyZ2V0RW50aXR5LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0YXJnZXRFbnRpdHlTdGF0ZSA9PT0gRW50aXR5U3RhdGUuRGVsZXRlZCAmJiAhbWMubWVyZ2VPcHRpb25zLmluY2x1ZGVEZWxldGVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdXBkYXRlRW50aXR5Tm9NZXJnZShtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICB0YXJnZXRFbnRpdHkgPSBlbnRpdHlUeXBlLl9jcmVhdGVJbnN0YW5jZUNvcmUoKSBhcyBFbnRpdHk7XHJcblxyXG4gICAgdXBkYXRlRW50aXR5KG1jLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG5cclxuICAgIGlmIChtZXRhLmV4dHJhTWV0YWRhdGEpIHtcclxuICAgICAgdGFyZ2V0RW50aXR5LmVudGl0eUFzcGVjdC5leHRyYU1ldGFkYXRhID0gbWV0YS5leHRyYU1ldGFkYXRhO1xyXG4gICAgfVxyXG4gICAgLy8gZW0uX2F0dGFjaEVudGl0eUNvcmUodGFyZ2V0RW50aXR5LCBFbnRpdHlTdGF0ZS5VbmNoYW5nZWQsIE1lcmdlU3RyYXRlZ3kuRGlzYWxsb3dlZCk7XHJcbiAgICBlbS5fYXR0YWNoRW50aXR5Q29yZSh0YXJnZXRFbnRpdHksIEVudGl0eVN0YXRlLlVuY2hhbmdlZCwgbWVyZ2VTdHJhdGVneSk7XHJcbiAgICB0YXJnZXRFbnRpdHkuZW50aXR5QXNwZWN0Lndhc0xvYWRlZCA9IHRydWU7XHJcbiAgICBlbS5lbnRpdHlDaGFuZ2VkLnB1Ymxpc2goeyBlbnRpdHlBY3Rpb246IEVudGl0eUFjdGlvbi5BdHRhY2hPblF1ZXJ5LCBlbnRpdHk6IHRhcmdldEVudGl0eSB9KTtcclxuICB9XHJcbiAgcmV0dXJuIHRhcmdldEVudGl0eTtcclxufVxyXG5cclxuLy8gY29waWVkIGZyb20gZW50aXR5QXNwZWN0XHJcbmZ1bmN0aW9uIGNsZWFyT3JpZ2luYWxWYWx1ZXModGFyZ2V0OiBhbnkpIHtcclxuICBsZXQgYXNwZWN0ID0gdGFyZ2V0LmVudGl0eUFzcGVjdCB8fCB0YXJnZXQuY29tcGxleEFzcGVjdDtcclxuICBhc3BlY3Qub3JpZ2luYWxWYWx1ZXMgPSB7fTtcclxuICBsZXQgc3R5cGUgPSB0YXJnZXQuZW50aXR5VHlwZSB8fCB0YXJnZXQuY29tcGxleFR5cGU7XHJcbiAgc3R5cGUuY29tcGxleFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAoY3A6IGFueSkge1xyXG4gICAgbGV0IGNvcyA9IHRhcmdldC5nZXRQcm9wZXJ0eShjcC5uYW1lKTtcclxuICAgIGlmIChjcC5pc1NjYWxhcikge1xyXG4gICAgICBjbGVhck9yaWdpbmFsVmFsdWVzKGNvcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb3MuX2FjY2VwdENoYW5nZXMoKTtcclxuICAgICAgY29zLmZvckVhY2goY2xlYXJPcmlnaW5hbFZhbHVlcyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiB1cGRhdGVFbnRpdHlOb01lcmdlKG1jOiBNYXBwaW5nQ29udGV4dCwgdGFyZ2V0RW50aXR5OiBFbnRpdHksIG5vZGU6IGFueSkge1xyXG4gIHVwZGF0ZUVudGl0eVJlZihtYywgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAvLyB3ZSBzdGlsbCBuZWVkIHRvIG1lcmdlIHJlbGF0ZWQgZW50aXRpZXMgZXZlbiBpZiB0b3AgbGV2ZWwgZW50aXR5IHdhc24ndCBtb2RpZmllZC5cclxuICBub2RlLmVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAobnA6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gICAgaWYgKG5wLmlzU2NhbGFyKSB7XHJcbiAgICAgIG1lcmdlUmVsYXRlZEVudGl0eUNvcmUobWMsIG5vZGUsIG5wKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG1lcmdlUmVsYXRlZEVudGl0aWVzQ29yZShtYywgbm9kZSwgbnApO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVFbnRpdHkobWM6IE1hcHBpbmdDb250ZXh0LCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgbm9kZTogYW55KSB7XHJcbiAgdXBkYXRlRW50aXR5UmVmKG1jLCB0YXJnZXRFbnRpdHksIG5vZGUpO1xyXG4gIGxldCBlbnRpdHlUeXBlID0gdGFyZ2V0RW50aXR5LmVudGl0eVR5cGU7XHJcbiAgZW50aXR5VHlwZS5fdXBkYXRlVGFyZ2V0RnJvbVJhdyh0YXJnZXRFbnRpdHksIG5vZGUsIG1jLnJhd1ZhbHVlRm4pO1xyXG5cclxuICBlbnRpdHlUeXBlLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKG5wKSB7XHJcbiAgICBpZiAobnAuaXNTY2FsYXIpIHtcclxuICAgICAgbWVyZ2VSZWxhdGVkRW50aXR5KG1jLCBucCwgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG1lcmdlUmVsYXRlZEVudGl0aWVzKG1jLCBucCwgdGFyZ2V0RW50aXR5LCBub2RlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZWxhdGVkRW50aXR5KG1jOiBNYXBwaW5nQ29udGV4dCwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHksIHRhcmdldEVudGl0eTogRW50aXR5LCByYXdFbnRpdHk6IGFueSkge1xyXG5cclxuICBsZXQgcmVsYXRlZEVudGl0eSA9IG1lcmdlUmVsYXRlZEVudGl0eUNvcmUobWMsIHJhd0VudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5KTtcclxuICBpZiAocmVsYXRlZEVudGl0eSA9PSBudWxsKSByZXR1cm47XHJcbiAgaWYgKHR5cGVvZiByZWxhdGVkRW50aXR5ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICBtYy5kZWZlcnJlZEZucy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgcmVsYXRlZEVudGl0eSA9IHJlbGF0ZWRFbnRpdHkoKTtcclxuICAgICAgdXBkYXRlUmVsYXRlZEVudGl0eShyZWxhdGVkRW50aXR5LCB0YXJnZXRFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgdXBkYXRlUmVsYXRlZEVudGl0eShyZWxhdGVkRW50aXR5LCB0YXJnZXRFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVJlbGF0ZWRFbnRpdGllcyhtYzogTWFwcGluZ0NvbnRleHQsIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5LCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgcmF3RW50aXR5OiBhbnkpIHtcclxuICBsZXQgcmVsYXRlZEVudGl0aWVzID0gbWVyZ2VSZWxhdGVkRW50aXRpZXNDb3JlKG1jLCByYXdFbnRpdHksIG5hdmlnYXRpb25Qcm9wZXJ0eSk7XHJcbiAgaWYgKHJlbGF0ZWRFbnRpdGllcyA9PSBudWxsKSByZXR1cm47XHJcblxyXG4gIGxldCBpbnZlcnNlUHJvcGVydHkgPSBuYXZpZ2F0aW9uUHJvcGVydHkuaW52ZXJzZTtcclxuICBpZiAoIWludmVyc2VQcm9wZXJ0eSkgcmV0dXJuO1xyXG5cclxuICBsZXQgb3JpZ2luYWxSZWxhdGVkRW50aXRpZXMgPSB0YXJnZXRFbnRpdHkuZ2V0UHJvcGVydHkobmF2aWdhdGlvblByb3BlcnR5Lm5hbWUpO1xyXG4gIG9yaWdpbmFsUmVsYXRlZEVudGl0aWVzLndhc0xvYWRlZCA9IHRydWU7XHJcblxyXG4gIHJlbGF0ZWRFbnRpdGllcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWxhdGVkRW50aXR5OiBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgcmVsYXRlZEVudGl0eSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBtYy5kZWZlcnJlZEZucy5wdXNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZWxhdGVkRW50aXR5ID0gcmVsYXRlZEVudGl0eSgpO1xyXG4gICAgICAgIHVwZGF0ZVJlbGF0ZWRFbnRpdHlJbkNvbGxlY3Rpb24obWMsIHJlbGF0ZWRFbnRpdHksIG9yaWdpbmFsUmVsYXRlZEVudGl0aWVzLCB0YXJnZXRFbnRpdHksIGludmVyc2VQcm9wZXJ0eSBhcyBOYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVwZGF0ZVJlbGF0ZWRFbnRpdHlJbkNvbGxlY3Rpb24obWMsIHJlbGF0ZWRFbnRpdHksIG9yaWdpbmFsUmVsYXRlZEVudGl0aWVzLCB0YXJnZXRFbnRpdHksIGludmVyc2VQcm9wZXJ0eSBhcyBOYXZpZ2F0aW9uUHJvcGVydHkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVJlbGF0ZWRFbnRpdHlDb3JlKG1jOiBNYXBwaW5nQ29udGV4dCwgcmF3RW50aXR5OiBhbnksIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgbGV0IHJlbGF0ZWRSYXdFbnRpdHkgPSByYXdFbnRpdHlbbmF2aWdhdGlvblByb3BlcnR5Lm5hbWVPblNlcnZlcl07XHJcbiAgaWYgKCFyZWxhdGVkUmF3RW50aXR5KSByZXR1cm4gbnVsbDtcclxuXHJcbiAgbGV0IHJlbGF0ZWRFbnRpdHkgPSBtYy52aXNpdEFuZE1lcmdlKHJlbGF0ZWRSYXdFbnRpdHksIHsgbm9kZVR5cGU6IFwibmF2UHJvcFwiLCBuYXZpZ2F0aW9uUHJvcGVydHk6IG5hdmlnYXRpb25Qcm9wZXJ0eSB9KTtcclxuICByZXR1cm4gcmVsYXRlZEVudGl0eTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZWxhdGVkRW50aXRpZXNDb3JlKG1jOiBNYXBwaW5nQ29udGV4dCwgcmF3RW50aXR5OiBhbnksIG5hdmlnYXRpb25Qcm9wZXJ0eTogTmF2aWdhdGlvblByb3BlcnR5KSB7XHJcbiAgbGV0IHJlbGF0ZWRSYXdFbnRpdGllcyA9IHJhd0VudGl0eVtuYXZpZ2F0aW9uUHJvcGVydHkubmFtZU9uU2VydmVyXTtcclxuICBpZiAoIXJlbGF0ZWRSYXdFbnRpdGllcykgcmV0dXJuIG51bGw7XHJcblxyXG4gIC8vIG5lZWRlZCBpZiB3aGF0IGlzIHJldHVybmVkIGlzIG5vdCBhbiBhcnJheSBhbmQgd2UgZXhwZWN0IG9uZSAtIHRoaXMgaGFwcGVucyB3aXRoIF9fZGVmZXJyZWQgaW4gT0RhdGEuXHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KHJlbGF0ZWRSYXdFbnRpdGllcykpIHtcclxuICAgIC8vIHJldHVybiBudWxsO1xyXG4gICAgcmVsYXRlZFJhd0VudGl0aWVzID0gcmVsYXRlZFJhd0VudGl0aWVzLnJlc3VsdHM7IC8vIE9EYXRhIHYzIHdpbGwgbG9vayBsaWtlIHRoaXMgd2l0aCBhbiBleHBhbmRcclxuICAgIGlmICghcmVsYXRlZFJhd0VudGl0aWVzKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IHJlbGF0ZWRFbnRpdGllcyA9IG1jLnZpc2l0QW5kTWVyZ2UocmVsYXRlZFJhd0VudGl0aWVzLCB7IG5vZGVUeXBlOiBcIm5hdlByb3BJdGVtXCIsIG5hdmlnYXRpb25Qcm9wZXJ0eTogbmF2aWdhdGlvblByb3BlcnR5IH0pO1xyXG4gIHJldHVybiByZWxhdGVkRW50aXRpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHVwZGF0ZVJlbGF0ZWRFbnRpdHkocmVsYXRlZEVudGl0eTogRW50aXR5LCB0YXJnZXRFbnRpdHk6IEVudGl0eSwgbmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpIHtcclxuICBpZiAoIXJlbGF0ZWRFbnRpdHkpIHJldHVybjtcclxuICBsZXQgcHJvcE5hbWUgPSBuYXZpZ2F0aW9uUHJvcGVydHkubmFtZTtcclxuICBsZXQgY3VycmVudFJlbGF0ZWRFbnRpdHkgPSB0YXJnZXRFbnRpdHkuZ2V0UHJvcGVydHkocHJvcE5hbWUpO1xyXG5cclxuICAvLyBjaGVjayBpZiB0aGUgcmVsYXRlZCBlbnRpdHkgaXMgYWxyZWFkeSBob29rZWQgdXBcclxuICBpZiAoY3VycmVudFJlbGF0ZWRFbnRpdHkgIT09IHJlbGF0ZWRFbnRpdHkpIHtcclxuICAgIC8vIGlmIG5vdCBob29rIHVwIGJvdGggZGlyZWN0aW9ucy5cclxuICAgIHRhcmdldEVudGl0eS5zZXRQcm9wZXJ0eShwcm9wTmFtZSwgcmVsYXRlZEVudGl0eSk7XHJcbiAgICBsZXQgaW52ZXJzZVByb3BlcnR5ID0gbmF2aWdhdGlvblByb3BlcnR5LmludmVyc2U7XHJcbiAgICBpZiAoIWludmVyc2VQcm9wZXJ0eSkgcmV0dXJuO1xyXG4gICAgaWYgKGludmVyc2VQcm9wZXJ0eS5pc1NjYWxhcikge1xyXG4gICAgICByZWxhdGVkRW50aXR5LnNldFByb3BlcnR5KGludmVyc2VQcm9wZXJ0eS5uYW1lLCB0YXJnZXRFbnRpdHkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGNvbGxlY3Rpb24gPSByZWxhdGVkRW50aXR5LmdldFByb3BlcnR5KGludmVyc2VQcm9wZXJ0eS5uYW1lKTtcclxuICAgICAgY29sbGVjdGlvbi5wdXNoKHRhcmdldEVudGl0eSk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlUmVsYXRlZEVudGl0eUluQ29sbGVjdGlvbihtYzogTWFwcGluZ0NvbnRleHQsIHJlbGF0ZWRFbnRpdHk6IEVudGl0eSB8IHVuZGVmaW5lZCxcclxuICAgIHJlbGF0ZWRFbnRpdGllczogRW50aXR5W10sIHRhcmdldEVudGl0eTogRW50aXR5LCBpbnZlcnNlUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xyXG4gIGlmICghcmVsYXRlZEVudGl0eSkgcmV0dXJuO1xyXG5cclxuICAvLyBkb24ndCB1cGRhdGUgcmVsYXRlZENvbGxlY3Rpb24gaWYgcHJlc2VydmVDaGFuZ2VzICYgcmVsYXRlZEVudGl0eSBoYXMgYW4gZmtDaGFuZ2UuXHJcbiAgaWYgKHJlbGF0ZWRFbnRpdHkuZW50aXR5QXNwZWN0LmVudGl0eVN0YXRlID09PSBFbnRpdHlTdGF0ZS5Nb2RpZmllZFxyXG4gICAgJiYgbWMubWVyZ2VPcHRpb25zLm1lcmdlU3RyYXRlZ3kgPT09IE1lcmdlU3RyYXRlZ3kuUHJlc2VydmVDaGFuZ2VzKSB7XHJcbiAgICBsZXQgb3JpZ1ZhbHVlcyA9IHJlbGF0ZWRFbnRpdHkuZW50aXR5QXNwZWN0Lm9yaWdpbmFsVmFsdWVzO1xyXG4gICAgbGV0IGZrV2FzTW9kaWZpZWQgPSBpbnZlcnNlUHJvcGVydHkucmVsYXRlZERhdGFQcm9wZXJ0aWVzLnNvbWUoZnVuY3Rpb24gKGRwKSB7XHJcbiAgICAgIHJldHVybiBvcmlnVmFsdWVzW2RwLm5hbWVdICE9IHVuZGVmaW5lZDtcclxuICAgIH0pO1xyXG4gICAgaWYgKGZrV2FzTW9kaWZpZWQpIHJldHVybjtcclxuICB9XHJcbiAgLy8gY2hlY2sgaWYgdGhlIHJlbGF0ZWQgZW50aXR5IGlzIGFscmVhZHkgaG9va2VkIHVwXHJcbiAgbGV0IHRoaXNFbnRpdHkgPSByZWxhdGVkRW50aXR5LmdldFByb3BlcnR5KGludmVyc2VQcm9wZXJ0eS5uYW1lKTtcclxuXHJcbiAgaWYgKHRoaXNFbnRpdHkgIT09IHRhcmdldEVudGl0eSkge1xyXG4gICAgLy8gaWYgbm90IC0gaG9vayBpdCB1cC5cclxuICAgIHJlbGF0ZWRFbnRpdGllcy5wdXNoKHJlbGF0ZWRFbnRpdHkpO1xyXG4gICAgcmVsYXRlZEVudGl0eS5zZXRQcm9wZXJ0eShpbnZlcnNlUHJvcGVydHkubmFtZSwgdGFyZ2V0RW50aXR5KTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
{
"name": "breeze-client",
"version": "2.1.0",
"version": "2.1.1",
"private": false,

@@ -5,0 +5,0 @@ "description": "Breeze data management for JavaScript clients",

@@ -22,2 +22,4 @@ <p align="center"><a href="http://www.getbreezenow.com/" target="_blank"><img src="http://breeze.github.io/images/logos/BreezeJsB.png" alt="Breeze" width="100"/></a></p>

Set the [release notes](http://breeze.github.io/doc-js/release-notes.html) for changes in the latest version.
## Install from npm

@@ -24,0 +26,0 @@

@@ -887,3 +887,5 @@ import { ErrorCallback } from './core';

foreignKeyNamesOnServer: string[];
/** The names of the foreign key DataProperties at the other end of the relationship. __Read Only__ */
invForeignKeyNames: string[];
/** The server side names of the foreign key DataProperties at the other end of the relationship. __Read Only__ */
invForeignKeyNamesOnServer: string[];

@@ -890,0 +892,0 @@ /** The 'foreign key' DataProperties associated with this NavigationProperty. There will usually only be a single DataProperty associated

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc