@angular/core 17.0.2 → 17.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/core_render3_private_export.mjs +2 -2
- package/esm2022/src/render3/index.mjs +2 -2
- package/esm2022/src/render3/instructions/change_detection.mjs +9 -19
- package/esm2022/src/render3/instructions/shared.mjs +4 -5
- package/esm2022/src/render3/interfaces/container.mjs +22 -17
- package/esm2022/src/render3/interfaces/view.mjs +2 -2
- package/esm2022/src/render3/node_manipulation.mjs +3 -3
- package/esm2022/src/render3/util/change_detection_utils.mjs +13 -2
- package/esm2022/src/render3/util/injector_discovery_utils.mjs +10 -13
- package/esm2022/src/render3/util/view_utils.mjs +4 -4
- package/esm2022/src/render3/view_ref.mjs +3 -3
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/esm2022/testing/src/test_bed_compiler.mjs +4 -1
- package/fesm2022/core.mjs +59 -56
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +4 -1
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +27 -36
- package/package.json +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/block-template-entities/bundle.js +187 -98
- package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
- package/schematics/ng-generate/control-flow-migration/bundle.js +518 -232
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
- package/schematics/ng-generate/standalone-migration/bundle.js +176 -106
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
|
@@ -18,7 +18,7 @@ export { createInjector as ɵcreateInjector } from './di/create_injector';
|
|
|
18
18
|
export { registerNgModuleType as ɵɵregisterNgModuleType, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, } from './linker/ng_module_registration';
|
|
19
19
|
export { getLContext as ɵgetLContext } from './render3/context_discovery';
|
|
20
20
|
export { NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, } from './render3/fields';
|
|
21
|
-
export { ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef,
|
|
21
|
+
export { ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, LifecycleHooksFeature as ɵLifecycleHooksFeature, NgModuleFactory as ɵNgModuleFactory, NgModuleRef as ɵRender3NgModuleRef, NO_CHANGE as ɵNO_CHANGE, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, ɵsetClassDebugInfo, setLocaleId as ɵsetLocaleId, store as ɵstore, ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, ɵDEFER_BLOCK_CONFIG, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵconditional, ɵɵcontentQuery, ɵɵcomponentInstance, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵNgOnChangesFeature, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵProvidersFeature, ɵɵHostDirectivesFeature, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵgetComponentDepsFactory, ɵɵStandaloneFeature, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵdefer, ɵɵdeferWhen, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnTimer, ɵɵdeferOnHover, ɵɵdeferOnInteraction, ɵɵdeferOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnViewport, ɵɵdeferEnableTimerScheduling, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵviewQuery, ɵgetUnknownElementStrictMode, ɵsetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetUnknownPropertyStrictMode } from './render3/index';
|
|
22
22
|
export { CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, } from './render3/interfaces/container';
|
|
23
23
|
export { LContext as ɵLContext, } from './render3/interfaces/context';
|
|
24
24
|
export { setDocument as ɵsetDocument } from './render3/interfaces/document';
|
|
@@ -39,4 +39,4 @@ export { depsTracker as ɵdepsTracker, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE
|
|
|
39
39
|
export { generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError } from './render3/jit/module';
|
|
40
40
|
export { getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn } from './render3/metadata';
|
|
41
41
|
// clang-format on
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILG1CQUFtQjtBQUNuQiw0RkFBNEY7QUFDNUYsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiw0RUFBNEU7QUFDNUUsT0FBTyxFQUNMLHNCQUFzQixJQUFJLHVCQUF1QixFQUNqRCxlQUFlLElBQUksZ0JBQWdCLEVBQ3BDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCxZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxVQUFVLElBQUksV0FBVyxFQUN6QixXQUFXLElBQUksWUFBWSxFQUMzQixZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxjQUFjLElBQUksZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUNMLG9CQUFvQixJQUFJLHNCQUFzQixFQUM5QyxtQ0FBbUMsSUFBSSxvQ0FBb0MsR0FDNUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUt6QyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDM0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsYUFBYSxJQUFJLGNBQWMsRUFDL0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsV0FBVyxJQUFJLFlBQVksR0FDNUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBR0wsZ0JBQWdCLElBQUksd0JBQXdCLEVBQzVDLFlBQVksSUFBSSxvQkFBb0IsRUFHcEMsYUFBYSxJQUFJLGNBQWMsRUFHL0IsYUFBYSxJQUFJLGNBQWMsRUFDL0IsY0FBYyxJQUFJLGVBQWUsRUFDakMscUJBQXFCLElBQUksc0JBQXNCLEVBQy9DLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsV0FBVyxJQUFJLG1CQUFtQixFQUVsQyxTQUFTLElBQUksVUFBVSxFQUd2QixnQkFBZ0IsSUFBSSxpQkFBaUIsRUFDckMscUJBQXFCLElBQUksc0JBQXNCLEVBQy9DLGtCQUFrQixFQUNsQixXQUFXLElBQUksWUFBWSxFQUMzQixLQUFLLElBQUksTUFBTSxFQUVmLG1DQUFtQyxFQUNuQyxtQkFBbUIsRUFDbkIsU0FBUyxFQUNULFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixVQUFVLEVBQ1Ysc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUVYLGFBQWEsRUFDYixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixZQUFZLEVBRVosaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGNBQWMsRUFDZCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsTUFBTSxFQUNOLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsV0FBVyxFQUNYLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGFBQWEsRUFFYixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFdBQVcsRUFDWCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxXQUFXLEVBRVgsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGNBQWMsRUFDZCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGFBQWEsRUFFYixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixVQUFVLEVBQ1Ysc0JBQXNCLEVBQ3RCLE9BQU8sRUFDUCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDOUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLElBQUksd0JBQXdCLEdBQ3BELE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLFFBQVEsSUFBSSxTQUFTLEdBQ3RCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFdBQVcsSUFBSSxZQUFZLEVBQzVCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUNMLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxnQkFBZ0IsSUFBSSxpQkFBaUIsR0FDdEMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsZUFBZSxJQUFJLGdCQUFnQixHQUNwQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxlQUFlLElBQUksZ0JBQWdCLEVBQ25DLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyx1Q0FBdUMsSUFBSSx3Q0FBd0MsRUFDbkYsMEJBQTBCLElBQUksMkJBQTJCLEVBQ3pELHVCQUF1QixJQUFJLHdCQUF3QixFQUNuRCxtQkFBbUIsSUFBSSxvQkFBb0IsR0FDNUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsYUFBYSxJQUFJLGVBQWUsRUFDaEMsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksR0FDNUIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsVUFBVSxJQUFJLFdBQVcsRUFDMUIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0wseUJBQXlCLElBQUksMEJBQTBCLEVBRXZELGlCQUFpQixJQUFJLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxFQUFDLE9BQU8sSUFBSSxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsMkJBQTJCLElBQUksNEJBQTRCLEVBQzNELGtDQUFrQyxJQUFJLG1DQUFtQyxFQUN6RSw2QkFBNkIsSUFBSSw4QkFBOEIsRUFDL0QsNEJBQTRCLElBQUksNkJBQTZCLEVBQzdELDBCQUEwQixJQUFJLDJCQUEyQixHQUMxRCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsMEJBQTBCLEdBQzNCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLHlCQUF5QixHQUMxQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCxhQUFhLElBQUksY0FBYyxHQUNoQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSx3QkFBd0IsRUFBRSx1QkFBdUIsSUFBSSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hKLE9BQU8sRUFBQyxXQUFXLElBQUksWUFBWSxFQUFFLGdDQUFnQyxJQUFJLGlDQUFpQyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdkosT0FBTyxFQUFDLHFDQUFxQyxJQUFJLHNDQUFzQyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDckgsT0FBTyxFQUFDLHVCQUF1QixJQUFJLHdCQUF3QixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdkYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIGNsYW5nLWZvcm1hdCBvZmZcbi8vIHdlIHJlZXhwb3J0IHRoZXNlIHN5bWJvbHMganVzdCBzbyB0aGF0IHRoZXkgYXJlIHJldGFpbmVkIGR1cmluZyB0aGUgZGVhZCBjb2RlIGVsaW1pbmF0aW9uXG4vLyBwZXJmb3JtZWQgYnkgcm9sbHVwIHdoaWxlIGl0J3MgY3JlYXRpbmcgZmVzbSBmaWxlcy5cbi8vXG4vLyBubyBjb2RlIGFjdHVhbGx5IGltcG9ydHMgdGhlc2Ugc3ltYm9scyBmcm9tIHRoZSBAYW5ndWxhci9jb3JlIGVudHJ5IHBvaW50XG5leHBvcnQge1xuICBjb21waWxlTmdNb2R1bGVGYWN0b3J5IGFzIMm1Y29tcGlsZU5nTW9kdWxlRmFjdG9yeSxcbiAgaXNCb3VuZFRvTW9kdWxlIGFzIMm1aXNCb3VuZFRvTW9kdWxlXG59IGZyb20gJy4vYXBwbGljYXRpb25fcmVmJztcbmV4cG9ydCB7XG4gIGluamVjdENoYW5nZURldGVjdG9yUmVmIGFzIMm1aW5qZWN0Q2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJy4vY2hhbmdlX2RldGVjdGlvbi9jaGFuZ2VfZGV0ZWN0b3JfcmVmJztcbmV4cG9ydCB7XG4gIGdldERlYnVnTm9kZSBhcyDJtWdldERlYnVnTm9kZSxcbn0gZnJvbSAnLi9kZWJ1Zy9kZWJ1Z19ub2RlJztcbmV4cG9ydCB7XG4gIE5HX0lOSl9ERUYgYXMgybVOR19JTkpfREVGLFxuICBOR19QUk9WX0RFRiBhcyDJtU5HX1BST1ZfREVGLFxuICBpc0luamVjdGFibGUgYXMgybVpc0luamVjdGFibGUsXG59IGZyb20gJy4vZGkvaW50ZXJmYWNlL2RlZnMnO1xuZXhwb3J0IHtjcmVhdGVJbmplY3RvciBhcyDJtWNyZWF0ZUluamVjdG9yfSBmcm9tICcuL2RpL2NyZWF0ZV9pbmplY3Rvcic7XG5leHBvcnQge1xuICByZWdpc3Rlck5nTW9kdWxlVHlwZSBhcyDJtcm1cmVnaXN0ZXJOZ01vZHVsZVR5cGUsXG4gIHNldEFsbG93RHVwbGljYXRlTmdNb2R1bGVJZHNGb3JUZXN0IGFzIMm1c2V0QWxsb3dEdXBsaWNhdGVOZ01vZHVsZUlkc0ZvclRlc3QsXG59IGZyb20gJy4vbGlua2VyL25nX21vZHVsZV9yZWdpc3RyYXRpb24nO1xuZXhwb3J0IHtcbiAgTmdNb2R1bGVEZWYgYXMgybVOZ01vZHVsZURlZixcbiAgTmdNb2R1bGVUcmFuc2l0aXZlU2NvcGVzIGFzIMm1TmdNb2R1bGVUcmFuc2l0aXZlU2NvcGVzLFxufSBmcm9tICcuL21ldGFkYXRhL25nX21vZHVsZV9kZWYnO1xuZXhwb3J0IHtcbiAgZ2V0TENvbnRleHQgYXMgybVnZXRMQ29udGV4dFxufSBmcm9tICcuL3JlbmRlcjMvY29udGV4dF9kaXNjb3ZlcnknO1xuZXhwb3J0IHtcbiAgTkdfQ09NUF9ERUYgYXMgybVOR19DT01QX0RFRixcbiAgTkdfRElSX0RFRiBhcyDJtU5HX0RJUl9ERUYsXG4gIE5HX0VMRU1FTlRfSUQgYXMgybVOR19FTEVNRU5UX0lELFxuICBOR19NT0RfREVGIGFzIMm1TkdfTU9EX0RFRixcbiAgTkdfUElQRV9ERUYgYXMgybVOR19QSVBFX0RFRixcbn0gZnJvbSAnLi9yZW5kZXIzL2ZpZWxkcyc7XG5leHBvcnQge1xuICBBdHRyaWJ1dGVNYXJrZXIgYXMgybVBdHRyaWJ1dGVNYXJrZXIsXG4gIENvbXBvbmVudERlZiBhcyDJtUNvbXBvbmVudERlZixcbiAgQ29tcG9uZW50RmFjdG9yeSBhcyDJtVJlbmRlcjNDb21wb25lbnRGYWN0b3J5LFxuICBDb21wb25lbnRSZWYgYXMgybVSZW5kZXIzQ29tcG9uZW50UmVmLFxuICBDb21wb25lbnRUeXBlIGFzIMm1Q29tcG9uZW50VHlwZSxcbiAgQ3NzU2VsZWN0b3JMaXN0IGFzIMm1Q3NzU2VsZWN0b3JMaXN0LFxuICBkZXRlY3RDaGFuZ2VzIGFzIMm1ZGV0ZWN0Q2hhbmdlcyxcbiAgRGlyZWN0aXZlRGVmIGFzIMm1RGlyZWN0aXZlRGVmLFxuICBEaXJlY3RpdmVUeXBlIGFzIMm1RGlyZWN0aXZlVHlwZSxcbiAgZ2V0RGlyZWN0aXZlcyBhcyDJtWdldERpcmVjdGl2ZXMsXG4gIGdldEhvc3RFbGVtZW50IGFzIMm1Z2V0SG9zdEVsZW1lbnQsXG4gIExpZmVjeWNsZUhvb2tzRmVhdHVyZSBhcyDJtUxpZmVjeWNsZUhvb2tzRmVhdHVyZSxcbiAgTmdNb2R1bGVGYWN0b3J5IGFzIMm1TmdNb2R1bGVGYWN0b3J5LFxuICBOZ01vZHVsZVJlZiBhcyDJtVJlbmRlcjNOZ01vZHVsZVJlZixcbiAgTmdNb2R1bGVUeXBlIGFzIMm1TmdNb2R1bGVUeXBlLFxuICBOT19DSEFOR0UgYXMgybVOT19DSEFOR0UsXG4gIFBpcGVEZWYgYXMgybVQaXBlRGVmLFxuICBSZW5kZXJGbGFncyBhcyDJtVJlbmRlckZsYWdzLFxuICBzZXRDbGFzc01ldGFkYXRhIGFzIMm1c2V0Q2xhc3NNZXRhZGF0YSxcbiAgc2V0Q2xhc3NNZXRhZGF0YUFzeW5jIGFzIMm1c2V0Q2xhc3NNZXRhZGF0YUFzeW5jLFxuICDJtXNldENsYXNzRGVidWdJbmZvLFxuICBzZXRMb2NhbGVJZCBhcyDJtXNldExvY2FsZUlkLFxuICBzdG9yZSBhcyDJtXN0b3JlLFxuICDJtURlZmVyQmxvY2tEZXBlbmRlbmN5SW50ZXJjZXB0b3IsXG4gIMm1REVGRVJfQkxPQ0tfREVQRU5ERU5DWV9JTlRFUkNFUFRPUixcbiAgybVERUZFUl9CTE9DS19DT05GSUcsXG4gIMm1ybVhZHZhbmNlLFxuICDJtcm1YXR0cmlidXRlLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUxLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUyLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGUzLFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU0LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU1LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU2LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU3LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGU4LFxuICDJtcm1YXR0cmlidXRlSW50ZXJwb2xhdGVWLFxuICDJtcm1Y2xhc3NNYXAsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNyxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZVYsXG4gIMm1ybVjbGFzc1Byb3AsXG4gIMm1ybVDb21wb25lbnREZWNsYXJhdGlvbixcbiAgybXJtWNvbmRpdGlvbmFsLFxuICDJtcm1Y29udGVudFF1ZXJ5LFxuICDJtcm1Y29tcG9uZW50SW5zdGFuY2UsXG4gIMm1ybVDb3B5RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVkZWZpbmVDb21wb25lbnQsXG4gIMm1ybVkZWZpbmVEaXJlY3RpdmUsXG4gIMm1ybVkZWZpbmVOZ01vZHVsZSxcbiAgybXJtWRlZmluZVBpcGUsXG4gIMm1ybVEaXJlY3RpdmVEZWNsYXJhdGlvbixcbiAgybXJtWRpcmVjdGl2ZUluamVjdCxcbiAgybXJtWRpc2FibGVCaW5kaW5ncyxcbiAgybXJtWVsZW1lbnQsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyLFxuICDJtcm1ZWxlbWVudENvbnRhaW5lckVuZCxcbiAgybXJtWVsZW1lbnRDb250YWluZXJTdGFydCxcbiAgybXJtWVsZW1lbnRFbmQsXG4gIMm1ybVlbGVtZW50U3RhcnQsXG4gIMm1ybVlbmFibGVCaW5kaW5ncyxcbiAgybXJtUZhY3RvcnlEZWNsYXJhdGlvbixcbiAgybXJtWdldEN1cnJlbnRWaWV3LFxuICDJtcm1Z2V0SW5oZXJpdGVkRmFjdG9yeSxcbiAgybXJtWhvc3RQcm9wZXJ0eSxcbiAgybXJtWkxOG4sXG4gIMm1ybVpMThuQXBwbHksXG4gIMm1ybVpMThuQXR0cmlidXRlcyxcbiAgybXJtWkxOG5FbmQsXG4gIMm1ybVpMThuRXhwLFxuICDJtcm1aTE4blBvc3Rwcm9jZXNzLFxuICDJtcm1aTE4blN0YXJ0LFxuICDJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1SW5wdXRUcmFuc2Zvcm1zRmVhdHVyZSxcbiAgybXJtWluamVjdEF0dHJpYnV0ZSxcbiAgybXJtUluamVjdG9yRGVjbGFyYXRpb24sXG4gIMm1ybVpbnZhbGlkRmFjdG9yeSxcbiAgybXJtWxpc3RlbmVyLFxuICDJtcm1bG9hZFF1ZXJ5LFxuICDJtcm1bmFtZXNwYWNlSFRNTCxcbiAgybXJtW5hbWVzcGFjZU1hdGhNTCxcbiAgybXJtW5hbWVzcGFjZVNWRyxcbiAgybXJtW5leHRDb250ZXh0LFxuICDJtcm1TmdNb2R1bGVEZWNsYXJhdGlvbixcbiAgybXJtU5nT25DaGFuZ2VzRmVhdHVyZSxcbiAgybXJtXBpcGUsXG4gIMm1ybVwaXBlQmluZDEsXG4gIMm1ybVwaXBlQmluZDIsXG4gIMm1ybVwaXBlQmluZDMsXG4gIMm1ybVwaXBlQmluZDQsXG4gIMm1ybVwaXBlQmluZFYsXG4gIMm1ybVQaXBlRGVjbGFyYXRpb24sXG4gIMm1ybVwcm9qZWN0aW9uLFxuICDJtcm1cHJvamVjdGlvbkRlZixcbiAgybXJtXByb3BlcnR5LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUxLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTIsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU0LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNixcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU3LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTgsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlVixcbiAgybXJtVByb3ZpZGVyc0ZlYXR1cmUsXG4gIMm1ybVIb3N0RGlyZWN0aXZlc0ZlYXR1cmUsXG4gIMm1ybVwdXJlRnVuY3Rpb24wLFxuICDJtcm1cHVyZUZ1bmN0aW9uMSxcbiAgybXJtXB1cmVGdW5jdGlvbjIsXG4gIMm1ybVwdXJlRnVuY3Rpb24zLFxuICDJtcm1cHVyZUZ1bmN0aW9uNCxcbiAgybXJtXB1cmVGdW5jdGlvbjUsXG4gIMm1ybVwdXJlRnVuY3Rpb242LFxuICDJtcm1cHVyZUZ1bmN0aW9uNyxcbiAgybXJtXB1cmVGdW5jdGlvbjgsXG4gIMm1ybVwdXJlRnVuY3Rpb25WLFxuICDJtcm1cXVlcnlSZWZyZXNoLFxuICDJtcm1cmVmZXJlbmNlLFxuICDJtcm1cmVzZXRWaWV3LFxuICDJtcm1cmVzb2x2ZUJvZHksXG4gIMm1ybVyZXNvbHZlRG9jdW1lbnQsXG4gIMm1ybVyZXNvbHZlV2luZG93LFxuICDJtcm1cmVzdG9yZVZpZXcsXG5cbiAgybXJtXJlcGVhdGVyLFxuICDJtcm1cmVwZWF0ZXJDcmVhdGUsXG4gIMm1ybVyZXBlYXRlclRyYWNrQnlJZGVudGl0eSxcbiAgybXJtXJlcGVhdGVyVHJhY2tCeUluZGV4LFxuXG4gIMm1ybVzZXRDb21wb25lbnRTY29wZSxcbiAgybXJtXNldE5nTW9kdWxlU2NvcGUsXG4gIMm1ybVnZXRDb21wb25lbnREZXBzRmFjdG9yeSxcbiAgybXJtVN0YW5kYWxvbmVGZWF0dXJlLFxuICDJtcm1c3R5bGVNYXAsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNyxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZVYsXG4gIMm1ybVzdHlsZVByb3AsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTIsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTMsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTUsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTYsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZTgsXG4gIMm1ybVzdHlsZVByb3BJbnRlcnBvbGF0ZVYsXG4gIMm1ybVzeW50aGV0aWNIb3N0TGlzdGVuZXIsXG4gIMm1ybVzeW50aGV0aWNIb3N0UHJvcGVydHksXG4gIMm1ybV0ZW1wbGF0ZSxcbiAgybXJtXRlbXBsYXRlUmVmRXh0cmFjdG9yLFxuICDJtcm1ZGVmZXIsXG4gIMm1ybVkZWZlcldoZW4sXG4gIMm1ybVkZWZlck9uSWRsZSxcbiAgybXJtWRlZmVyT25JbW1lZGlhdGUsXG4gIMm1ybVkZWZlck9uVGltZXIsXG4gIMm1ybVkZWZlck9uSG92ZXIsXG4gIMm1ybVkZWZlck9uSW50ZXJhY3Rpb24sXG4gIMm1ybVkZWZlck9uVmlld3BvcnQsXG4gIMm1ybVkZWZlclByZWZldGNoV2hlbixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbklkbGUsXG4gIMm1ybVkZWZlclByZWZldGNoT25JbW1lZGlhdGUsXG4gIMm1ybVkZWZlclByZWZldGNoT25UaW1lcixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkhvdmVyLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSW50ZXJhY3Rpb24sXG4gIMm1ybVkZWZlclByZWZldGNoT25WaWV3cG9ydCxcbiAgybXJtWRlZmVyRW5hYmxlVGltZXJTY2hlZHVsaW5nLFxuICDJtcm1dGV4dCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTEsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUyLFxuICDJtcm1dGV4dEludGVycG9sYXRlMyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTQsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU1LFxuICDJtcm1dGV4dEludGVycG9sYXRlNixcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTcsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU4LFxuICDJtcm1dGV4dEludGVycG9sYXRlVixcbiAgybXJtXZpZXdRdWVyeSxcbiAgybVnZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93bkVsZW1lbnRTdHJpY3RNb2RlLFxuICDJtWdldFVua25vd25Qcm9wZXJ0eVN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZVxufSBmcm9tICcuL3JlbmRlcjMvaW5kZXgnO1xuZXhwb3J0IHtcbiAgQ09OVEFJTkVSX0hFQURFUl9PRkZTRVQgYXMgybVDT05UQUlORVJfSEVBREVSX09GRlNFVCxcbn0gZnJvbSAnLi9yZW5kZXIzL2ludGVyZmFjZXMvY29udGFpbmVyJztcbmV4cG9ydCB7XG4gIExDb250ZXh0IGFzIMm1TENvbnRleHQsXG59IGZyb20gJy4vcmVuZGVyMy9pbnRlcmZhY2VzL2NvbnRleHQnO1xuZXhwb3J0IHtcbiAgc2V0RG9jdW1lbnQgYXMgybVzZXREb2N1bWVudFxufSBmcm9tICcuL3JlbmRlcjMvaW50ZXJmYWNlcy9kb2N1bWVudCc7XG5leHBvcnQge1xuICBjb21waWxlQ29tcG9uZW50IGFzIMm1Y29tcGlsZUNvbXBvbmVudCxcbiAgY29tcGlsZURpcmVjdGl2ZSBhcyDJtWNvbXBpbGVEaXJlY3RpdmUsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvZGlyZWN0aXZlJztcbmV4cG9ydCB7XG4gIHJlc2V0Sml0T3B0aW9ucyBhcyDJtXJlc2V0Sml0T3B0aW9ucyxcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9qaXRfb3B0aW9ucyc7XG5leHBvcnQge1xuICBjb21waWxlTmdNb2R1bGUgYXMgybVjb21waWxlTmdNb2R1bGUsXG4gIGNvbXBpbGVOZ01vZHVsZURlZnMgYXMgybVjb21waWxlTmdNb2R1bGVEZWZzLFxuICBmbHVzaE1vZHVsZVNjb3BpbmdRdWV1ZUFzTXVjaEFzUG9zc2libGUgYXMgybVmbHVzaE1vZHVsZVNjb3BpbmdRdWV1ZUFzTXVjaEFzUG9zc2libGUsXG4gIHBhdGNoQ29tcG9uZW50RGVmV2l0aFNjb3BlIGFzIMm1cGF0Y2hDb21wb25lbnREZWZXaXRoU2NvcGUsXG4gIHJlc2V0Q29tcGlsZWRDb21wb25lbnRzIGFzIMm1cmVzZXRDb21waWxlZENvbXBvbmVudHMsXG4gIHRyYW5zaXRpdmVTY29wZXNGb3IgYXMgybV0cmFuc2l0aXZlU2NvcGVzRm9yLFxufSBmcm9tICcuL3JlbmRlcjMvaml0L21vZHVsZSc7XG5leHBvcnQge1xuICBGYWN0b3J5VGFyZ2V0IGFzIMm1ybVGYWN0b3J5VGFyZ2V0LFxuICDJtcm1bmdEZWNsYXJlQ2xhc3NNZXRhZGF0YSxcbiAgybXJtW5nRGVjbGFyZUNvbXBvbmVudCxcbiAgybXJtW5nRGVjbGFyZURpcmVjdGl2ZSxcbiAgybXJtW5nRGVjbGFyZUZhY3RvcnksXG4gIMm1ybVuZ0RlY2xhcmVJbmplY3RhYmxlLFxuICDJtcm1bmdEZWNsYXJlSW5qZWN0b3IsXG4gIMm1ybVuZ0RlY2xhcmVOZ01vZHVsZSxcbiAgybXJtW5nRGVjbGFyZVBpcGUsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvcGFydGlhbCc7XG5leHBvcnQge1xuICBjb21waWxlUGlwZSBhcyDJtWNvbXBpbGVQaXBlLFxufSBmcm9tICcuL3JlbmRlcjMvaml0L3BpcGUnO1xuZXhwb3J0IHtcbiAgaXNOZ01vZHVsZSBhcyDJtWlzTmdNb2R1bGVcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC91dGlsJztcbmV4cG9ydCB7IFByb2ZpbGVyIGFzIMm1UHJvZmlsZXIsIFByb2ZpbGVyRXZlbnQgYXMgybVQcm9maWxlckV2ZW50IH0gZnJvbSAnLi9yZW5kZXIzL3Byb2ZpbGVyJztcbmV4cG9ydCB7XG4gIHB1Ymxpc2hEZWZhdWx0R2xvYmFsVXRpbHMgYXMgybVwdWJsaXNoRGVmYXVsdEdsb2JhbFV0aWxzXG4sXG4gIHB1Ymxpc2hHbG9iYWxVdGlsIGFzIMm1cHVibGlzaEdsb2JhbFV0aWx9IGZyb20gJy4vcmVuZGVyMy91dGlsL2dsb2JhbF91dGlscyc7XG5leHBvcnQge1ZpZXdSZWYgYXMgybVWaWV3UmVmfSBmcm9tICcuL3JlbmRlcjMvdmlld19yZWYnO1xuZXhwb3J0IHtcbiAgYnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RIdG1sIGFzIMm1YnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RIdG1sLFxuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdFJlc291cmNlVXJsIGFzIMm1YnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RSZXNvdXJjZVVybCxcbiAgYnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RTY3JpcHQgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdFNjcmlwdCxcbiAgYnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RTdHlsZSBhcyDJtWJ5cGFzc1Nhbml0aXphdGlvblRydXN0U3R5bGUsXG4gIGJ5cGFzc1Nhbml0aXphdGlvblRydXN0VXJsIGFzIMm1YnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RVcmwsXG59IGZyb20gJy4vc2FuaXRpemF0aW9uL2J5cGFzcyc7XG5leHBvcnQge1xuICDJtcm1c2FuaXRpemVIdG1sLFxuICDJtcm1c2FuaXRpemVSZXNvdXJjZVVybCxcbiAgybXJtXNhbml0aXplU2NyaXB0LFxuICDJtcm1c2FuaXRpemVTdHlsZSxcbiAgybXJtXNhbml0aXplVXJsLFxuICDJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsLFxuICDJtcm1dHJ1c3RDb25zdGFudEh0bWwsXG4gIMm1ybV0cnVzdENvbnN0YW50UmVzb3VyY2VVcmwsXG59IGZyb20gJy4vc2FuaXRpemF0aW9uL3Nhbml0aXphdGlvbic7XG5leHBvcnQge1xuICDJtcm1dmFsaWRhdGVJZnJhbWVBdHRyaWJ1dGUsXG59IGZyb20gJy4vc2FuaXRpemF0aW9uL2lmcmFtZV9hdHRyc192YWxpZGF0aW9uJztcbmV4cG9ydCB7XG4gIG5vU2lkZUVmZmVjdHMgYXMgybVub1NpZGVFZmZlY3RzLFxufSBmcm9tICcuL3V0aWwvY2xvc3VyZSc7XG5leHBvcnQgeyBBZnRlclJlbmRlckV2ZW50TWFuYWdlciBhcyDJtUFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyLCBpbnRlcm5hbEFmdGVyTmV4dFJlbmRlciBhcyDJtWludGVybmFsQWZ0ZXJOZXh0UmVuZGVyIH0gZnJvbSAnLi9yZW5kZXIzL2FmdGVyX3JlbmRlcl9ob29rcyc7XG5leHBvcnQge2RlcHNUcmFja2VyIGFzIMm1ZGVwc1RyYWNrZXIsIFVTRV9SVU5USU1FX0RFUFNfVFJBQ0tFUl9GT1JfSklUIGFzIMm1VVNFX1JVTlRJTUVfREVQU19UUkFDS0VSX0ZPUl9KSVR9IGZyb20gJy4vcmVuZGVyMy9kZXBzX3RyYWNrZXIvZGVwc190cmFja2VyJztcbmV4cG9ydCB7Z2VuZXJhdGVTdGFuZGFsb25lSW5EZWNsYXJhdGlvbnNFcnJvciBhcyDJtWdlbmVyYXRlU3RhbmRhbG9uZUluRGVjbGFyYXRpb25zRXJyb3J9IGZyb20gJy4vcmVuZGVyMy9qaXQvbW9kdWxlJztcbmV4cG9ydCB7Z2V0QXN5bmNDbGFzc01ldGFkYXRhRm4gYXMgybVnZXRBc3luY0NsYXNzTWV0YWRhdGFGbn0gZnJvbSAnLi9yZW5kZXIzL21ldGFkYXRhJztcblxuLy8gY2xhbmctZm9ybWF0IG9uXG4iXX0=
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILG1CQUFtQjtBQUNuQiw0RkFBNEY7QUFDNUYsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiw0RUFBNEU7QUFDNUUsT0FBTyxFQUNMLHNCQUFzQixJQUFJLHVCQUF1QixFQUNqRCxlQUFlLElBQUksZ0JBQWdCLEVBQ3BDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCxZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxVQUFVLElBQUksV0FBVyxFQUN6QixXQUFXLElBQUksWUFBWSxFQUMzQixZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxjQUFjLElBQUksZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUNMLG9CQUFvQixJQUFJLHNCQUFzQixFQUM5QyxtQ0FBbUMsSUFBSSxvQ0FBb0MsR0FDNUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUt6QyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDM0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsYUFBYSxJQUFJLGNBQWMsRUFDL0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsV0FBVyxJQUFJLFlBQVksR0FDNUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBR0wsZ0JBQWdCLElBQUksd0JBQXdC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Q3hKLE9BQU8sRUFBQyxXQUFXLElBQUksWUFBWSxFQUFFLGdDQUFnQyxJQUFJLGlDQUFpQyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdkosT0FBTyxFQUFDLHFDQUFxQyxJQUFJLHNDQUFzQyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDckgsT0FBTyxFQUFDLHVCQUF1QixJQUFJLHdCQUF3QixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdkYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIGNsYW5nLWZvcm1hdCBvZmZcbi8vIHdlIHJlZXhwb3J0IHRoZXNlIHN5bWJvbHMganVzdCBzbyB0aGF0IHRoZXkgYXJlIHJldGFpbmVkIGR1cmluZyB0aGUgZGVhZCBjb2RlIGVsaW1pbmF0aW9uXG4vLyBwZXJmb3JtZWQgYnkgcm9sbHVwIHdoaWxlIGl0J3MgY3JlYXRpbmcgZmVzbSBmaWxlcy5cbi8vXG4vLyBubyBjb2RlIGFjdHVhbGx5IGltcG9ydHMgdGhlc2Ugc3ltYm9scyBmcm9tIHRoZSBAYW5ndWxhci9jb3JlIGVudHJ5IHBvaW50XG5leHBvcnQge1xuICBjb21waWxlTmdNb2R1bGVGYWN0b3J5IGFzIMm1Y29tcGlsZU5nTW9kdWxlRmFjdG9yeSxcbiAgaXNCb3VuZFRvTW9kdWxlIGFzIMm1aXNCb3VuZFRvTW9kdWxlXG59IGZyb20gJy4vYXBwbGljYXRpb25fcmVmJztcbmV4cG9ydCB7XG4gIGluamVjdENoYW5nZURldGVjdG9yUmVmIGFzIMm1aW5qZWN0Q2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJy4vY2hhbmdlX2RldGVjdGlvbi9jaGFuZ2VfZGV0ZWN0b3JfcmVmJztcbmV4cG9ydCB7XG4gIGdldERlYnVnTm9kZSBhcyDJtWdldERlYnVnTm9kZSxcbn0gZnJvbSAnLi9kZWJ1Zy9kZWJ1Z19ub2RlJztcbmV4cG9ydCB7XG4gIE5HX0lOSl9ERUYgYXMgybVOR19JTkpfREVGLFxuICBOR19QUk9WX0RFRiBhcyDJtU5HX1BST1ZfREVGLFxuICBpc0luamVjdGFibGUgYXMgybVpc0luamVjdGFibGUsXG59IGZyb20gJy4vZGkvaW50ZXJmYWNlL2RlZnMnO1xuZXhwb3J0IHtjcmVhdGVJbmplY3RvciBhcyDJtWNyZWF0ZUluamVjdG9yfSBmcm9tICcuL2RpL2NyZWF0ZV9pbmplY3Rvcic7XG5leHBvcnQge1xuICByZWdpc3Rlck5nTW9kdWxlVHlwZSBhcyDJtcm1cmVnaXN0ZXJOZ01vZHVsZVR5cGUsXG4gIHNldEFsbG93RHVwbGljYXRlTmdNb2R1bGVJZHNGb3JUZXN0IGFzIMm1c2V0QWxsb3dEdXBsaWNhdGVOZ01vZHVsZUlkc0ZvclRlc3QsXG59IGZyb20gJy4vbGlua2VyL25nX21vZHVsZV9yZWdpc3RyYXRpb24nO1xuZXhwb3J0IHtcbiAgTmdNb2R1bGVEZWYgYXMgybVOZ01vZHVsZURlZixcbiAgTmdNb2R1bGVUcmFuc2l0aXZlU2NvcGVzIGFzIMm1TmdNb2R1bGVUcmFuc2l0aXZlU2NvcGVzLFxufSBmcm9tICcuL21ldGFkYXRhL25nX21vZHVsZV9kZWYnO1xuZXhwb3J0IHtcbiAgZ2V0TENvbnRleHQgYXMgybVnZXRMQ29udGV4dFxufSBmcm9tICcuL3JlbmRlcjMvY29udGV4dF9kaXNjb3ZlcnknO1xuZXhwb3J0IHtcbiAgTkdfQ09NUF9ERUYgYXMgybVOR19DT01QX0RFRixcbiAgTkdfRElSX0RFRiBhcyDJtU5HX0RJUl9ERUYsXG4gIE5HX0VMRU1FTlRfSUQgYXMgybVOR19FTEVNRU5UX0lELFxuICBOR19NT0RfREVGIGFzIMm1TkdfTU9EX0RFRixcbiAgTkdfUElQRV9ERUYgYXMgybVOR19QSVBFX0RFRixcbn0gZnJvbSAnLi9yZW5kZXIzL2ZpZWxkcyc7XG5leHBvcnQge1xuICBBdHRyaWJ1dGVNYXJrZXIgYXMgybVBdHRyaWJ1dGVNYXJrZXIsXG4gIENvbXBvbmVudERlZiBhcyDJtUNvbXBvbmVudERlZixcbiAgQ29tcG9uZW50RmFjdG9yeSBhcyDJtVJlbmRlcjNDb21wb25lbnRGYWN0b3J5LFxuICBDb21wb25lbnRSZWYgYXMgybVSZW5kZXIzQ29tcG9uZW50UmVmLFxuICBDb21wb25lbnRUeXBlIGFzIMm1Q29tcG9uZW50VHlwZSxcbiAgQ3NzU2VsZWN0b3JMaXN0IGFzIMm1Q3NzU2VsZWN0b3JMaXN0LFxuICBEaXJlY3RpdmVEZWYgYXMgybVEaXJlY3RpdmVEZWYsXG4gIERpcmVjdGl2ZVR5cGUgYXMgybVEaXJlY3RpdmVUeXBlLFxuICBnZXREaXJlY3RpdmVzIGFzIMm1Z2V0RGlyZWN0aXZlcyxcbiAgZ2V0SG9zdEVsZW1lbnQgYXMgybVnZXRIb3N0RWxlbWVudCxcbiAgTGlmZWN5Y2xlSG9va3NGZWF0dXJlIGFzIMm1TGlmZWN5Y2xlSG9va3NGZWF0dXJlLFxuICBOZ01vZHVsZUZhY3RvcnkgYXMgybVOZ01vZHVsZUZhY3RvcnksXG4gIE5nTW9kdWxlUmVmIGFzIMm1UmVuZGVyM05nTW9kdWxlUmVmLFxuICBOZ01vZHVsZVR5cGUgYXMgybVOZ01vZHVsZVR5cGUsXG4gIE5PX0NIQU5HRSBhcyDJtU5PX0NIQU5HRSxcbiAgUGlwZURlZiBhcyDJtVBpcGVEZWYsXG4gIFJlbmRlckZsYWdzIGFzIMm1UmVuZGVyRmxhZ3MsXG4gIHNldENsYXNzTWV0YWRhdGEgYXMgybVzZXRDbGFzc01ldGFkYXRhLFxuICBzZXRDbGFzc01ldGFkYXRhQXN5bmMgYXMgybVzZXRDbGFzc01ldGFkYXRhQXN5bmMsXG4gIMm1c2V0Q2xhc3NEZWJ1Z0luZm8sXG4gIHNldExvY2FsZUlkIGFzIMm1c2V0TG9jYWxlSWQsXG4gIHN0b3JlIGFzIMm1c3RvcmUsXG4gIMm1RGVmZXJCbG9ja0RlcGVuZGVuY3lJbnRlcmNlcHRvcixcbiAgybVERUZFUl9CTE9DS19ERVBFTkRFTkNZX0lOVEVSQ0VQVE9SLFxuICDJtURFRkVSX0JMT0NLX0NPTkZJRyxcbiAgybXJtWFkdmFuY2UsXG4gIMm1ybVhdHRyaWJ1dGUsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTEsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTIsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTMsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTYsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTcsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTgsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZVYsXG4gIMm1ybVjbGFzc01hcCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUxLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTIsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMyxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU0LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTUsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNixcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU3LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTgsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlVixcbiAgybXJtWNsYXNzUHJvcCxcbiAgybXJtUNvbXBvbmVudERlY2xhcmF0aW9uLFxuICDJtcm1Y29uZGl0aW9uYWwsXG4gIMm1ybVjb250ZW50UXVlcnksXG4gIMm1ybVjb21wb25lbnRJbnN0YW5jZSxcbiAgybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZSxcbiAgybXJtWRlZmluZUNvbXBvbmVudCxcbiAgybXJtWRlZmluZURpcmVjdGl2ZSxcbiAgybXJtWRlZmluZU5nTW9kdWxlLFxuICDJtcm1ZGVmaW5lUGlwZSxcbiAgybXJtURpcmVjdGl2ZURlY2xhcmF0aW9uLFxuICDJtcm1ZGlyZWN0aXZlSW5qZWN0LFxuICDJtcm1ZGlzYWJsZUJpbmRpbmdzLFxuICDJtcm1ZWxlbWVudCxcbiAgybXJtWVsZW1lbnRDb250YWluZXIsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyRW5kLFxuICDJtcm1ZWxlbWVudENvbnRhaW5lclN0YXJ0LFxuICDJtcm1ZWxlbWVudEVuZCxcbiAgybXJtWVsZW1lbnRTdGFydCxcbiAgybXJtWVuYWJsZUJpbmRpbmdzLFxuICDJtcm1RmFjdG9yeURlY2xhcmF0aW9uLFxuICDJtcm1Z2V0Q3VycmVudFZpZXcsXG4gIMm1ybVnZXRJbmhlcml0ZWRGYWN0b3J5LFxuICDJtcm1aG9zdFByb3BlcnR5LFxuICDJtcm1aTE4bixcbiAgybXJtWkxOG5BcHBseSxcbiAgybXJtWkxOG5BdHRyaWJ1dGVzLFxuICDJtcm1aTE4bkVuZCxcbiAgybXJtWkxOG5FeHAsXG4gIMm1ybVpMThuUG9zdHByb2Nlc3MsXG4gIMm1ybVpMThuU3RhcnQsXG4gIMm1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVJbnB1dFRyYW5zZm9ybXNGZWF0dXJlLFxuICDJtcm1aW5qZWN0QXR0cmlidXRlLFxuICDJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbixcbiAgybXJtWludmFsaWRGYWN0b3J5LFxuICDJtcm1bGlzdGVuZXIsXG4gIMm1ybVsb2FkUXVlcnksXG4gIMm1ybVuYW1lc3BhY2VIVE1MLFxuICDJtcm1bmFtZXNwYWNlTWF0aE1MLFxuICDJtcm1bmFtZXNwYWNlU1ZHLFxuICDJtcm1bmV4dENvbnRleHQsXG4gIMm1ybVOZ01vZHVsZURlY2xhcmF0aW9uLFxuICDJtcm1TmdPbkNoYW5nZXNGZWF0dXJlLFxuICDJtcm1cGlwZSxcbiAgybXJtXBpcGVCaW5kMSxcbiAgybXJtXBpcGVCaW5kMixcbiAgybXJtXBpcGVCaW5kMyxcbiAgybXJtXBpcGVCaW5kNCxcbiAgybXJtXBpcGVCaW5kVixcbiAgybXJtVBpcGVEZWNsYXJhdGlvbixcbiAgybXJtXByb2plY3Rpb24sXG4gIMm1ybVwcm9qZWN0aW9uRGVmLFxuICDJtcm1cHJvcGVydHksXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMixcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUzLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU2LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTcsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlOCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGVWLFxuICDJtcm1UHJvdmlkZXJzRmVhdHVyZSxcbiAgybXJtUhvc3REaXJlY3RpdmVzRmVhdHVyZSxcbiAgybXJtXB1cmVGdW5jdGlvbjAsXG4gIMm1ybVwdXJlRnVuY3Rpb24xLFxuICDJtcm1cHVyZUZ1bmN0aW9uMixcbiAgybXJtXB1cmVGdW5jdGlvbjMsXG4gIMm1ybVwdXJlRnVuY3Rpb240LFxuICDJtcm1cHVyZUZ1bmN0aW9uNSxcbiAgybXJtXB1cmVGdW5jdGlvbjYsXG4gIMm1ybVwdXJlRnVuY3Rpb243LFxuICDJtcm1cHVyZUZ1bmN0aW9uOCxcbiAgybXJtXB1cmVGdW5jdGlvblYsXG4gIMm1ybVxdWVyeVJlZnJlc2gsXG4gIMm1ybVyZWZlcmVuY2UsXG4gIMm1ybVyZXNldFZpZXcsXG4gIMm1ybVyZXNvbHZlQm9keSxcbiAgybXJtXJlc29sdmVEb2N1bWVudCxcbiAgybXJtXJlc29sdmVXaW5kb3csXG4gIMm1ybVyZXN0b3JlVmlldyxcblxuICDJtcm1cmVwZWF0ZXIsXG4gIMm1ybVyZXBlYXRlckNyZWF0ZSxcbiAgybXJtXJlcGVhdGVyVHJhY2tCeUlkZW50aXR5LFxuICDJtcm1cmVwZWF0ZXJUcmFja0J5SW5kZXgsXG5cbiAgybXJtXNldENvbXBvbmVudFNjb3BlLFxuICDJtcm1c2V0TmdNb2R1bGVTY29wZSxcbiAgybXJtWdldENvbXBvbmVudERlcHNGYWN0b3J5LFxuICDJtcm1U3RhbmRhbG9uZUZlYXR1cmUsXG4gIMm1ybVzdHlsZU1hcCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTIsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMyxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTUsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTgsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlVixcbiAgybXJtXN0eWxlUHJvcCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMSxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMyxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNixcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNyxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlVixcbiAgybXJtXN5bnRoZXRpY0hvc3RMaXN0ZW5lcixcbiAgybXJtXN5bnRoZXRpY0hvc3RQcm9wZXJ0eSxcbiAgybXJtXRlbXBsYXRlLFxuICDJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3IsXG4gIMm1ybVkZWZlcixcbiAgybXJtWRlZmVyV2hlbixcbiAgybXJtWRlZmVyT25JZGxlLFxuICDJtcm1ZGVmZXJPbkltbWVkaWF0ZSxcbiAgybXJtWRlZmVyT25UaW1lcixcbiAgybXJtWRlZmVyT25Ib3ZlcixcbiAgybXJtWRlZmVyT25JbnRlcmFjdGlvbixcbiAgybXJtWRlZmVyT25WaWV3cG9ydCxcbiAgybXJtWRlZmVyUHJlZmV0Y2hXaGVuLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSWRsZSxcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkltbWVkaWF0ZSxcbiAgybXJtWRlZmVyUHJlZmV0Y2hPblRpbWVyLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSG92ZXIsXG4gIMm1ybVkZWZlclByZWZldGNoT25JbnRlcmFjdGlvbixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPblZpZXdwb3J0LFxuICDJtcm1ZGVmZXJFbmFibGVUaW1lclNjaGVkdWxpbmcsXG4gIMm1ybV0ZXh0LFxuICDJtcm1dGV4dEludGVycG9sYXRlLFxuICDJtcm1dGV4dEludGVycG9sYXRlMSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUzLFxuICDJtcm1dGV4dEludGVycG9sYXRlNCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU2LFxuICDJtcm1dGV4dEludGVycG9sYXRlNyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGVWLFxuICDJtcm1dmlld1F1ZXJ5LFxuICDJtWdldFVua25vd25FbGVtZW50U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1Z2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duUHJvcGVydHlTdHJpY3RNb2RlXG59IGZyb20gJy4vcmVuZGVyMy9pbmRleCc7XG5leHBvcnQge1xuICBDT05UQUlORVJfSEVBREVSX09GRlNFVCBhcyDJtUNPTlRBSU5FUl9IRUFERVJfT0ZGU0VULFxufSBmcm9tICcuL3JlbmRlcjMvaW50ZXJmYWNlcy9jb250YWluZXInO1xuZXhwb3J0IHtcbiAgTENvbnRleHQgYXMgybVMQ29udGV4dCxcbn0gZnJvbSAnLi9yZW5kZXIzL2ludGVyZmFjZXMvY29udGV4dCc7XG5leHBvcnQge1xuICBzZXREb2N1bWVudCBhcyDJtXNldERvY3VtZW50XG59IGZyb20gJy4vcmVuZGVyMy9pbnRlcmZhY2VzL2RvY3VtZW50JztcbmV4cG9ydCB7XG4gIGNvbXBpbGVDb21wb25lbnQgYXMgybVjb21waWxlQ29tcG9uZW50LFxuICBjb21waWxlRGlyZWN0aXZlIGFzIMm1Y29tcGlsZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9kaXJlY3RpdmUnO1xuZXhwb3J0IHtcbiAgcmVzZXRKaXRPcHRpb25zIGFzIMm1cmVzZXRKaXRPcHRpb25zLFxufSBmcm9tICcuL3JlbmRlcjMvaml0L2ppdF9vcHRpb25zJztcbmV4cG9ydCB7XG4gIGNvbXBpbGVOZ01vZHVsZSBhcyDJtWNvbXBpbGVOZ01vZHVsZSxcbiAgY29tcGlsZU5nTW9kdWxlRGVmcyBhcyDJtWNvbXBpbGVOZ01vZHVsZURlZnMsXG4gIGZsdXNoTW9kdWxlU2NvcGluZ1F1ZXVlQXNNdWNoQXNQb3NzaWJsZSBhcyDJtWZsdXNoTW9kdWxlU2NvcGluZ1F1ZXVlQXNNdWNoQXNQb3NzaWJsZSxcbiAgcGF0Y2hDb21wb25lbnREZWZXaXRoU2NvcGUgYXMgybVwYXRjaENvbXBvbmVudERlZldpdGhTY29wZSxcbiAgcmVzZXRDb21waWxlZENvbXBvbmVudHMgYXMgybVyZXNldENvbXBpbGVkQ29tcG9uZW50cyxcbiAgdHJhbnNpdGl2ZVNjb3Blc0ZvciBhcyDJtXRyYW5zaXRpdmVTY29wZXNGb3IsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvbW9kdWxlJztcbmV4cG9ydCB7XG4gIEZhY3RvcnlUYXJnZXQgYXMgybXJtUZhY3RvcnlUYXJnZXQsXG4gIMm1ybVuZ0RlY2xhcmVDbGFzc01ldGFkYXRhLFxuICDJtcm1bmdEZWNsYXJlQ29tcG9uZW50LFxuICDJtcm1bmdEZWNsYXJlRGlyZWN0aXZlLFxuICDJtcm1bmdEZWNsYXJlRmFjdG9yeSxcbiAgybXJtW5nRGVjbGFyZUluamVjdGFibGUsXG4gIMm1ybVuZ0RlY2xhcmVJbmplY3RvcixcbiAgybXJtW5nRGVjbGFyZU5nTW9kdWxlLFxuICDJtcm1bmdEZWNsYXJlUGlwZSxcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9wYXJ0aWFsJztcbmV4cG9ydCB7XG4gIGNvbXBpbGVQaXBlIGFzIMm1Y29tcGlsZVBpcGUsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvcGlwZSc7XG5leHBvcnQge1xuICBpc05nTW9kdWxlIGFzIMm1aXNOZ01vZHVsZVxufSBmcm9tICcuL3JlbmRlcjMvaml0L3V0aWwnO1xuZXhwb3J0IHsgUHJvZmlsZXIgYXMgybVQcm9maWxlciwgUHJvZmlsZXJFdmVudCBhcyDJtVByb2ZpbGVyRXZlbnQgfSBmcm9tICcuL3JlbmRlcjMvcHJvZmlsZXInO1xuZXhwb3J0IHtcbiAgcHVibGlzaERlZmF1bHRHbG9iYWxVdGlscyBhcyDJtXB1Ymxpc2hEZWZhdWx0R2xvYmFsVXRpbHNcbixcbiAgcHVibGlzaEdsb2JhbFV0aWwgYXMgybVwdWJsaXNoR2xvYmFsVXRpbH0gZnJvbSAnLi9yZW5kZXIzL3V0aWwvZ2xvYmFsX3V0aWxzJztcbmV4cG9ydCB7Vmlld1JlZiBhcyDJtVZpZXdSZWZ9IGZyb20gJy4vcmVuZGVyMy92aWV3X3JlZic7XG5leHBvcnQge1xuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdEh0bWwgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdEh0bWwsXG4gIGJ5cGFzc1Nhbml0aXphdGlvblRydXN0UmVzb3VyY2VVcmwgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdFJlc291cmNlVXJsLFxuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdFNjcmlwdCBhcyDJtWJ5cGFzc1Nhbml0aXphdGlvblRydXN0U2NyaXB0LFxuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdFN0eWxlIGFzIMm1YnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RTdHlsZSxcbiAgYnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RVcmwgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdFVybCxcbn0gZnJvbSAnLi9zYW5pdGl6YXRpb24vYnlwYXNzJztcbmV4cG9ydCB7XG4gIMm1ybVzYW5pdGl6ZUh0bWwsXG4gIMm1ybVzYW5pdGl6ZVJlc291cmNlVXJsLFxuICDJtcm1c2FuaXRpemVTY3JpcHQsXG4gIMm1ybVzYW5pdGl6ZVN0eWxlLFxuICDJtcm1c2FuaXRpemVVcmwsXG4gIMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG4gIMm1ybV0cnVzdENvbnN0YW50SHRtbCxcbiAgybXJtXRydXN0Q29uc3RhbnRSZXNvdXJjZVVybCxcbn0gZnJvbSAnLi9zYW5pdGl6YXRpb24vc2FuaXRpemF0aW9uJztcbmV4cG9ydCB7XG4gIMm1ybV2YWxpZGF0ZUlmcmFtZUF0dHJpYnV0ZSxcbn0gZnJvbSAnLi9zYW5pdGl6YXRpb24vaWZyYW1lX2F0dHJzX3ZhbGlkYXRpb24nO1xuZXhwb3J0IHtcbiAgbm9TaWRlRWZmZWN0cyBhcyDJtW5vU2lkZUVmZmVjdHMsXG59IGZyb20gJy4vdXRpbC9jbG9zdXJlJztcbmV4cG9ydCB7IEFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyIGFzIMm1QWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIsIGludGVybmFsQWZ0ZXJOZXh0UmVuZGVyIGFzIMm1aW50ZXJuYWxBZnRlck5leHRSZW5kZXIgfSBmcm9tICcuL3JlbmRlcjMvYWZ0ZXJfcmVuZGVyX2hvb2tzJztcbmV4cG9ydCB7ZGVwc1RyYWNrZXIgYXMgybVkZXBzVHJhY2tlciwgVVNFX1JVTlRJTUVfREVQU19UUkFDS0VSX0ZPUl9KSVQgYXMgybVVU0VfUlVOVElNRV9ERVBTX1RSQUNLRVJfRk9SX0pJVH0gZnJvbSAnLi9yZW5kZXIzL2RlcHNfdHJhY2tlci9kZXBzX3RyYWNrZXInO1xuZXhwb3J0IHtnZW5lcmF0ZVN0YW5kYWxvbmVJbkRlY2xhcmF0aW9uc0Vycm9yIGFzIMm1Z2VuZXJhdGVTdGFuZGFsb25lSW5EZWNsYXJhdGlvbnNFcnJvcn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9tb2R1bGUnO1xuZXhwb3J0IHtnZXRBc3luY0NsYXNzTWV0YWRhdGFGbiBhcyDJtWdldEFzeW5jQ2xhc3NNZXRhZGF0YUZufSBmcm9tICcuL3JlbmRlcjMvbWV0YWRhdGEnO1xuXG4vLyBjbGFuZy1mb3JtYXQgb25cbiJdfQ==
|
|
@@ -20,7 +20,7 @@ export { ComponentFactory, ComponentFactoryResolver, ComponentRef } from './comp
|
|
|
20
20
|
export { ɵɵgetInheritedFactory } from './di';
|
|
21
21
|
export { getLocaleId, setLocaleId } from './i18n/i18n_locale_id';
|
|
22
22
|
// clang-format off
|
|
23
|
-
export {
|
|
23
|
+
export { store, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵdirectiveInject, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetCurrentView, ɵɵhostProperty, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵconditional, ɵɵdefer, ɵɵdeferWhen, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnTimer, ɵɵdeferOnHover, ɵɵdeferOnInteraction, ɵɵdeferOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnViewport, ɵɵdeferEnableTimerScheduling, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵgetUnknownElementStrictMode, ɵsetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetUnknownPropertyStrictMode, } from './instructions/all';
|
|
24
24
|
export { DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, } from '../defer/instructions';
|
|
25
25
|
export { ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart } from './instructions/i18n';
|
|
26
26
|
export { setClassMetadata, setClassMetadataAsync, } from './metadata';
|
|
@@ -36,4 +36,4 @@ export { ɵɵgetComponentDepsFactory } from './local_compilation';
|
|
|
36
36
|
export { ɵsetClassDebugInfo } from './debug/set_debug_info';
|
|
37
37
|
// clang-format on
|
|
38
38
|
export { getComponent, getDirectiveMetadata, getDirectives, getHostElement, getRenderedText, LifecycleHooksFeature, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵStandaloneFeature, };
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBaUQsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHMUssT0FBTyxFQUFDLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9E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QUNYLFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxjQUFjLEVBQ2QsV0FBVyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxhQUFhLEdBQ2QsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELGtCQUFrQjtBQUVsQixPQUFPLEVBUUwsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsY0FBYyxFQUNkLGVBQWUsRUFDZixxQkFBcUIsRUFHckIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFHWix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBRTFCLHdCQUF3QixFQUV4QixvQkFBb0IsRUFFcEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TGlmZWN5Y2xlSG9va3NGZWF0dXJlfSBmcm9tICcuL2NvbXBvbmVudF9yZWYnO1xuaW1wb3J0IHvJtcm1ZGVmaW5lQ29tcG9uZW50LCDJtcm1ZGVmaW5lRGlyZWN0aXZlLCDJtcm1ZGVmaW5lTmdNb2R1bGUsIMm1ybVkZWZpbmVQaXBlfSBmcm9tICcuL2RlZmluaXRpb24nO1xuaW1wb3J0IHvJtcm1Q29weURlZmluaXRpb25GZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2NvcHlfZGVmaW5pdGlvbl9mZWF0dXJlJztcbmltcG9ydCB7ybXJtUhvc3REaXJlY3RpdmVzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9ob3N0X2RpcmVjdGl2ZXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVJbmhlcml0RGVmaW5pdGlvbkZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvaW5oZXJpdF9kZWZpbml0aW9uX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1SW5wdXRUcmFuc2Zvcm1zRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9pbnB1dF90cmFuc2Zvcm1zX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1TmdPbkNoYW5nZXNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL25nX29uY2hhbmdlc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtVByb3ZpZGVyc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvcHJvdmlkZXJzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1U3RhbmRhbG9uZUZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvc3RhbmRhbG9uZV9mZWF0dXJlJztcbmltcG9ydCB7Q29tcG9uZW50RGVmLCBDb21wb25lbnRUZW1wbGF0ZSwgQ29tcG9uZW50VHlwZSwgRGlyZWN0aXZlRGVmLCBEaXJlY3RpdmVUeXBlLCBQaXBlRGVmfSBmcm9tICcuL2ludGVyZmFjZXMvZGVmaW5pdGlvbic7XG5pbXBvcnQge8m1ybVDb21wb25lbnREZWNsYXJhdGlvbiwgybXJtURpcmVjdGl2ZURlY2xhcmF0aW9uLCDJtcm1RmFjdG9yeURlY2xhcmF0aW9uLCDJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbiwgybXJtU5nTW9kdWxlRGVjbGFyYXRpb24sIMm1ybVQaXBlRGVjbGFyYXRpb259IGZyb20gJy4vaW50ZXJmYWNlcy9wdWJsaWNfZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHvJtcm1c2V0Q29tcG9uZW50U2NvcGUsIMm1ybVzZXROZ01vZHVsZVNjb3BlfSBmcm9tICcuL3Njb3BlJztcbmltcG9ydCB7Q29tcG9uZW50RGVidWdNZXRhZGF0YSwgRGlyZWN0aXZlRGVidWdNZXRhZGF0YSwgZ2V0Q29tcG9uZW50LCBnZXREaXJlY3RpdmVNZXRhZGF0YSwgZ2V0RGlyZWN0aXZlcywgZ2V0SG9zdEVsZW1lbnQsIGdldFJlbmRlcmVkVGV4dH0gZnJvbSAnLi91dGlsL2Rpc2NvdmVyeV91dGlscyc7XG5cbmV4cG9ydCB7TmdNb2R1bGVUeXBlfSBmcm9tICcuLi9tZXRhZGF0YS9uZ19tb2R1bGVfZGVmJztcbmV4cG9ydCB7Q29tcG9uZW50RmFjdG9yeSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWZ9IGZyb20gJy4vY29tcG9uZW50X3JlZic7XG5leHBvcnQge8m1ybVnZXRJbmhlcml0ZWRGYWN0b3J5fSBmcm9tICcuL2RpJztcbmV4cG9ydCB7Z2V0TG9jYWxlSWQsIHNldExvY2FsZUlkfSBmcm9tICcuL2kxOG4vaTE4bl9sb2NhbGVfaWQnO1xuLy8gY2xhbmctZm9ybWF0IG9mZlxuZXhwb3J0IHtcbiAgZGV0ZWN0Q2hhbmdlcyxcbiAgc3RvcmUsXG4gIMm1ybVhZHZhbmNlLFxuXG4gIMm1ybVhdHRyaWJ1dGUsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTEsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTIsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTMsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTQsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTUsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTYsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTcsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZTgsXG4gIMm1ybVhdHRyaWJ1dGVJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtWNsYXNzTWFwLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMixcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlOCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVjbGFzc1Byb3AsXG5cbiAgybXJtWNvbXBvbmVudEluc3RhbmNlLFxuXG4gIMm1ybVkaXJlY3RpdmVJbmplY3QsXG5cbiAgybXJtWVsZW1lbnQsXG5cbiAgybXJtWVsZW1lbnRDb250YWluZXIsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyRW5kLFxuICDJtcm1ZWxlbWVudENvbnRhaW5lclN0YXJ0LFxuICDJtcm1ZWxlbWVudEVuZCxcbiAgybXJtWVsZW1lbnRTdGFydCxcblxuICDJtcm1Z2V0Q3VycmVudFZpZXcsXG4gIMm1ybVob3N0UHJvcGVydHksXG4gIMm1ybVpbmplY3RBdHRyaWJ1dGUsXG4gIMm1ybVpbnZhbGlkRmFjdG9yeSxcblxuICDJtcm1bGlzdGVuZXIsXG5cbiAgybXJtW5hbWVzcGFjZUhUTUwsXG4gIMm1ybVuYW1lc3BhY2VNYXRoTUwsXG4gIMm1ybVuYW1lc3BhY2VTVkcsXG5cbiAgybXJtW5leHRDb250ZXh0LFxuXG4gIMm1ybVwcm9qZWN0aW9uLFxuICDJtcm1cHJvamVjdGlvbkRlZixcbiAgybXJtXByb3BlcnR5LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUxLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTIsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU0LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNixcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU3LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTgsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlVixcblxuICDJtcm1cmVmZXJlbmNlLFxuXG4gIMm1ybVyZXBlYXRlcixcbiAgybXJtXJlcGVhdGVyQ3JlYXRlLFxuICDJtcm1cmVwZWF0ZXJUcmFja0J5SWRlbnRpdHksXG4gIMm1ybVyZXBlYXRlclRyYWNrQnlJbmRleCxcblxuICDJtcm1c3R5bGVNYXAsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNyxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtXN0eWxlUHJvcCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMSxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlMyxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNixcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlNyxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlUHJvcEludGVycG9sYXRlVixcblxuICDJtcm1c3ludGhldGljSG9zdExpc3RlbmVyLFxuICDJtcm1c3ludGhldGljSG9zdFByb3BlcnR5LFxuXG4gIMm1ybV0ZW1wbGF0ZSxcblxuICDJtcm1Y29uZGl0aW9uYWwsXG5cbiAgybXJtWRlZmVyLFxuICDJtcm1ZGVmZXJXaGVuLFxuICDJtcm1ZGVmZXJPbklkbGUsXG4gIMm1ybVkZWZlck9uSW1tZWRpYXRlLFxuICDJtcm1ZGVmZXJPblRpbWVyLFxuICDJtcm1ZGVmZXJPbkhvdmVyLFxuICDJtcm1ZGVmZXJPbkludGVyYWN0aW9uLFxuICDJtcm1ZGVmZXJPblZpZXdwb3J0LFxuICDJtcm1ZGVmZXJQcmVmZXRjaFdoZW4sXG4gIMm1ybVkZWZlclByZWZldGNoT25JZGxlLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSW1tZWRpYXRlLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uVGltZXIsXG4gIMm1ybVkZWZlclByZWZldGNoT25Ib3ZlcixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkludGVyYWN0aW9uLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uVmlld3BvcnQsXG4gIMm1ybVkZWZlckVuYWJsZVRpbWVyU2NoZWR1bGluZyxcblxuICDJtcm1dGV4dCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTEsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUyLFxuICDJtcm1dGV4dEludGVycG9sYXRlMyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTQsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU1LFxuICDJtcm1dGV4dEludGVycG9sYXRlNixcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTcsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU4LFxuICDJtcm1dGV4dEludGVycG9sYXRlVixcbiAgybVnZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93bkVsZW1lbnRTdHJpY3RNb2RlLFxuICDJtWdldFVua25vd25Qcm9wZXJ0eVN0cmljdE1vZGUsXG4gIMm1c2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcbn0gZnJvbSAnLi9pbnN0cnVjdGlvbnMvYWxsJztcbmV4cG9ydCB7XG4gIERFRkVSX0JMT0NLX0RFUEVOREVOQ1lfSU5URVJDRVBUT1IgYXMgybVERUZFUl9CTE9DS19ERVBFTkRFTkNZX0lOVEVSQ0VQVE9SLFxuICBERUZFUl9CTE9DS19DT05GSUcgYXMgybVERUZFUl9CTE9DS19DT05GSUcsXG59IGZyb20gJy4uL2RlZmVyL2luc3RydWN0aW9ucyc7XG5leHBvcnQge1xuICBEZWZlckJsb2NrRGVwZW5kZW5jeUludGVyY2VwdG9yIGFzIMm1RGVmZXJCbG9ja0RlcGVuZGVuY3lJbnRlcmNlcHRvcixcbn0gZnJvbSAnLi4vZGVmZXIvaW50ZXJmYWNlcyc7XG5leHBvcnQge8m1ybVpMThuLCDJtcm1aTE4bkFwcGx5LCDJtcm1aTE4bkF0dHJpYnV0ZXMsIMm1ybVpMThuRW5kLCDJtcm1aTE4bkV4cCzJtcm1aTE4blBvc3Rwcm9jZXNzLCDJtcm1aTE4blN0YXJ0fSBmcm9tICcuL2luc3RydWN0aW9ucy9pMThuJztcbmV4cG9ydCB7UmVuZGVyRmxhZ3N9IGZyb20gJy4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmV4cG9ydCB7XG4gIEF0dHJpYnV0ZU1hcmtlclxufSBmcm9tICcuL2ludGVyZmFjZXMvbm9kZSc7XG5leHBvcnQge0Nzc1NlbGVjdG9yTGlzdCwgUHJvamVjdGlvblNsb3RzfSBmcm9tICcuL2ludGVyZmFjZXMvcHJvamVjdGlvbic7XG5leHBvcnQge1xuICBzZXRDbGFzc01ldGFkYXRhLFxuICBzZXRDbGFzc01ldGFkYXRhQXN5bmMsXG59IGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0IHtOZ01vZHVsZUZhY3RvcnksIE5nTW9kdWxlUmVmLCBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yfSBmcm9tICcuL25nX21vZHVsZV9yZWYnO1xuZXhwb3J0IHtcbiAgybXJtXBpcGUsXG4gIMm1ybVwaXBlQmluZDEsXG4gIMm1ybVwaXBlQmluZDIsXG4gIMm1ybVwaXBlQmluZDMsXG4gIMm1ybVwaXBlQmluZDQsXG4gIMm1ybVwaXBlQmluZFYsXG59IGZyb20gJy4vcGlwZSc7XG5leHBvcnQge1xuICDJtcm1cHVyZUZ1bmN0aW9uMCxcbiAgybXJtXB1cmVGdW5jdGlvbjEsXG4gIMm1ybVwdXJlRnVuY3Rpb24yLFxuICDJtcm1cHVyZUZ1bmN0aW9uMyxcbiAgybXJtXB1cmVGdW5jdGlvbjQsXG4gIMm1ybVwdXJlRnVuY3Rpb241LFxuICDJtcm1cHVyZUZ1bmN0aW9uNixcbiAgybXJtXB1cmVGdW5jdGlvbjcsXG4gIMm1ybVwdXJlRnVuY3Rpb244LFxuICDJtcm1cHVyZUZ1bmN0aW9uVixcbn0gZnJvbSAnLi9wdXJlX2Z1bmN0aW9uJztcbmV4cG9ydCB7XG4gIMm1ybVjb250ZW50UXVlcnksXG4gIMm1ybVsb2FkUXVlcnksXG4gIMm1ybVxdWVyeVJlZnJlc2gsXG4gIMm1ybV2aWV3UXVlcnl9IGZyb20gJy4vcXVlcnknO1xuZXhwb3J0IHtcbiAgybXJtWRpc2FibGVCaW5kaW5ncyxcblxuICDJtcm1ZW5hYmxlQmluZGluZ3MsXG4gIMm1ybVyZXNldFZpZXcsXG4gIMm1ybVyZXN0b3JlVmlldyxcbn0gZnJvbSAnLi9zdGF0ZSc7XG5leHBvcnQge05PX0NIQU5HRX0gZnJvbSAnLi90b2tlbnMnO1xuZXhwb3J0IHsgybXJtXJlc29sdmVCb2R5LCDJtcm1cmVzb2x2ZURvY3VtZW50LMm1ybVyZXNvbHZlV2luZG93fSBmcm9tICcuL3V0aWwvbWlzY191dGlscyc7XG5leHBvcnQgeyDJtcm1dGVtcGxhdGVSZWZFeHRyYWN0b3J9IGZyb20gJy4vdmlld19lbmdpbmVfY29tcGF0aWJpbGl0eV9wcmVib3VuZCc7XG5leHBvcnQge8m1ybVnZXRDb21wb25lbnREZXBzRmFjdG9yeX0gZnJvbSAnLi9sb2NhbF9jb21waWxhdGlvbic7XG5leHBvcnQge8m1c2V0Q2xhc3NEZWJ1Z0luZm99IGZyb20gJy4vZGVidWcvc2V0X2RlYnVnX2luZm8nO1xuLy8gY2xhbmctZm9ybWF0IG9uXG5cbmV4cG9ydCB7XG4gIENvbXBvbmVudERlYnVnTWV0YWRhdGEsXG4gIENvbXBvbmVudERlZixcbiAgQ29tcG9uZW50VGVtcGxhdGUsXG4gIENvbXBvbmVudFR5cGUsXG4gIERpcmVjdGl2ZURlYnVnTWV0YWRhdGEsXG4gIERpcmVjdGl2ZURlZixcbiAgRGlyZWN0aXZlVHlwZSxcbiAgZ2V0Q29tcG9uZW50LFxuICBnZXREaXJlY3RpdmVNZXRhZGF0YSxcbiAgZ2V0RGlyZWN0aXZlcyxcbiAgZ2V0SG9zdEVsZW1lbnQsXG4gIGdldFJlbmRlcmVkVGV4dCxcbiAgTGlmZWN5Y2xlSG9va3NGZWF0dXJlLFxuICBQaXBlRGVmLFxuICDJtcm1Q29tcG9uZW50RGVjbGFyYXRpb24sXG4gIMm1ybVDb3B5RGVmaW5pdGlvbkZlYXR1cmUsXG4gIMm1ybVkZWZpbmVDb21wb25lbnQsXG4gIMm1ybVkZWZpbmVEaXJlY3RpdmUsXG4gIMm1ybVkZWZpbmVOZ01vZHVsZSxcbiAgybXJtWRlZmluZVBpcGUsXG4gIMm1ybVEaXJlY3RpdmVEZWNsYXJhdGlvbixcbiAgybXJtUZhY3RvcnlEZWNsYXJhdGlvbixcbiAgybXJtUhvc3REaXJlY3RpdmVzRmVhdHVyZSxcbiAgybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZSxcbiAgybXJtUluamVjdG9yRGVjbGFyYXRpb24sXG4gIMm1ybVJbnB1dFRyYW5zZm9ybXNGZWF0dXJlLFxuICDJtcm1TmdNb2R1bGVEZWNsYXJhdGlvbixcbiAgybXJtU5nT25DaGFuZ2VzRmVhdHVyZSxcbiAgybXJtVBpcGVEZWNsYXJhdGlvbixcbiAgybXJtVByb3ZpZGVyc0ZlYXR1cmUsXG4gIMm1ybVzZXRDb21wb25lbnRTY29wZSxcbiAgybXJtXNldE5nTW9kdWxlU2NvcGUsXG4gIMm1ybVTdGFuZGFsb25lRmVhdHVyZSxcbn07XG4iXX0=
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBaUQsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHMUssT0FBTyxFQUFDLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9E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QUNYLFdBQVcsR0FDWixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGNBQWMsRUFDZCxXQUFXLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGFBQWEsR0FDZCxNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsa0JBQWtCO0FBRWxCLE9BQU8sRUFRTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixjQUFjLEVBQ2QsZUFBZSxFQUNmLHFCQUFxQixFQUdyQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUdaLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFFMUIsd0JBQXdCLEVBRXhCLG9CQUFvQixFQUVwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMaWZlY3ljbGVIb29rc0ZlYXR1cmV9IGZyb20gJy4vY29tcG9uZW50X3JlZic7XG5pbXBvcnQge8m1ybVkZWZpbmVDb21wb25lbnQsIMm1ybVkZWZpbmVEaXJlY3RpdmUsIMm1ybVkZWZpbmVOZ01vZHVsZSwgybXJtWRlZmluZVBpcGV9IGZyb20gJy4vZGVmaW5pdGlvbic7XG5pbXBvcnQge8m1ybVDb3B5RGVmaW5pdGlvbkZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvY29weV9kZWZpbml0aW9uX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2hvc3RfZGlyZWN0aXZlc19mZWF0dXJlJztcbmltcG9ydCB7ybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9pbmhlcml0X2RlZmluaXRpb25fZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVJbnB1dFRyYW5zZm9ybXNGZWF0dXJlfSBmcm9tICcuL2ZlYXR1cmVzL2lucHV0X3RyYW5zZm9ybXNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVOZ09uQ2hhbmdlc0ZlYXR1cmV9IGZyb20gJy4vZmVhdHVyZXMvbmdfb25jaGFuZ2VzX2ZlYXR1cmUnO1xuaW1wb3J0IHvJtcm1UHJvdmlkZXJzRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9wcm92aWRlcnNfZmVhdHVyZSc7XG5pbXBvcnQge8m1ybVTdGFuZGFsb25lRmVhdHVyZX0gZnJvbSAnLi9mZWF0dXJlcy9zdGFuZGFsb25lX2ZlYXR1cmUnO1xuaW1wb3J0IHtDb21wb25lbnREZWYsIENvbXBvbmVudFRlbXBsYXRlLCBDb21wb25lbnRUeXBlLCBEaXJlY3RpdmVEZWYsIERpcmVjdGl2ZVR5cGUsIFBpcGVEZWZ9IGZyb20gJy4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmltcG9ydCB7ybXJtUNvbXBvbmVudERlY2xhcmF0aW9uLCDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLCDJtcm1TmdNb2R1bGVEZWNsYXJhdGlvbiwgybXJtVBpcGVEZWNsYXJhdGlvbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3B1YmxpY19kZWZpbml0aW9ucyc7XG5pbXBvcnQge8m1ybVzZXRDb21wb25lbnRTY29wZSwgybXJtXNldE5nTW9kdWxlU2NvcGV9IGZyb20gJy4vc2NvcGUnO1xuaW1wb3J0IHtDb21wb25lbnREZWJ1Z01ldGFkYXRhLCBEaXJlY3RpdmVEZWJ1Z01ldGFkYXRhLCBnZXRDb21wb25lbnQsIGdldERpcmVjdGl2ZU1ldGFkYXRhLCBnZXREaXJlY3RpdmVzLCBnZXRIb3N0RWxlbWVudCwgZ2V0UmVuZGVyZWRUZXh0fSBmcm9tICcuL3V0aWwvZGlzY292ZXJ5X3V0aWxzJztcblxuZXhwb3J0IHtOZ01vZHVsZVR5cGV9IGZyb20gJy4uL21ldGFkYXRhL25nX21vZHVsZV9kZWYnO1xuZXhwb3J0IHtDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZn0gZnJvbSAnLi9jb21wb25lbnRfcmVmJztcbmV4cG9ydCB7ybXJtWdldEluaGVyaXRlZEZhY3Rvcnl9IGZyb20gJy4vZGknO1xuZXhwb3J0IHtnZXRMb2NhbGVJZCwgc2V0TG9jYWxlSWR9IGZyb20gJy4vaTE4bi9pMThuX2xvY2FsZV9pZCc7XG4vLyBjbGFuZy1mb3JtYXQgb2ZmXG5leHBvcnQge1xuICBzdG9yZSxcbiAgybXJtWFkdmFuY2UsXG5cbiAgybXJtWF0dHJpYnV0ZSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlOCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVixcblxuICDJtcm1Y2xhc3NNYXAsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUyLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTMsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU1LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTYsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNyxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU4LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZVYsXG5cbiAgybXJtWNsYXNzUHJvcCxcblxuICDJtcm1Y29tcG9uZW50SW5zdGFuY2UsXG5cbiAgybXJtWRpcmVjdGl2ZUluamVjdCxcblxuICDJtcm1ZWxlbWVudCxcblxuICDJtcm1ZWxlbWVudENvbnRhaW5lcixcbiAgybXJtWVsZW1lbnRDb250YWluZXJFbmQsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuXG4gIMm1ybVnZXRDdXJyZW50VmlldyxcbiAgybXJtWhvc3RQcm9wZXJ0eSxcbiAgybXJtWluamVjdEF0dHJpYnV0ZSxcbiAgybXJtWludmFsaWRGYWN0b3J5LFxuXG4gIMm1ybVsaXN0ZW5lcixcblxuICDJtcm1bmFtZXNwYWNlSFRNTCxcbiAgybXJtW5hbWVzcGFjZU1hdGhNTCxcbiAgybXJtW5hbWVzcGFjZVNWRyxcblxuICDJtcm1bmV4dENvbnRleHQsXG5cbiAgybXJtXByb2plY3Rpb24sXG4gIMm1ybVwcm9qZWN0aW9uRGVmLFxuICDJtcm1cHJvcGVydHksXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTEsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMixcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUzLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTQsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU2LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTcsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlOCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVyZWZlcmVuY2UsXG5cbiAgybXJtXJlcGVhdGVyLFxuICDJtcm1cmVwZWF0ZXJDcmVhdGUsXG4gIMm1ybVyZXBlYXRlclRyYWNrQnlJZGVudGl0eSxcbiAgybXJtXJlcGVhdGVyVHJhY2tCeUluZGV4LFxuXG4gIMm1ybVzdHlsZU1hcCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTIsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMyxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTUsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTgsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlVixcblxuICDJtcm1c3R5bGVQcm9wLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGVWLFxuXG4gIMm1ybVzeW50aGV0aWNIb3N0TGlzdGVuZXIsXG4gIMm1ybVzeW50aGV0aWNIb3N0UHJvcGVydHksXG5cbiAgybXJtXRlbXBsYXRlLFxuXG4gIMm1ybVjb25kaXRpb25hbCxcblxuICDJtcm1ZGVmZXIsXG4gIMm1ybVkZWZlcldoZW4sXG4gIMm1ybVkZWZlck9uSWRsZSxcbiAgybXJtWRlZmVyT25JbW1lZGlhdGUsXG4gIMm1ybVkZWZlck9uVGltZXIsXG4gIMm1ybVkZWZlck9uSG92ZXIsXG4gIMm1ybVkZWZlck9uSW50ZXJhY3Rpb24sXG4gIMm1ybVkZWZlck9uVmlld3BvcnQsXG4gIMm1ybVkZWZlclByZWZldGNoV2hlbixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbklkbGUsXG4gIMm1ybVkZWZlclByZWZldGNoT25JbW1lZGlhdGUsXG4gIMm1ybVkZWZlclByZWZldGNoT25UaW1lcixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkhvdmVyLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSW50ZXJhY3Rpb24sXG4gIMm1ybVkZWZlclByZWZldGNoT25WaWV3cG9ydCxcbiAgybXJtWRlZmVyRW5hYmxlVGltZXJTY2hlZHVsaW5nLFxuXG4gIMm1ybV0ZXh0LFxuICDJtcm1dGV4dEludGVycG9sYXRlLFxuICDJtcm1dGV4dEludGVycG9sYXRlMSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUzLFxuICDJtcm1dGV4dEludGVycG9sYXRlNCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU2LFxuICDJtcm1dGV4dEludGVycG9sYXRlNyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGVWLFxuICDJtWdldFVua25vd25FbGVtZW50U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1Z2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duUHJvcGVydHlTdHJpY3RNb2RlLFxufSBmcm9tICcuL2luc3RydWN0aW9ucy9hbGwnO1xuZXhwb3J0IHtcbiAgREVGRVJfQkxPQ0tfREVQRU5ERU5DWV9JTlRFUkNFUFRPUiBhcyDJtURFRkVSX0JMT0NLX0RFUEVOREVOQ1lfSU5URVJDRVBUT1IsXG4gIERFRkVSX0JMT0NLX0NPTkZJRyBhcyDJtURFRkVSX0JMT0NLX0NPTkZJRyxcbn0gZnJvbSAnLi4vZGVmZXIvaW5zdHJ1Y3Rpb25zJztcbmV4cG9ydCB7XG4gIERlZmVyQmxvY2tEZXBlbmRlbmN5SW50ZXJjZXB0b3IgYXMgybVEZWZlckJsb2NrRGVwZW5kZW5jeUludGVyY2VwdG9yLFxufSBmcm9tICcuLi9kZWZlci9pbnRlcmZhY2VzJztcbmV4cG9ydCB7ybXJtWkxOG4sIMm1ybVpMThuQXBwbHksIMm1ybVpMThuQXR0cmlidXRlcywgybXJtWkxOG5FbmQsIMm1ybVpMThuRXhwLMm1ybVpMThuUG9zdHByb2Nlc3MsIMm1ybVpMThuU3RhcnR9IGZyb20gJy4vaW5zdHJ1Y3Rpb25zL2kxOG4nO1xuZXhwb3J0IHtSZW5kZXJGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuZXhwb3J0IHtcbiAgQXR0cmlidXRlTWFya2VyXG59IGZyb20gJy4vaW50ZXJmYWNlcy9ub2RlJztcbmV4cG9ydCB7Q3NzU2VsZWN0b3JMaXN0LCBQcm9qZWN0aW9uU2xvdHN9IGZyb20gJy4vaW50ZXJmYWNlcy9wcm9qZWN0aW9uJztcbmV4cG9ydCB7XG4gIHNldENsYXNzTWV0YWRhdGEsXG4gIHNldENsYXNzTWV0YWRhdGFBc3luYyxcbn0gZnJvbSAnLi9tZXRhZGF0YSc7XG5leHBvcnQge05nTW9kdWxlRmFjdG9yeSwgTmdNb2R1bGVSZWYsIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4vbmdfbW9kdWxlX3JlZic7XG5leHBvcnQge1xuICDJtcm1cGlwZSxcbiAgybXJtXBpcGVCaW5kMSxcbiAgybXJtXBpcGVCaW5kMixcbiAgybXJtXBpcGVCaW5kMyxcbiAgybXJtXBpcGVCaW5kNCxcbiAgybXJtXBpcGVCaW5kVixcbn0gZnJvbSAnLi9waXBlJztcbmV4cG9ydCB7XG4gIMm1ybVwdXJlRnVuY3Rpb24wLFxuICDJtcm1cHVyZUZ1bmN0aW9uMSxcbiAgybXJtXB1cmVGdW5jdGlvbjIsXG4gIMm1ybVwdXJlRnVuY3Rpb24zLFxuICDJtcm1cHVyZUZ1bmN0aW9uNCxcbiAgybXJtXB1cmVGdW5jdGlvbjUsXG4gIMm1ybVwdXJlRnVuY3Rpb242LFxuICDJtcm1cHVyZUZ1bmN0aW9uNyxcbiAgybXJtXB1cmVGdW5jdGlvbjgsXG4gIMm1ybVwdXJlRnVuY3Rpb25WLFxufSBmcm9tICcuL3B1cmVfZnVuY3Rpb24nO1xuZXhwb3J0IHtcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWxvYWRRdWVyeSxcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXZpZXdRdWVyeX0gZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQge1xuICDJtcm1ZGlzYWJsZUJpbmRpbmdzLFxuXG4gIMm1ybVlbmFibGVCaW5kaW5ncyxcbiAgybXJtXJlc2V0VmlldyxcbiAgybXJtXJlc3RvcmVWaWV3LFxufSBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCB7Tk9fQ0hBTkdFfSBmcm9tICcuL3Rva2Vucyc7XG5leHBvcnQgeyDJtcm1cmVzb2x2ZUJvZHksIMm1ybVyZXNvbHZlRG9jdW1lbnQsybXJtXJlc29sdmVXaW5kb3d9IGZyb20gJy4vdXRpbC9taXNjX3V0aWxzJztcbmV4cG9ydCB7IMm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3Rvcn0gZnJvbSAnLi92aWV3X2VuZ2luZV9jb21wYXRpYmlsaXR5X3ByZWJvdW5kJztcbmV4cG9ydCB7ybXJtWdldENvbXBvbmVudERlcHNGYWN0b3J5fSBmcm9tICcuL2xvY2FsX2NvbXBpbGF0aW9uJztcbmV4cG9ydCB7ybVzZXRDbGFzc0RlYnVnSW5mb30gZnJvbSAnLi9kZWJ1Zy9zZXRfZGVidWdfaW5mbyc7XG4vLyBjbGFuZy1mb3JtYXQgb25cblxuZXhwb3J0IHtcbiAgQ29tcG9uZW50RGVidWdNZXRhZGF0YSxcbiAgQ29tcG9uZW50RGVmLFxuICBDb21wb25lbnRUZW1wbGF0ZSxcbiAgQ29tcG9uZW50VHlwZSxcbiAgRGlyZWN0aXZlRGVidWdNZXRhZGF0YSxcbiAgRGlyZWN0aXZlRGVmLFxuICBEaXJlY3RpdmVUeXBlLFxuICBnZXRDb21wb25lbnQsXG4gIGdldERpcmVjdGl2ZU1ldGFkYXRhLFxuICBnZXREaXJlY3RpdmVzLFxuICBnZXRIb3N0RWxlbWVudCxcbiAgZ2V0UmVuZGVyZWRUZXh0LFxuICBMaWZlY3ljbGVIb29rc0ZlYXR1cmUsXG4gIFBpcGVEZWYsXG4gIMm1ybVDb21wb25lbnREZWNsYXJhdGlvbixcbiAgybXJtUNvcHlEZWZpbml0aW9uRmVhdHVyZSxcbiAgybXJtWRlZmluZUNvbXBvbmVudCxcbiAgybXJtWRlZmluZURpcmVjdGl2ZSxcbiAgybXJtWRlZmluZU5nTW9kdWxlLFxuICDJtcm1ZGVmaW5lUGlwZSxcbiAgybXJtURpcmVjdGl2ZURlY2xhcmF0aW9uLFxuICDJtcm1RmFjdG9yeURlY2xhcmF0aW9uLFxuICDJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlLFxuICDJtcm1SW5oZXJpdERlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbixcbiAgybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmUsXG4gIMm1ybVOZ01vZHVsZURlY2xhcmF0aW9uLFxuICDJtcm1TmdPbkNoYW5nZXNGZWF0dXJlLFxuICDJtcm1UGlwZURlY2xhcmF0aW9uLFxuICDJtcm1UHJvdmlkZXJzRmVhdHVyZSxcbiAgybXJtXNldENvbXBvbmVudFNjb3BlLFxuICDJtcm1c2V0TmdNb2R1bGVTY29wZSxcbiAgybXJtVN0YW5kYWxvbmVGZWF0dXJlLFxufTtcbiJdfQ==
|
|
@@ -9,9 +9,8 @@ import { consumerAfterComputation, consumerBeforeComputation, consumerPollProduc
|
|
|
9
9
|
import { RuntimeError } from '../../errors';
|
|
10
10
|
import { assertDefined, assertEqual } from '../../util/assert';
|
|
11
11
|
import { assertLContainer } from '../assert';
|
|
12
|
-
import { getComponentViewByInstance } from '../context_discovery';
|
|
13
12
|
import { executeCheckHooks, executeInitAndCheckHooks, incrementInitPhaseFlags } from '../hooks';
|
|
14
|
-
import { CONTAINER_HEADER_OFFSET,
|
|
13
|
+
import { CONTAINER_HEADER_OFFSET, LContainerFlags, MOVED_VIEWS } from '../interfaces/container';
|
|
15
14
|
import { CONTEXT, EFFECTS_TO_SCHEDULE, ENVIRONMENT, FLAGS, PARENT, REACTIVE_TEMPLATE_CONSUMER, TVIEW } from '../interfaces/view';
|
|
16
15
|
import { getOrBorrowReactiveLViewConsumer, maybeReturnReactiveLViewConsumer } from '../reactive_lview_consumer';
|
|
17
16
|
import { enterView, isInCheckNoChangesMode, leaveView, setBindingIndex, setIsInCheckNoChangesMode } from '../state';
|
|
@@ -22,7 +21,7 @@ import { executeTemplate, executeViewQueryFn, handleError, processHostBindingOpC
|
|
|
22
21
|
* The maximum number of times the change detection traversal will rerun before throwing an error.
|
|
23
22
|
*/
|
|
24
23
|
const MAXIMUM_REFRESH_RERUNS = 100;
|
|
25
|
-
export function detectChangesInternal(
|
|
24
|
+
export function detectChangesInternal(lView, notifyErrorHandler = true) {
|
|
26
25
|
const environment = lView[ENVIRONMENT];
|
|
27
26
|
const rendererFactory = environment.rendererFactory;
|
|
28
27
|
const afterRenderEventManager = environment.afterRenderEventManager;
|
|
@@ -35,6 +34,8 @@ export function detectChangesInternal(tView, lView, context, notifyErrorHandler
|
|
|
35
34
|
afterRenderEventManager?.begin();
|
|
36
35
|
}
|
|
37
36
|
try {
|
|
37
|
+
const tView = lView[TVIEW];
|
|
38
|
+
const context = lView[CONTEXT];
|
|
38
39
|
refreshView(tView, lView, tView.template, context);
|
|
39
40
|
detectChangesInViewWhileDirty(lView);
|
|
40
41
|
}
|
|
@@ -75,26 +76,15 @@ function detectChangesInViewWhileDirty(lView) {
|
|
|
75
76
|
detectChangesInView(lView, 1 /* ChangeDetectionMode.Targeted */);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
export function checkNoChangesInternal(
|
|
79
|
+
export function checkNoChangesInternal(lView, notifyErrorHandler = true) {
|
|
79
80
|
setIsInCheckNoChangesMode(true);
|
|
80
81
|
try {
|
|
81
|
-
detectChangesInternal(
|
|
82
|
+
detectChangesInternal(lView, notifyErrorHandler);
|
|
82
83
|
}
|
|
83
84
|
finally {
|
|
84
85
|
setIsInCheckNoChangesMode(false);
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Synchronously perform change detection on a component (and possibly its sub-components).
|
|
89
|
-
*
|
|
90
|
-
* This function triggers change detection in a synchronous way on a component.
|
|
91
|
-
*
|
|
92
|
-
* @param component The component which the change detection should be performed on.
|
|
93
|
-
*/
|
|
94
|
-
export function detectChanges(component) {
|
|
95
|
-
const view = getComponentViewByInstance(component);
|
|
96
|
-
detectChangesInternal(view[TVIEW], view, component);
|
|
97
|
-
}
|
|
98
88
|
/**
|
|
99
89
|
* Processes a view in update mode. This includes a number of steps in a specific order:
|
|
100
90
|
* - executing a template function in update mode;
|
|
@@ -268,7 +258,7 @@ function viewShouldHaveReactiveConsumer(tView) {
|
|
|
268
258
|
*/
|
|
269
259
|
function detectChangesInEmbeddedViews(lView, mode) {
|
|
270
260
|
for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
271
|
-
lContainer[
|
|
261
|
+
lContainer[FLAGS] &= ~LContainerFlags.HasChildViewsToRefresh;
|
|
272
262
|
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
273
263
|
const embeddedLView = lContainer[i];
|
|
274
264
|
detectChangesInViewIfAttached(embeddedLView, mode);
|
|
@@ -282,7 +272,7 @@ function detectChangesInEmbeddedViews(lView, mode) {
|
|
|
282
272
|
*/
|
|
283
273
|
function markTransplantedViewsForRefresh(lView) {
|
|
284
274
|
for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
285
|
-
if (!lContainer[
|
|
275
|
+
if (!(lContainer[FLAGS] & LContainerFlags.HasTransplantedViews))
|
|
286
276
|
continue;
|
|
287
277
|
const movedViews = lContainer[MOVED_VIEWS];
|
|
288
278
|
ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');
|
|
@@ -367,4 +357,4 @@ function detectChangesInChildComponents(hostLView, components, mode) {
|
|
|
367
357
|
detectChangesInComponent(hostLView, components[i], mode);
|
|
368
358
|
}
|
|
369
359
|
}
|
|
370
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlX2RldGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvaW5zdHJ1Y3Rpb25zL2NoYW5nZV9kZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFFbkosT0FBTyxFQUFDLFlBQVksRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlGLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBYyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU3SSxPQUFPLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFDLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDcEwsT0FBTyxFQUFDLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUF3QixNQUFNLDRCQUE0QixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNsSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztB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LENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzFEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2NvbnN1bWVyQWZ0ZXJDb21wdXRhdGlvbiwgY29uc3VtZXJCZWZvcmVDb21wdXRhdGlvbiwgY29uc3VtZXJQb2xsUHJvZHVjZXJzRm9yQ2hhbmdlLCBSZWFjdGl2ZU5vZGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcHJpbWl0aXZlcy9zaWduYWxzJztcblxuaW1wb3J0IHtSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQge2Fzc2VydERlZmluZWQsIGFzc2VydEVxdWFsfSBmcm9tICcuLi8uLi91dGlsL2Fzc2VydCc7XG5pbXBvcnQge2Fzc2VydExDb250YWluZXJ9IGZyb20gJy4uL2Fzc2VydCc7XG5pbXBvcnQge2dldENvbXBvbmVudFZpZXdCeUluc3RhbmNlfSBmcm9tICcuLi9jb250ZXh0X2Rpc2NvdmVyeSc7XG5pbXBvcnQge2V4ZWN1dGVDaGVja0hvb2tzLCBleGVjdXRlSW5pdEFuZENoZWNrSG9va3MsIGluY3JlbWVudEluaXRQaGFzZUZsYWdzfSBmcm9tICcuLi9ob29rcyc7XG5pbXBvcnQge0NPTlRBSU5FUl9IRUFERVJfT0ZGU0VULCBIQVNfQ0hJTERfVklFV1NfVE9fUkVGUkVTSCwgSEFTX1RSQU5TUExBTlRFRF9WSUVXUywgTENvbnRhaW5lciwgTU9WRURfVklFV1N9IGZyb20gJy4uL2ludGVyZmFjZXMvY29udGFpbmVyJztcbmltcG9ydCB7Q29tcG9uZW50VGVtcGxhdGUsIFJlbmRlckZsYWdzfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RlZmluaXRpb24nO1xuaW1wb3J0IHtDT05URVhULCBFRkZFQ1RTX1RPX1NDSEVEVUxFLCBFTlZJUk9OTUVOVCwgRkxBR1MsIEluaXRQaGFzZVN0YXRlLCBMVmlldywgTFZpZXdGbGFncywgUEFSRU5ULCBSRUFDVElWRV9URU1QTEFURV9DT05TVU1FUiwgVFZJRVcsIFRWaWV3LCBUVmlld1R5cGV9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlldyc7XG5pbXBvcnQge2dldE9yQm9ycm93UmVhY3RpdmVMVmlld0NvbnN1bWVyLCBtYXliZVJldHVyblJlYWN0aXZlTFZpZXdDb25zdW1lciwgUmVhY3RpdmVMVmlld0NvbnN1bWVyfSBmcm9tICcuLi9yZWFjdGl2ZV9sdmlld19jb25zdW1lcic7XG5pbXBvcnQge2VudGVyVmlldywgaXNJbkNoZWNrTm9DaGFuZ2VzTW9kZSwgbGVhdmVWaWV3LCBzZXRCaW5kaW5nSW5kZXgsIHNldElzSW5DaGVja05vQ2hhbmdlc01vZGV9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7Z2V0Rmlyc3RMQ29udGFpbmVyLCBnZXROZXh0TENvbnRhaW5lcn0gZnJvbSAnLi4vdXRpbC92aWV3X3RyYXZlcnNhbF91dGlscyc7XG5pbXBvcnQge2dldENvbXBvbmVudExWaWV3QnlJbmRleCwgaXNDcmVhdGlvbk1vZGUsIG1hcmtBbmNlc3RvcnNGb3JUcmF2ZXJzYWwsIG1hcmtWaWV3Rm9yUmVmcmVzaCwgcmVzZXRQcmVPcmRlckhvb2tGbGFncywgdmlld0F0dGFjaGVkVG9DaGFuZ2VEZXRlY3Rvcn0gZnJvbSAnLi4vdXRpbC92aWV3X3V0aWxzJztcblxuaW1wb3J0IHtleGVjdXRlVGVtcGxhdGUsIGV4ZWN1dGVWaWV3UXVlcnlGbiwgaGFuZGxlRXJyb3IsIHByb2Nlc3NIb3N0QmluZGluZ09wQ29kZXMsIHJlZnJlc2hDb250ZW50UXVlcmllc30gZnJvbSAnLi9zaGFyZWQnO1xuXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB0aGUgY2hhbmdlIGRldGVjdGlvbiB0cmF2ZXJzYWwgd2lsbCByZXJ1biBiZWZvcmUgdGhyb3dpbmcgYW4gZXJyb3IuXG4gKi9cbmNvbnN0IE1BWElNVU1fUkVGUkVTSF9SRVJVTlMgPSAxMDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW50ZXJuYWw8VD4oXG4gICAgdFZpZXc6IFRWaWV3LCBsVmlldzogTFZpZXcsIGNvbnRleHQ6IFQsIG5vdGlmeUVycm9ySGFuZGxlciA9IHRydWUpIHtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBsVmlld1tFTlZJUk9OTUVOVF07XG4gIGNvbnN0IHJlbmRlcmVyRmFjdG9yeSA9IGVudmlyb25tZW50LnJlbmRlcmVyRmFjdG9yeTtcbiAgY29uc3QgYWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIgPSBlbnZpcm9ubWVudC5hZnRlclJlbmRlckV2ZW50TWFuYWdlcjtcblxuICAvLyBDaGVjayBubyBjaGFuZ2VzIG1vZGUgaXMgYSBkZXYgb25seSBtb2RlIHVzZWQgdG8gdmVyaWZ5IHRoYXQgYmluZGluZ3MgaGF2ZSBub3QgY2hhbmdlZFxuICAvLyBzaW5jZSB0aGV5IHdlcmUgYXNzaWduZWQuIFdlIGRvIG5vdCB3YW50IHRvIGludm9rZSByZW5kZXJlciBmYWN0b3J5IGZ1bmN0aW9ucyBpbiB0aGF0IG1vZGVcbiAgLy8gdG8gYXZvaWQgYW55IHBvc3NpYmxlIHNpZGUtZWZmZWN0cy5cbiAgY29uc3QgY2hlY2tOb0NoYW5nZXNNb2RlID0gISFuZ0Rldk1vZGUgJiYgaXNJbkNoZWNrTm9DaGFuZ2VzTW9kZSgpO1xuXG4gIGlmICghY2hlY2tOb0NoYW5nZXNNb2RlKSB7XG4gICAgcmVuZGVyZXJGYWN0b3J5LmJlZ2luPy4oKTtcbiAgICBhZnRlclJlbmRlckV2ZW50TWFuYWdlcj8uYmVnaW4oKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmVmcmVzaFZpZXcodFZpZXcsIGxWaWV3LCB0Vmlldy50ZW1wbGF0ZSwgY29udGV4dCk7XG4gICAgZGV0ZWN0Q2hhbmdlc0luVmlld1doaWxlRGlydHkobFZpZXcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChub3RpZnlFcnJvckhhbmRsZXIpIHtcbiAgICAgIGhhbmRsZUVycm9yKGxWaWV3LCBlcnJvcik7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9IGZpbmFsbHkge1xuICAgIGlmICghY2hlY2tOb0NoYW5nZXNNb2RlKSB7XG4gICAgICByZW5kZXJlckZhY3RvcnkuZW5kPy4oKTtcblxuICAgICAgLy8gT25lIGZpbmFsIGZsdXNoIG9mIHRoZSBlZmZlY3RzIHF1ZXVlIHRvIGNhdGNoIGFueSBlZmZlY3RzIGNyZWF0ZWQgaW4gYG5nQWZ0ZXJWaWV3SW5pdGAgb3JcbiAgICAgIC8vIG90aGVyIHBvc3Qtb3JkZXIgaG9va3MuXG4gICAgICBlbnZpcm9ubWVudC5pbmxpbmVFZmZlY3RSdW5uZXI/LmZsdXNoKCk7XG5cbiAgICAgIC8vIEludm9rZSBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgdmlhIGBhZnRlcipSZW5kZXJgLCBpZiBuZWVkZWQuXG4gICAgICBhZnRlclJlbmRlckV2ZW50TWFuYWdlcj8uZW5kKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRldGVjdENoYW5nZXNJblZpZXdXaGlsZURpcnR5KGxWaWV3OiBMVmlldykge1xuICBsZXQgcmV0cmllcyA9IDA7XG4gIC8vIElmIGFmdGVyIHJ1bm5pbmcgY2hhbmdlIGRldGVjdGlvbiwgdGhpcyB2aWV3IHN0aWxsIG5lZWRzIHRvIGJlIHJlZnJlc2hlZCBvciB0aGVyZSBhcmVcbiAgLy8gZGVzY2VuZGFudHMgdmlld3MgdGhhdCBuZWVkIHRvIGJlIHJlZnJlc2hlZCBkdWUgdG8gcmUtZGlydHlpbmcgZHVyaW5nIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uXG4gIC8vIHJ1biwgZGV0ZWN0IGNoYW5nZXMgb24gdGhlIHZpZXcgYWdhaW4uIFdlIHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGluIGBUYXJnZXRlZGAgbW9kZSB0byBvbmx5XG4gIC8vIHJlZnJlc2ggdmlld3Mgd2l0aCB0aGUgYFJlZnJlc2hWaWV3YCBmbGFnLlxuICB3aGlsZSAobFZpZXdbRkxBR1NdICYgKExWaWV3RmxhZ3MuUmVmcmVzaFZpZXcgfCBMVmlld0ZsYWdzLkhhc0NoaWxkVmlld3NUb1JlZnJlc2gpIHx8XG4gICAgICAgICBsVmlld1tSRUFDVElWRV9URU1QTEFURV9DT05TVU1FUl0/LmRpcnR5KSB7XG4gICAgaWYgKHJldHJpZXMgPT09IE1BWElNVU1fUkVGUkVTSF9SRVJVTlMpIHtcbiAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgUnVudGltZUVycm9yQ29kZS5JTkZJTklURV9DSEFOR0VfREVURUNUSU9OLFxuICAgICAgICAgIG5nRGV2TW9kZSAmJlxuICAgICAgICAgICAgICAnSW5maW5pdGUgY2hhbmdlIGRldGVjdGlvbiB3aGlsZSB0cnlpbmcgdG8gcmVmcmVzaCB2aWV3cy4gJyArXG4gICAgICAgICAgICAgICAgICAnVGhlcmUgbWF5IGJlIGNvbXBvbmVudHMgd2hpY2ggZWFjaCBjYXVzZSB0aGUgb3RoZXIgdG8gcmVxdWlyZSBhIHJlZnJlc2gsICcgK1xuICAgICAgICAgICAgICAgICAgJ2NhdXNpbmcgYW4gaW5maW5pdGUgbG9vcC4nKTtcbiAgICB9XG4gICAgcmV0cmllcysrO1xuICAgIC8vIEV2ZW4gaWYgdGhpcyB2aWV3IGlzIGRldGFjaGVkLCB3ZSBzdGlsbCBkZXRlY3QgY2hhbmdlcyBpbiB0YXJnZXRlZCBtb2RlIGJlY2F1c2UgdGhpcyB3YXNcbiAgICAvLyB0aGUgcm9vdCBvZiB0aGUgY2hhbmdlIGRldGVjdGlvbiBydW4uXG4gICAgZGV0ZWN0Q2hhbmdlc0luVmlldyhsVmlldywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5UYXJnZXRlZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrTm9DaGFuZ2VzSW50ZXJuYWw8VD4oXG4gICAgdFZpZXc6IFRWaWV3LCBsVmlldzogTFZpZXcsIGNvbnRleHQ6IFQsIG5vdGlmeUVycm9ySGFuZGxlciA9IHRydWUpIHtcbiAgc2V0SXNJbkNoZWNrTm9DaGFuZ2VzTW9kZSh0cnVlKTtcbiAgdHJ5IHtcbiAgICBkZXRlY3RDaGFuZ2VzSW50ZXJuYWwodFZpZXcsIGxWaWV3LCBjb250ZXh0LCBub3RpZnlFcnJvckhhbmRsZXIpO1xuICB9IGZpbmFsbHkge1xuICAgIHNldElzSW5DaGVja05vQ2hhbmdlc01vZGUoZmFsc2UpO1xuICB9XG59XG5cbi8qKlxuICogU3luY2hyb25vdXNseSBwZXJmb3JtIGNoYW5nZSBkZXRlY3Rpb24gb24gYSBjb21wb25lbnQgKGFuZCBwb3NzaWJseSBpdHMgc3ViLWNvbXBvbmVudHMpLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gdHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvbiBpbiBhIHN5bmNocm9ub3VzIHdheSBvbiBhIGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnQgd2hpY2ggdGhlIGNoYW5nZSBkZXRlY3Rpb24gc2hvdWxkIGJlIHBlcmZvcm1lZCBvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdENoYW5nZXMoY29tcG9uZW50OiB7fSk6IHZvaWQge1xuICBjb25zdCB2aWV3ID0gZ2V0Q29tcG9uZW50Vmlld0J5SW5zdGFuY2UoY29tcG9uZW50KTtcbiAgZGV0ZWN0Q2hhbmdlc0ludGVybmFsKHZpZXdbVFZJRVddLCB2aWV3LCBjb21wb25lbnQpO1xufVxuXG4vKipcbiAqIERpZmZlcmVudCBtb2RlcyBvZiB0cmF2ZXJzaW5nIHRoZSBsb2dpY2FsIHZpZXcgdHJlZSBkdXJpbmcgY2hhbmdlIGRldGVjdGlvbi5cbiAqXG4gKlxuICogVGhlIGNoYW5nZSBkZXRlY3Rpb24gdHJhdmVyc2FsIGFsZ29yaXRobSBzd2l0Y2hlcyBiZXR3ZWVuIHRoZXNlIG1vZGVzIGJhc2VkIG9uIHZhcmlvdXNcbiAqIGNvbmRpdGlvbnMuXG4gKi9cbmNvbnN0IGVudW0gQ2hhbmdlRGV0ZWN0aW9uTW9kZSB7XG4gIC8qKlxuICAgKiBJbiBgR2xvYmFsYCBtb2RlLCBgRGlydHlgIGFuZCBgQ2hlY2tBbHdheXNgIHZpZXdzIGFyZSByZWZyZXNoZWQgYXMgd2VsbCBhcyB2aWV3cyB3aXRoIHRoZVxuICAgKiBgUmVmcmVzaFRyYW5zcGxhbnRlZFZpZXdgIGZsYWcuXG4gICAqL1xuICBHbG9iYWwsXG4gIC8qKlxuICAgKiBJbiBgVGFyZ2V0ZWRgIG1vZGUsIG9ubHkgdmlld3Mgd2l0aCB0aGUgYFJlZnJlc2hUcmFuc3BsYW50ZWRWaWV3YFxuICAgKiBmbGFnIGFyZSByZWZyZXNoZWQuXG4gICAqL1xuICBUYXJnZXRlZCxcbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgYSB2aWV3IGluIHVwZGF0ZSBtb2RlLiBUaGlzIGluY2x1ZGVzIGEgbnVtYmVyIG9mIHN0ZXBzIGluIGEgc3BlY2lmaWMgb3JkZXI6XG4gKiAtIGV4ZWN1dGluZyBhIHRlbXBsYXRlIGZ1bmN0aW9uIGluIHVwZGF0ZSBtb2RlO1xuICogLSBleGVjdXRpbmcgaG9va3M7XG4gKiAtIHJlZnJlc2hpbmcgcXVlcmllcztcbiAqIC0gc2V0dGluZyBob3N0IGJpbmRpbmdzO1xuICogLSByZWZyZXNoaW5nIGNoaWxkIChlbWJlZGRlZCBhbmQgY29tcG9uZW50KSB2aWV3cy5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gcmVmcmVzaFZpZXc8VD4oXG4gICAgdFZpZXc6IFRWaWV3LCBsVmlldzogTFZpZXcsIHRlbXBsYXRlRm46IENvbXBvbmVudFRlbXBsYXRlPHt9PnxudWxsLCBjb250ZXh0OiBUKSB7XG4gIG5nRGV2TW9kZSAmJiBhc3NlcnRFcXVhbChpc0NyZWF0aW9uTW9kZShsVmlldyksIGZhbHNlLCAnU2hvdWxkIGJlIHJ1biBpbiB1cGRhdGUgbW9kZScpO1xuICBjb25zdCBmbGFncyA9IGxWaWV3W0ZMQUdTXTtcbiAgaWYgKChmbGFncyAmIExWaWV3RmxhZ3MuRGVzdHJveWVkKSA9PT0gTFZpZXdGbGFncy5EZXN0cm95ZWQpIHJldHVybjtcblxuICAvLyBDaGVjayBubyBjaGFuZ2VzIG1vZGUgaXMgYSBkZXYgb25seSBtb2RlIHVzZWQgdG8gdmVyaWZ5IHRoYXQgYmluZGluZ3MgaGF2ZSBub3QgY2hhbmdlZFxuICAvLyBzaW5jZSB0aGV5IHdlcmUgYXNzaWduZWQuIFdlIGRvIG5vdCB3YW50IHRvIGV4ZWN1dGUgbGlmZWN5Y2xlIGhvb2tzIGluIHRoYXQgbW9kZS5cbiAgY29uc3QgaXNJbkNoZWNrTm9DaGFuZ2VzUGFzcyA9IG5nRGV2TW9kZSAmJiBpc0luQ2hlY2tOb0NoYW5nZXNNb2RlKCk7XG5cbiAgIWlzSW5DaGVja05vQ2hhbmdlc1Bhc3MgJiYgbFZpZXdbRU5WSVJPTk1FTlRdLmlubGluZUVmZmVjdFJ1bm5lcj8uZmx1c2goKTtcblxuXG4gIC8vIFN0YXJ0IGNvbXBvbmVudCByZWFjdGl2ZSBjb250ZXh0XG4gIC8vIC0gV2UgbWlnaHQgYWxyZWFkeSBiZSBpbiBhIHJlYWN0aXZlIGNvbnRleHQgaWYgdGhpcyBpcyBhbiBlbWJlZGRlZCB2aWV3IG9mIHRoZSBob3N0LlxuICAvLyAtIFdlIG1pZ2h0IGJlIGRlc2NlbmRpbmcgaW50byBhIHZpZXcgdGhhdCBuZWVkcyBhIGNvbnN1bWVyLlxuICBlbnRlclZpZXcobFZpZXcpO1xuICBsZXQgcHJldkNvbnN1bWVyOiBSZWFjdGl2ZU5vZGV8bnVsbCA9IG51bGw7XG4gIGxldCBjdXJyZW50Q29uc3VtZXI6IFJlYWN0aXZlTFZpZXdDb25zdW1lcnxudWxsID0gbnVsbDtcbiAgaWYgKCFpc0luQ2hlY2tOb0NoYW5nZXNQYXNzICYmIHZpZXdTaG91bGRIYXZlUmVhY3RpdmVDb25zdW1lcih0VmlldykpIHtcbiAgICBjdXJyZW50Q29uc3VtZXIgPSBnZXRPckJvcnJvd1JlYWN0aXZlTFZpZXdDb25zdW1lcihsVmlldyk7XG4gICAgcHJldkNvbnN1bWVyID0gY29uc3VtZXJCZWZvcmVDb21wdXRhdGlvbihjdXJyZW50Q29uc3VtZXIpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXNldFByZU9yZGVySG9va0ZsYWdzKGxWaWV3KTtcblxuICAgIHNldEJpbmRpbmdJbmRleCh0Vmlldy5iaW5kaW5nU3RhcnRJbmRleCk7XG4gICAgaWYgKHRlbXBsYXRlRm4gIT09IG51bGwpIHtcbiAgICAgIGV4ZWN1dGVUZW1wbGF0ZSh0VmlldywgbFZpZXcsIHRlbXBsYXRlRm4sIFJlbmRlckZsYWdzLlVwZGF0ZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29uc3QgaG9va3NJbml0UGhhc2VDb21wbGV0ZWQgPVxuICAgICAgICAoZmxhZ3MgJiBMVmlld0ZsYWdzLkluaXRQaGFzZVN0YXRlTWFzaykgPT09IEluaXRQaGFzZVN0YXRlLkluaXRQaGFzZUNvbXBsZXRlZDtcblxuICAgIC8vIGV4ZWN1dGUgcHJlLW9yZGVyIGhvb2tzIChPbkluaXQsIE9uQ2hhbmdlcywgRG9DaGVjaylcbiAgICAvLyBQRVJGIFdBUk5JTkc6IGRvIE5PVCBleHRyYWN0IHRoaXMgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiB3aXRob3V0IHJ1bm5pbmcgYmVuY2htYXJrc1xuICAgIGlmICghaXNJbkNoZWNrTm9DaGFuZ2VzUGFzcykge1xuICAgICAgaWYgKGhvb2tzSW5pdFBoYXNlQ29tcGxldGVkKSB7XG4gICAgICAgIGNvbnN0IHByZU9yZGVyQ2hlY2tIb29rcyA9IHRWaWV3LnByZU9yZGVyQ2hlY2tIb29rcztcbiAgICAgICAgaWYgKHByZU9yZGVyQ2hlY2tIb29rcyAhPT0gbnVsbCkge1xuICAgICAgICAgIGV4ZWN1dGVDaGVja0hvb2tzKGxWaWV3LCBwcmVPcmRlckNoZWNrSG9va3MsIG51bGwpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwcmVPcmRlckhvb2tzID0gdFZpZXcucHJlT3JkZXJIb29rcztcbiAgICAgICAgaWYgKHByZU9yZGVySG9va3MgIT09IG51bGwpIHtcbiAgICAgICAgICBleGVjdXRlSW5pdEFuZENoZWNrSG9va3MobFZpZXcsIHByZU9yZGVySG9va3MsIEluaXRQaGFzZVN0YXRlLk9uSW5pdEhvb2tzVG9CZVJ1biwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5jcmVtZW50SW5pdFBoYXNlRmxhZ3MobFZpZXcsIEluaXRQaGFzZVN0YXRlLk9uSW5pdEhvb2tzVG9CZVJ1bik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmlyc3QgbWFyayB0cmFuc3BsYW50ZWQgdmlld3MgdGhhdCBhcmUgZGVjbGFyZWQgaW4gdGhpcyBsVmlldyBhcyBuZWVkaW5nIGEgcmVmcmVzaCBhdCB0aGVpclxuICAgIC8vIGluc2VydGlvbiBwb2ludHMuIFRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgdGhlIHRlbXBsYXRlIGlzIGRlZmluZWQgaW4gdGhpc1xuICAgIC8vIGBMVmlld2AgYnV0IGl0cyBkZWNsYXJhdGlvbiBhcHBlYXJzIGFmdGVyIHRoZSBpbnNlcnRpb24gY29tcG9uZW50LlxuICAgIG1hcmtUcmFuc3BsYW50ZWRWaWV3c0ZvclJlZnJlc2gobFZpZXcpO1xuICAgIGRldGVjdENoYW5nZXNJbkVtYmVkZGVkVmlld3MobFZpZXcsIENoYW5nZURldGVjdGlvbk1vZGUuR2xvYmFsKTtcblxuICAgIC8vIENvbnRlbnQgcXVlcnkgcmVzdWx0cyBtdXN0IGJlIHJlZnJlc2hlZCBiZWZvcmUgY29udGVudCBob29rcyBhcmUgY2FsbGVkLlxuICAgIGlmICh0Vmlldy5jb250ZW50UXVlcmllcyAhPT0gbnVsbCkge1xuICAgICAgcmVmcmVzaENvbnRlbnRRdWVyaWVzKHRWaWV3LCBsVmlldyk7XG4gICAgfVxuXG4gICAgLy8gZXhlY3V0ZSBjb250ZW50IGhvb2tzIChBZnRlckNvbnRlbnRJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkKVxuICAgIC8vIFBFUkYgV0FSTklORzogZG8gTk9UIGV4dHJhY3QgdGhpcyB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uIHdpdGhvdXQgcnVubmluZyBiZW5jaG1hcmtzXG4gICAgaWYgKCFpc0luQ2hlY2tOb0NoYW5nZXNQYXNzKSB7XG4gICAgICBpZiAoaG9va3NJbml0UGhhc2VDb21wbGV0ZWQpIHtcbiAgICAgICAgY29uc3QgY29udGVudENoZWNrSG9va3MgPSB0Vmlldy5jb250ZW50Q2hlY2tIb29rcztcbiAgICAgICAgaWYgKGNvbnRlbnRDaGVja0hvb2tzICE9PSBudWxsKSB7XG4gICAgICAgICAgZXhlY3V0ZUNoZWNrSG9va3MobFZpZXcsIGNvbnRlbnRDaGVja0hvb2tzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udGVudEhvb2tzID0gdFZpZXcuY29udGVudEhvb2tzO1xuICAgICAgICBpZiAoY29udGVudEhvb2tzICE9PSBudWxsKSB7XG4gICAgICAgICAgZXhlY3V0ZUluaXRBbmRDaGVja0hvb2tzKFxuICAgICAgICAgICAgICBsVmlldywgY29udGVudEhvb2tzLCBJbml0UGhhc2VTdGF0ZS5BZnRlckNvbnRlbnRJbml0SG9va3NUb0JlUnVuKTtcbiAgICAgICAgfVxuICAgICAgICBpbmNyZW1lbnRJbml0UGhhc2VGbGFncyhsVmlldywgSW5pdFBoYXNlU3RhdGUuQWZ0ZXJDb250ZW50SW5pdEhvb2tzVG9CZVJ1bik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzc0hvc3RCaW5kaW5nT3BDb2Rlcyh0VmlldywgbFZpZXcpO1xuXG4gICAgLy8gUmVmcmVzaCBjaGlsZCBjb21wb25lbnQgdmlld3MuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IHRWaWV3LmNvbXBvbmVudHM7XG4gICAgaWYgKGNvbXBvbmVudHMgIT09IG51bGwpIHtcbiAgICAgIGRldGVjdENoYW5nZXNJbkNoaWxkQ29tcG9uZW50cyhsVmlldywgY29tcG9uZW50cywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5HbG9iYWwpO1xuICAgIH1cblxuICAgIC8vIFZpZXcgcXVlcmllcyBtdXN0IGV4ZWN1dGUgYWZ0ZXIgcmVmcmVzaGluZyBjaGlsZCBjb21wb25lbnRzIGJlY2F1c2UgYSB0ZW1wbGF0ZSBpbiB0aGlzIHZpZXdcbiAgICAvLyBjb3VsZCBiZSBpbnNlcnRlZCBpbiBhIGNoaWxkIGNvbXBvbmVudC4gSWYgdGhlIHZpZXcgcXVlcnkgZXhlY3V0ZXMgYmVmb3JlIGNoaWxkIGNvbXBvbmVudFxuICAgIC8vIHJlZnJlc2gsIHRoZSB0ZW1wbGF0ZSBtaWdodCBub3QgeWV0IGJlIGluc2VydGVkLlxuICAgIGNvbnN0IHZpZXdRdWVyeSA9IHRWaWV3LnZpZXdRdWVyeTtcbiAgICBpZiAodmlld1F1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICBleGVjdXRlVmlld1F1ZXJ5Rm48VD4oUmVuZGVyRmxhZ3MuVXBkYXRlLCB2aWV3UXVlcnksIGNvbnRleHQpO1xuICAgIH1cblxuICAgIC8vIGV4ZWN1dGUgdmlldyBob29rcyAoQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZClcbiAgICAvLyBQRVJGIFdBUk5JTkc6IGRvIE5PVCBleHRyYWN0IHRoaXMgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiB3aXRob3V0IHJ1bm5pbmcgYmVuY2htYXJrc1xuICAgIGlmICghaXNJbkNoZWNrTm9DaGFuZ2VzUGFzcykge1xuICAgICAgaWYgKGhvb2tzSW5pdFBoYXNlQ29tcGxldGVkKSB7XG4gICAgICAgIGNvbnN0IHZpZXdDaGVja0hvb2tzID0gdFZpZXcudmlld0NoZWNrSG9va3M7XG4gICAgICAgIGlmICh2aWV3Q2hlY2tIb29rcyAhPT0gbnVsbCkge1xuICAgICAgICAgIGV4ZWN1dGVDaGVja0hvb2tzKGxWaWV3LCB2aWV3Q2hlY2tIb29rcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZpZXdIb29rcyA9IHRWaWV3LnZpZXdIb29rcztcbiAgICAgICAgaWYgKHZpZXdIb29rcyAhPT0gbnVsbCkge1xuICAgICAgICAgIGV4ZWN1dGVJbml0QW5kQ2hlY2tIb29rcyhsVmlldywgdmlld0hvb2tzLCBJbml0UGhhc2VTdGF0ZS5BZnRlclZpZXdJbml0SG9va3NUb0JlUnVuKTtcbiAgICAgICAgfVxuICAgICAgICBpbmNyZW1lbnRJbml0UGhhc2VGbGFncyhsVmlldywgSW5pdFBoYXNlU3RhdGUuQWZ0ZXJWaWV3SW5pdEhvb2tzVG9CZVJ1bik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0Vmlldy5maXJzdFVwZGF0ZVBhc3MgPT09IHRydWUpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2Ugb25seSBmbGlwIHRoZSBmbGFnIG9uIHN1Y2Nlc3NmdWwgYHJlZnJlc2hWaWV3YCBvbmx5XG4gICAgICAvLyBEb24ndCBkbyB0aGlzIGluIGBmaW5hbGx5YCBibG9jay5cbiAgICAgIC8vIElmIHdlIGRpZCB0aGlzIGluIGBmaW5hbGx5YCBibG9jayB0aGVuIGFuIGV4Y2VwdGlvbiBjb3VsZCBibG9jayB0aGUgZXhlY3V0aW9uIG9mIHN0eWxpbmdcbiAgICAgIC8vIGluc3RydWN0aW9ucyB3aGljaCBpbiB0dXJuIHdvdWxkIGJlIHVuYWJsZSB0byBpbnNlcnQgdGhlbXNlbHZlcyBpbnRvIHRoZSBzdHlsaW5nIGxpbmtlZFxuICAgICAgLy8gbGlzdC4gVGhlIHJlc3VsdCBvZiB0aGlzIHdvdWxkIGJlIHRoYXQgaWYgdGhlIGV4Y2VwdGlvbiB3b3VsZCBub3QgYmUgdGhyb3cgb24gc3Vic2VxdWVudCBDRFxuICAgICAgLy8gdGhlIHN0eWxpbmcgd291bGQgYmUgdW5hYmxlIHRvIHByb2Nlc3MgaXQgZGF0YSBhbmQgcmVmbGVjdCB0byB0aGUgRE9NLlxuICAgICAgdFZpZXcuZmlyc3RVcGRhdGVQYXNzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU2NoZWR1bGUgYW55IGVmZmVjdHMgdGhhdCBhcmUgd2FpdGluZyBvbiB0aGUgdXBkYXRlIHBhc3Mgb2YgdGhpcyB2aWV3LlxuICAgIGlmIChsVmlld1tFRkZFQ1RTX1RPX1NDSEVEVUxFXSkge1xuICAgICAgZm9yIChjb25zdCBub3RpZnlFZmZlY3Qgb2YgbFZpZXdbRUZGRUNUU19UT19TQ0hFRFVMRV0pIHtcbiAgICAgICAgbm90aWZ5RWZmZWN0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9uY2UgdGhleSd2ZSBiZWVuIHJ1biwgd2UgY2FuIGRyb3AgdGhlIGFycmF5LlxuICAgICAgbFZpZXdbRUZGRUNUU19UT19TQ0hFRFVMRV0gPSBudWxsO1xuICAgIH1cblxuICAgIC8vIERvIG5vdCByZXNldCB0aGUgZGlydHkgc3RhdGUgd2hlbiBydW5uaW5nIGluIGNoZWNrIG5vIGNoYW5nZXMgbW9kZS4gV2UgZG9uJ3Qgd2FudCBjb21wb25lbnRzXG4gICAgLy8gdG8gYmVoYXZlIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB3aGV0aGVyIGNoZWNrIG5vIGNoYW5nZXMgaXMgZW5hYmxlZCBvciBub3QuIEZvciBleGFtcGxlOlxuICAgIC8vIE1hcmtpbmcgYW4gT25QdXNoIGNvbXBvbmVudCBhcyBkaXJ0eSBmcm9tIHdpdGhpbiB0aGUgYG5nQWZ0ZXJWaWV3SW5pdGAgaG9vayBpbiBvcmRlciB0b1xuICAgIC8vIHJlZnJlc2ggYSBgTmdDbGFzc2AgYmluZGluZyBzaG91bGQgd29yay4gSWYgd2Ugd291bGQgcmVzZXQgdGhlIGRpcnR5IHN0YXRlIGluIHRoZSBjaGVja1xuICAgIC8vIG5vIGNoYW5nZXMgY3ljbGUsIHRoZSBjb21wb25lbnQgd291bGQgYmUgbm90IGJlIGRpcnR5IGZvciB0aGUgbmV4dCB1cGRhdGUgcGFzcy4gVGhpcyB3b3VsZFxuICAgIC8vIGJlIGRpZmZlcmVudCBpbiBwcm9kdWN0aW9uIG1vZGUgd2hlcmUgdGhlIGNvbXBvbmVudCBkaXJ0eSBzdGF0ZSBpcyBub3QgcmVzZXQuXG4gICAgaWYgKCFpc0luQ2hlY2tOb0NoYW5nZXNQYXNzKSB7XG4gICAgICBsVmlld1tGTEFHU10gJj0gfihMVmlld0ZsYWdzLkRpcnR5IHwgTFZpZXdGbGFncy5GaXJzdExWaWV3UGFzcyk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gSWYgcmVmcmVzaGluZyBhIHZpZXcgY2F1c2VzIGFuIGVycm9yLCB3ZSBuZWVkIHRvIHJlbWFyayB0aGUgYW5jZXN0b3JzIGFzIG5lZWRpbmcgdHJhdmVyc2FsXG4gICAgLy8gYmVjYXVzZSB0aGUgZXJyb3IgbWlnaHQgaGF2ZSBjYXVzZWQgYSBzaXR1YXRpb24gd2hlcmUgdmlld3MgYmVsb3cgdGhlIGN1cnJlbnQgbG9jYXRpb24gYXJlXG4gICAgLy8gZGlydHkgYnV0IHdpbGwgYmUgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGUgXCJoYXMgZGlydHkgY2hpbGRyZW5cIiBmbGFnIGluIHRoZSBhbmNlc3RvcnMgaGFzIGJlZW5cbiAgICAvLyBjbGVhcmVkIGR1cmluZyBjaGFuZ2UgZGV0ZWN0aW9uIGFuZCB3ZSBmYWlsZWQgdG8gcnVuIHRvIGNvbXBsZXRpb24uXG5cbiAgICBtYXJrQW5jZXN0b3JzRm9yVHJhdmVyc2FsKGxWaWV3KTtcbiAgICB0aHJvdyBlO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChjdXJyZW50Q29uc3VtZXIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN1bWVyQWZ0ZXJDb21wdXRhdGlvbihjdXJyZW50Q29uc3VtZXIsIHByZXZDb25zdW1lcik7XG4gICAgICBtYXliZVJldHVyblJlYWN0aXZlTFZpZXdDb25zdW1lcihjdXJyZW50Q29uc3VtZXIpO1xuICAgIH1cbiAgICBsZWF2ZVZpZXcoKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyBpZiB0aGUgdmlldyBzaG91bGQgZ2V0IGl0cyBvd24gcmVhY3RpdmUgY29uc3VtZXIgbm9kZS5cbiAqXG4gKiBJbiB0aGUgY3VycmVudCBkZXNpZ24sIGFsbCBlbWJlZGRlZCB2aWV3cyBzaGFyZSBhIGNvbnN1bWVyIHdpdGggdGhlIGNvbXBvbmVudCB2aWV3LiBUaGlzIGFsbG93c1xuICogdXMgdG8gcmVmcmVzaCBhdCB0aGUgY29tcG9uZW50IGxldmVsIHJhdGhlciB0aGFuIGF0IGEgcGVyLXZpZXcgbGV2ZWwuIEluIGFkZGl0aW9uLCByb290IHZpZXdzIGdldFxuICogdGhlaXIgb3duIHJlYWN0aXZlIG5vZGUgYmVjYXVzZSByb290IGNvbXBvbmVudCB3aWxsIGhhdmUgYSBob3N0IHZpZXcgdGhhdCBleGVjdXRlcyB0aGVcbiAqIGNvbXBvbmVudCdzIGhvc3QgYmluZGluZ3MuIFRoaXMgbmVlZHMgdG8gYmUgdHJhY2tlZCBpbiBhIGNvbnN1bWVyIGFzIHdlbGwuXG4gKlxuICogVG8gZ2V0IGEgbW9yZSBncmFudWxhciBjaGFuZ2UgZGV0ZWN0aW9uIHRoYW4gcGVyLWNvbXBvbmVudCwgYWxsIHdlIHdvdWxkIGp1c3QgbmVlZCB0byB1cGRhdGUgdGhlXG4gKiBjb25kaXRpb24gaGVyZSBzbyB0aGF0IGEgZ2l2ZW4gdmlldyBnZXRzIGEgcmVhY3RpdmUgY29uc3VtZXIgd2hpY2ggY2FuIGJlY29tZSBkaXJ0eSBpbmRlcGVuZGVudGx5XG4gKiBmcm9tIGl0cyBwYXJlbnQgY29tcG9uZW50LiBGb3IgZXhhbXBsZSBlbWJlZGRlZCB2aWV3cyBmb3Igc2lnbmFsIGNvbXBvbmVudHMgY291bGQgYmUgY3JlYXRlZCB3aXRoXG4gKiBhIG5ldyB0eXBlIFwiU2lnbmFsRW1iZWRkZWRWaWV3XCIgYW5kIHRoZSBjb25kaXRpb24gaGVyZSB3b3VsZG4ndCBldmVuIG5lZWQgdXBkYXRpbmcgaW4gb3JkZXIgdG9cbiAqIGdldCBncmFudWxhciBwZXItdmlldyBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBzaWduYWwgY29tcG9uZW50cy5cbiAqL1xuZnVuY3Rpb24gdmlld1Nob3VsZEhhdmVSZWFjdGl2ZUNvbnN1bWVyKHRWaWV3OiBUVmlldykge1xuICByZXR1cm4gdFZpZXcudHlwZSAhPT0gVFZpZXdUeXBlLkVtYmVkZGVkO1xufVxuXG4vKipcbiAqIEdvZXMgb3ZlciBlbWJlZGRlZCB2aWV3cyAob25lcyBjcmVhdGVkIHRocm91Z2ggVmlld0NvbnRhaW5lclJlZiBBUElzKSBhbmQgcmVmcmVzaGVzXG4gKiB0aGVtIGJ5IGV4ZWN1dGluZyBhbiBhc3NvY2lhdGVkIHRlbXBsYXRlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5FbWJlZGRlZFZpZXdzKGxWaWV3OiBMVmlldywgbW9kZTogQ2hhbmdlRGV0ZWN0aW9uTW9kZSkge1xuICBmb3IgKGxldCBsQ29udGFpbmVyID0gZ2V0Rmlyc3RMQ29udGFpbmVyKGxWaWV3KTsgbENvbnRhaW5lciAhPT0gbnVsbDtcbiAgICAgICBsQ29udGFpbmVyID0gZ2V0TmV4dExDb250YWluZXIobENvbnRhaW5lcikpIHtcbiAgICBsQ29udGFpbmVyW0hBU19DSElMRF9WSUVXU19UT19SRUZSRVNIXSA9IGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSBDT05UQUlORVJfSEVBREVSX09GRlNFVDsgaSA8IGxDb250YWluZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVtYmVkZGVkTFZpZXcgPSBsQ29udGFpbmVyW2ldO1xuICAgICAgZGV0ZWN0Q2hhbmdlc0luVmlld0lmQXR0YWNoZWQoZW1iZWRkZWRMVmlldywgbW9kZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWFyayB0cmFuc3BsYW50ZWQgdmlld3MgYXMgbmVlZGluZyB0byBiZSByZWZyZXNoZWQgYXQgdGhlaXIgaW5zZXJ0aW9uIHBvaW50cy5cbiAqXG4gKiBAcGFyYW0gbFZpZXcgVGhlIGBMVmlld2AgdGhhdCBtYXkgaGF2ZSB0cmFuc3BsYW50ZWQgdmlld3MuXG4gKi9cbmZ1bmN0aW9uIG1hcmtUcmFuc3BsYW50ZWRWaWV3c0ZvclJlZnJlc2gobFZpZXc6IExWaWV3KSB7XG4gIGZvciAobGV0IGxDb250YWluZXIgPSBnZXRGaXJzdExDb250YWluZXIobFZpZXcpOyBsQ29udGFpbmVyICE9PSBudWxsO1xuICAgICAgIGxDb250YWluZXIgPSBnZXROZXh0TENvbnRhaW5lcihsQ29udGFpbmVyKSkge1xuICAgIGlmICghbENvbnRhaW5lcltIQVNfVFJBTlNQTEFOVEVEX1ZJRVdTXSkgY29udGludWU7XG5cbiAgICBjb25zdCBtb3ZlZFZpZXdzID0gbENvbnRhaW5lcltNT1ZFRF9WSUVXU10hO1xuICAgIG5nRGV2TW9kZSAmJiBhc3NlcnREZWZpbmVkKG1vdmVkVmlld3MsICdUcmFuc3BsYW50ZWQgVmlldyBmbGFncyBzZXQgYnV0IG1pc3NpbmcgTU9WRURfVklFV1MnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vdmVkVmlld3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG1vdmVkTFZpZXcgPSBtb3ZlZFZpZXdzW2ldITtcbiAgICAgIGNvbnN0IGluc2VydGlvbkxDb250YWluZXIgPSBtb3ZlZExWaWV3W1BBUkVOVF0gYXMgTENvbnRhaW5lcjtcbiAgICAgIG5nRGV2TW9kZSAmJiBhc3NlcnRMQ29udGFpbmVyKGluc2VydGlvbkxDb250YWluZXIpO1xuICAgICAgbWFya1ZpZXdGb3JSZWZyZXNoKG1vdmVkTFZpZXcpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIERldGVjdHMgY2hhbmdlcyBpbiBhIGNvbXBvbmVudCBieSBlbnRlcmluZyB0aGUgY29tcG9uZW50IHZpZXcgYW5kIHByb2Nlc3NpbmcgaXRzIGJpbmRpbmdzLFxuICogcXVlcmllcywgZXRjLiBpZiBpdCBpcyBDaGVja0Fsd2F5cywgT25QdXNoIGFuZCBEaXJ0eSwgZXRjLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRIb3N0SWR4ICBFbGVtZW50IGluZGV4IGluIExWaWV3W10gKGFkanVzdGVkIGZvciBIRUFERVJfT0ZGU0VUKVxuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5Db21wb25lbnQoXG4gICAgaG9zdExWaWV3OiBMVmlldywgY29tcG9uZW50SG9zdElkeDogbnVtYmVyLCBtb2RlOiBDaGFuZ2VEZXRlY3Rpb25Nb2RlKTogdm9pZCB7XG4gIG5nRGV2TW9kZSAmJiBhc3NlcnRFcXVhbChpc0NyZWF0aW9uTW9kZShob3N0TFZpZXcpLCBmYWxzZSwgJ1Nob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUnKTtcbiAgY29uc3QgY29tcG9uZW50VmlldyA9IGdldENvbXBvbmVudExWaWV3QnlJbmRleChjb21wb25lbnRIb3N0SWR4LCBob3N0TFZpZXcpO1xuICBkZXRlY3RDaGFuZ2VzSW5WaWV3SWZBdHRhY2hlZChjb21wb25lbnRWaWV3LCBtb2RlKTtcbn1cblxuLyoqXG4gKiBWaXNpdHMgYSB2aWV3IGFzIHBhcnQgb2YgY2hhbmdlIGRldGVjdGlvbiB0cmF2ZXJzYWwuXG4gKlxuICogSWYgdGhlIHZpZXcgaXMgZGV0YWNoZWQsIG5vIGFkZGl0aW9uYWwgdHJhdmVyc2FsIGhhcHBlbnMuXG4gKi9cbmZ1bmN0aW9uIGRldGVjdENoYW5nZXNJblZpZXdJZkF0dGFjaGVkKGxWaWV3OiBMVmlldywgbW9kZTogQ2hhbmdlRGV0ZWN0aW9uTW9kZSkge1xuICBpZiAoIXZpZXdBdHRhY2hlZFRvQ2hhbmdlRGV0ZWN0b3IobFZpZXcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGRldGVjdENoYW5nZXNJblZpZXcobFZpZXcsIG1vZGUpO1xufVxuXG4vKipcbiAqIFZpc2l0cyBhIHZpZXcgYXMgcGFydCBvZiBjaGFuZ2UgZGV0ZWN0aW9uIHRyYXZlcnNhbC5cbiAqXG4gKiBUaGUgdmlldyBpcyByZWZyZXNoZWQgaWY6XG4gKiAtIElmIHRoZSB2aWV3IGlzIENoZWNrQWx3YXlzIG9yIERpcnR5IGFuZCBDaGFuZ2VEZXRlY3Rpb25Nb2RlIGlzIGBHbG9iYWxgXG4gKiAtIElmIHRoZSB2aWV3IGhhcyB0aGUgYFJlZnJlc2hUcmFuc3BsYW50ZWRWaWV3YCBmbGFnXG4gKlxuICogVGhlIHZpZXcgaXMgbm90IHJlZnJlc2hlZCwgYnV0IGRlc2NlbmRhbnRzIGFyZSB0cmF2ZXJzZWQgaW4gYENoYW5nZURldGVjdGlvbk1vZGUuVGFyZ2V0ZWRgIGlmIHRoZVxuICogdmlldyBIYXNDaGlsZFZpZXdzVG9SZWZyZXNoIGZsYWcgaXMgc2V0LlxuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5WaWV3KGxWaWV3OiBMVmlldywgbW9kZTogQ2hhbmdlRGV0ZWN0aW9uTW9kZSkge1xuICBjb25zdCBpc0luQ2hlY2tOb0NoYW5nZXNQYXNzID0gbmdEZXZNb2RlICYmIGlzSW5DaGVja05vQ2hhbmdlc01vZGUoKTtcbiAgY29uc3QgdFZpZXcgPSBsVmlld1tUVklFV107XG4gIGNvbnN0IGZsYWdzID0gbFZpZXdbRkxBR1NdO1xuICBjb25zdCBjb25zdW1lciA9IGxWaWV3W1JFQUNUSVZFX1RFTVBMQVRFX0NPTlNVTUVSXTtcblxuICAvLyBSZWZyZXNoIENoZWNrQWx3YXlzIHZpZXdzIGluIEdsb2JhbCBtb2RlLlxuICBsZXQgc2hvdWxkUmVmcmVzaFZpZXc6IGJvb2xlYW4gPVxuICAgICAgISEobW9kZSA9PT0gQ2hhbmdlRGV0ZWN0aW9uTW9kZS5HbG9iYWwgJiYgZmxhZ3MgJiBMVmlld0ZsYWdzLkNoZWNrQWx3YXlzKTtcblxuICAvLyBSZWZyZXNoIERpcnR5IHZpZXdzIGluIEdsb2JhbCBtb2RlLCBhcyBsb25nIGFzIHdlJ3JlIG5vdCBpbiBjaGVja05vQ2hhbmdlcy5cbiAgLy8gQ2hlY2tOb0NoYW5nZXMgbmV2ZXIgd29ya2VkIHdpdGggYE9uUHVzaGAgY29tcG9uZW50cyBiZWNhdXNlIHRoZSBgRGlydHlgIGZsYWcgd2FzXG4gIC8vIGNsZWFyZWQgYmVmb3JlIGNoZWNrTm9DaGFuZ2VzIHJhbi4gQmVjYXVzZSB0aGVyZSBpcyBub3cgYSBsb29wIGZvciB0byBjaGVjayBmb3JcbiAgLy8gYmFja3dhcmRzIHZpZXdzLCBpdCBnaXZlcyBhbiBvcHBvcnR1bml0eSBmb3IgYE9uUHVzaGAgY29tcG9uZW50cyB0byBiZSBtYXJrZWQgYERpcnR5YFxuICAvLyBiZWZvcmUgdGhlIENoZWNrTm9DaGFuZ2VzIHBhc3MuIFdlIGRvbid0IHdhbnQgZXhpc3RpbmcgZXJyb3JzIHRoYXQgYXJlIGhpZGRlbiBieSB0aGVcbiAgLy8gY3VycmVudCBDaGVja05vQ2hhbmdlcyBidWcgdG8gc3VyZmFjZSB3aGVuIG1ha2luZyB1bnJlbGF0ZWQgY2hhbmdlcy5cbiAgc2hvdWxkUmVmcmVzaFZpZXcgfHw9ICEhKFxuICAgICAgZmxhZ3MgJiBMVmlld0ZsYWdzLkRpcnR5ICYmIG1vZGUgPT09IENoYW5nZURldGVjdGlvbk1vZGUuR2xvYmFsICYmICFpc0luQ2hlY2tOb0NoYW5nZXNQYXNzKTtcblxuICAvLyBBbHdheXMgcmVmcmVzaCB2aWV3cyBtYXJrZWQgZm9yIHJlZnJlc2gsIHJlZ2FyZGxlc3Mgb2YgbW9kZS5cbiAgc2hvdWxkUmVmcmVzaFZpZXcgfHw9ICEhKGZsYWdzICYgTFZpZXdGbGFncy5SZWZyZXNoVmlldyk7XG5cbiAgLy8gUmVmcmVzaCB2aWV3cyB3aGVuIHRoZXkgaGF2ZSBhIGRpcnR5IHJlYWN0aXZlIGNvbnN1bWVyLCByZWdhcmRsZXNzIG9mIG1vZGUuXG4gIHNob3VsZFJlZnJlc2hWaWV3IHx8PSAhIShjb25zdW1lcj8uZGlydHkgJiYgY29uc3VtZXJQb2xsUHJvZHVjZXJzRm9yQ2hhbmdlKGNvbnN1bWVyKSk7XG5cbiAgLy8gTWFyayB0aGUgRmxhZ3MgYW5kIGBSZWFjdGl2ZU5vZGVgIGFzIG5vdCBkaXJ0eSBiZWZvcmUgcmVmcmVzaGluZyB0aGUgY29tcG9uZW50LCBzbyB0aGF0IHRoZXlcbiAgLy8gY2FuIGJlIHJlLWRpcnRpZWQgZHVyaW5nIHRoZSByZWZyZXNoIHByb2Nlc3MuXG4gIGlmIChjb25zdW1lcikge1xuICAgIGNvbnN1bWVyLmRpcnR5ID0gZmFsc2U7XG4gIH1cbiAgbFZpZXdbRkxBR1NdICY9IH4oTFZpZXdGbGFncy5IYXNDaGlsZFZpZXdzVG9SZWZyZXNoIHwgTFZpZXdGbGFncy5SZWZyZXNoVmlldyk7XG5cbiAgaWYgKHNob3VsZFJlZnJlc2hWaWV3KSB7XG4gICAgcmVmcmVzaFZpZXcodFZpZXcsIGxWaWV3LCB0Vmlldy50ZW1wbGF0ZSwgbFZpZXdbQ09OVEVYVF0pO1xuICB9IGVsc2UgaWYgKGZsYWdzICYgTFZpZXdGbGFncy5IYXNDaGlsZFZpZXdzVG9SZWZyZXNoKSB7XG4gICAgZGV0ZWN0Q2hhbmdlc0luRW1iZWRkZWRWaWV3cyhsVmlldywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5UYXJnZXRlZCk7XG4gICAgY29uc3QgY29tcG9uZW50cyA9IHRWaWV3LmNvbXBvbmVudHM7XG4gICAgaWYgKGNvbXBvbmVudHMgIT09IG51bGwpIHtcbiAgICAgIGRldGVjdENoYW5nZXNJbkNoaWxkQ29tcG9uZW50cyhsVmlldywgY29tcG9uZW50cywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5UYXJnZXRlZCk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBSZWZyZXNoZXMgY2hpbGQgY29tcG9uZW50cyBpbiB0aGUgY3VycmVudCB2aWV3ICh1cGRhdGUgbW9kZSkuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5DaGlsZENvbXBvbmVudHMoXG4gICAgaG9zdExWaWV3OiBMVmlldywgY29tcG9uZW50czogbnVtYmVyW10sIG1vZGU6IENoYW5nZURldGVjdGlvbk1vZGUpOiB2b2lkIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21wb25lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZGV0ZWN0Q2hhbmdlc0luQ29tcG9uZW50KGhvc3RMVmlldywgY29tcG9uZW50c1tpXSwgbW9kZSk7XG4gIH1cbn1cbiJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlX2RldGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvaW5zdHJ1Y3Rpb25zL2NoYW5nZV9kZXRlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFFbkosT0FBTyxFQUFDLFlBQVksRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlGLE9BQU8sRUFBQyx1QkFBdUIsRUFBYyxlQUFlLEVBQUUsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUcsT0FBTyxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQyxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFtQixNQUFNLG9CQUFvQixDQUFDO0FBQ3BMLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFBd0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNySSxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbEgsT0FBTyxFQUFDLGtCQUFrQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDbkYsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFB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IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2NvbnN1bWVyQWZ0ZXJDb21wdXRhdGlvbiwgY29uc3VtZXJCZWZvcmVDb21wdXRhdGlvbiwgY29uc3VtZXJQb2xsUHJvZHVjZXJzRm9yQ2hhbmdlLCBSZWFjdGl2ZU5vZGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcHJpbWl0aXZlcy9zaWduYWxzJztcblxuaW1wb3J0IHtSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQge2Fzc2VydERlZmluZWQsIGFzc2VydEVxdWFsfSBmcm9tICcuLi8uLi91dGlsL2Fzc2VydCc7XG5pbXBvcnQge2Fzc2VydExDb250YWluZXJ9IGZyb20gJy4uL2Fzc2VydCc7XG5pbXBvcnQge2V4ZWN1dGVDaGVja0hvb2tzLCBleGVjdXRlSW5pdEFuZENoZWNrSG9va3MsIGluY3JlbWVudEluaXRQaGFzZUZsYWdzfSBmcm9tICcuLi9ob29rcyc7XG5pbXBvcnQge0NPTlRBSU5FUl9IRUFERVJfT0ZGU0VULCBMQ29udGFpbmVyLCBMQ29udGFpbmVyRmxhZ3MsIE1PVkVEX1ZJRVdTfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbnRhaW5lcic7XG5pbXBvcnQge0NvbXBvbmVudFRlbXBsYXRlLCBSZW5kZXJGbGFnc30gZnJvbSAnLi4vaW50ZXJmYWNlcy9kZWZpbml0aW9uJztcbmltcG9ydCB7Q09OVEVYVCwgRUZGRUNUU19UT19TQ0hFRFVMRSwgRU5WSVJPTk1FTlQsIEZMQUdTLCBJbml0UGhhc2VTdGF0ZSwgTFZpZXcsIExWaWV3RmxhZ3MsIFBBUkVOVCwgUkVBQ1RJVkVfVEVNUExBVEVfQ09OU1VNRVIsIFRWSUVXLCBUVmlldywgVFZpZXdUeXBlfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuaW1wb3J0IHtnZXRPckJvcnJvd1JlYWN0aXZlTFZpZXdDb25zdW1lciwgbWF5YmVSZXR1cm5SZWFjdGl2ZUxWaWV3Q29uc3VtZXIsIFJlYWN0aXZlTFZpZXdDb25zdW1lcn0gZnJvbSAnLi4vcmVhY3RpdmVfbHZpZXdfY29uc3VtZXInO1xuaW1wb3J0IHtlbnRlclZpZXcsIGlzSW5DaGVja05vQ2hhbmdlc01vZGUsIGxlYXZlVmlldywgc2V0QmluZGluZ0luZGV4LCBzZXRJc0luQ2hlY2tOb0NoYW5nZXNNb2RlfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQge2dldEZpcnN0TENvbnRhaW5lciwgZ2V0TmV4dExDb250YWluZXJ9IGZyb20gJy4uL3V0aWwvdmlld190cmF2ZXJzYWxfdXRpbHMnO1xuaW1wb3J0IHtnZXRDb21wb25lbnRMVmlld0J5SW5kZXgsIGlzQ3JlYXRpb25Nb2RlLCBtYXJrQW5jZXN0b3JzRm9yVHJhdmVyc2FsLCBtYXJrVmlld0ZvclJlZnJlc2gsIHJlc2V0UHJlT3JkZXJIb29rRmxhZ3MsIHZpZXdBdHRhY2hlZFRvQ2hhbmdlRGV0ZWN0b3J9IGZyb20gJy4uL3V0aWwvdmlld191dGlscyc7XG5cbmltcG9ydCB7ZXhlY3V0ZVRlbXBsYXRlLCBleGVjdXRlVmlld1F1ZXJ5Rm4sIGhhbmRsZUVycm9yLCBwcm9jZXNzSG9zdEJpbmRpbmdPcENvZGVzLCByZWZyZXNoQ29udGVudFF1ZXJpZXN9IGZyb20gJy4vc2hhcmVkJztcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdGhlIGNoYW5nZSBkZXRlY3Rpb24gdHJhdmVyc2FsIHdpbGwgcmVydW4gYmVmb3JlIHRocm93aW5nIGFuIGVycm9yLlxuICovXG5jb25zdCBNQVhJTVVNX1JFRlJFU0hfUkVSVU5TID0gMTAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0Q2hhbmdlc0ludGVybmFsKGxWaWV3OiBMVmlldywgbm90aWZ5RXJyb3JIYW5kbGVyID0gdHJ1ZSkge1xuICBjb25zdCBlbnZpcm9ubWVudCA9IGxWaWV3W0VOVklST05NRU5UXTtcbiAgY29uc3QgcmVuZGVyZXJGYWN0b3J5ID0gZW52aXJvbm1lbnQucmVuZGVyZXJGYWN0b3J5O1xuICBjb25zdCBhZnRlclJlbmRlckV2ZW50TWFuYWdlciA9IGVudmlyb25tZW50LmFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyO1xuXG4gIC8vIENoZWNrIG5vIGNoYW5nZXMgbW9kZSBpcyBhIGRldiBvbmx5IG1vZGUgdXNlZCB0byB2ZXJpZnkgdGhhdCBiaW5kaW5ncyBoYXZlIG5vdCBjaGFuZ2VkXG4gIC8vIHNpbmNlIHRoZXkgd2VyZSBhc3NpZ25lZC4gV2UgZG8gbm90IHdhbnQgdG8gaW52b2tlIHJlbmRlcmVyIGZhY3RvcnkgZnVuY3Rpb25zIGluIHRoYXQgbW9kZVxuICAvLyB0byBhdm9pZCBhbnkgcG9zc2libGUgc2lkZS1lZmZlY3RzLlxuICBjb25zdCBjaGVja05vQ2hhbmdlc01vZGUgPSAhIW5nRGV2TW9kZSAmJiBpc0luQ2hlY2tOb0NoYW5nZXNNb2RlKCk7XG5cbiAgaWYgKCFjaGVja05vQ2hhbmdlc01vZGUpIHtcbiAgICByZW5kZXJlckZhY3RvcnkuYmVnaW4/LigpO1xuICAgIGFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyPy5iZWdpbigpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB0VmlldyA9IGxWaWV3W1RWSUVXXTtcbiAgICBjb25zdCBjb250ZXh0ID0gbFZpZXdbQ09OVEVYVF07XG4gICAgcmVmcmVzaFZpZXcodFZpZXcsIGxWaWV3LCB0Vmlldy50ZW1wbGF0ZSwgY29udGV4dCk7XG4gICAgZGV0ZWN0Q2hhbmdlc0luVmlld1doaWxlRGlydHkobFZpZXcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChub3RpZnlFcnJvckhhbmRsZXIpIHtcbiAgICAgIGhhbmRsZUVycm9yKGxWaWV3LCBlcnJvcik7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9IGZpbmFsbHkge1xuICAgIGlmICghY2hlY2tOb0NoYW5nZXNNb2RlKSB7XG4gICAgICByZW5kZXJlckZhY3RvcnkuZW5kPy4oKTtcblxuICAgICAgLy8gT25lIGZpbmFsIGZsdXNoIG9mIHRoZSBlZmZlY3RzIHF1ZXVlIHRvIGNhdGNoIGFueSBlZmZlY3RzIGNyZWF0ZWQgaW4gYG5nQWZ0ZXJWaWV3SW5pdGAgb3JcbiAgICAgIC8vIG90aGVyIHBvc3Qtb3JkZXIgaG9va3MuXG4gICAgICBlbnZpcm9ubWVudC5pbmxpbmVFZmZlY3RSdW5uZXI/LmZsdXNoKCk7XG5cbiAgICAgIC8vIEludm9rZSBhbGwgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgdmlhIGBhZnRlcipSZW5kZXJgLCBpZiBuZWVkZWQuXG4gICAgICBhZnRlclJlbmRlckV2ZW50TWFuYWdlcj8uZW5kKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRldGVjdENoYW5nZXNJblZpZXdXaGlsZURpcnR5KGxWaWV3OiBMVmlldykge1xuICBsZXQgcmV0cmllcyA9IDA7XG4gIC8vIElmIGFmdGVyIHJ1bm5pbmcgY2hhbmdlIGRldGVjdGlvbiwgdGhpcyB2aWV3IHN0aWxsIG5lZWRzIHRvIGJlIHJlZnJlc2hlZCBvciB0aGVyZSBhcmVcbiAgLy8gZGVzY2VuZGFudHMgdmlld3MgdGhhdCBuZWVkIHRvIGJlIHJlZnJlc2hlZCBkdWUgdG8gcmUtZGlydHlpbmcgZHVyaW5nIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uXG4gIC8vIHJ1biwgZGV0ZWN0IGNoYW5nZXMgb24gdGhlIHZpZXcgYWdhaW4uIFdlIHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGluIGBUYXJnZXRlZGAgbW9kZSB0byBvbmx5XG4gIC8vIHJlZnJlc2ggdmlld3Mgd2l0aCB0aGUgYFJlZnJlc2hWaWV3YCBmbGFnLlxuICB3aGlsZSAobFZpZXdbRkxBR1NdICYgKExWaWV3RmxhZ3MuUmVmcmVzaFZpZXcgfCBMVmlld0ZsYWdzLkhhc0NoaWxkVmlld3NUb1JlZnJlc2gpIHx8XG4gICAgICAgICBsVmlld1tSRUFDVElWRV9URU1QTEFURV9DT05TVU1FUl0/LmRpcnR5KSB7XG4gICAgaWYgKHJldHJpZXMgPT09IE1BWElNVU1fUkVGUkVTSF9SRVJVTlMpIHtcbiAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgUnVudGltZUVycm9yQ29kZS5JTkZJTklURV9DSEFOR0VfREVURUNUSU9OLFxuICAgICAgICAgIG5nRGV2TW9kZSAmJlxuICAgICAgICAgICAgICAnSW5maW5pdGUgY2hhbmdlIGRldGVjdGlvbiB3aGlsZSB0cnlpbmcgdG8gcmVmcmVzaCB2aWV3cy4gJyArXG4gICAgICAgICAgICAgICAgICAnVGhlcmUgbWF5IGJlIGNvbXBvbmVudHMgd2hpY2ggZWFjaCBjYXVzZSB0aGUgb3RoZXIgdG8gcmVxdWlyZSBhIHJlZnJlc2gsICcgK1xuICAgICAgICAgICAgICAgICAgJ2NhdXNpbmcgYW4gaW5maW5pdGUgbG9vcC4nKTtcbiAgICB9XG4gICAgcmV0cmllcysrO1xuICAgIC8vIEV2ZW4gaWYgdGhpcyB2aWV3IGlzIGRldGFjaGVkLCB3ZSBzdGlsbCBkZXRlY3QgY2hhbmdlcyBpbiB0YXJnZXRlZCBtb2RlIGJlY2F1c2UgdGhpcyB3YXNcbiAgICAvLyB0aGUgcm9vdCBvZiB0aGUgY2hhbmdlIGRldGVjdGlvbiBydW4uXG4gICAgZGV0ZWN0Q2hhbmdlc0luVmlldyhsVmlldywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5UYXJnZXRlZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrTm9DaGFuZ2VzSW50ZXJuYWwobFZpZXc6IExWaWV3LCBub3RpZnlFcnJvckhhbmRsZXIgPSB0cnVlKSB7XG4gIHNldElzSW5DaGVja05vQ2hhbmdlc01vZGUodHJ1ZSk7XG4gIHRyeSB7XG4gICAgZGV0ZWN0Q2hhbmdlc0ludGVybmFsKGxWaWV3LCBub3RpZnlFcnJvckhhbmRsZXIpO1xuICB9IGZpbmFsbHkge1xuICAgIHNldElzSW5DaGVja05vQ2hhbmdlc01vZGUoZmFsc2UpO1xuICB9XG59XG5cblxuLyoqXG4gKiBEaWZmZXJlbnQgbW9kZXMgb2YgdHJhdmVyc2luZyB0aGUgbG9naWNhbCB2aWV3IHRyZWUgZHVyaW5nIGNoYW5nZSBkZXRlY3Rpb24uXG4gKlxuICpcbiAqIFRoZSBjaGFuZ2UgZGV0ZWN0aW9uIHRyYXZlcnNhbCBhbGdvcml0aG0gc3dpdGNoZXMgYmV0d2VlbiB0aGVzZSBtb2RlcyBiYXNlZCBvbiB2YXJpb3VzXG4gKiBjb25kaXRpb25zLlxuICovXG5jb25zdCBlbnVtIENoYW5nZURldGVjdGlvbk1vZGUge1xuICAvKipcbiAgICogSW4gYEdsb2JhbGAgbW9kZSwgYERpcnR5YCBhbmQgYENoZWNrQWx3YXlzYCB2aWV3cyBhcmUgcmVmcmVzaGVkIGFzIHdlbGwgYXMgdmlld3Mgd2l0aCB0aGVcbiAgICogYFJlZnJlc2hUcmFuc3BsYW50ZWRWaWV3YCBmbGFnLlxuICAgKi9cbiAgR2xvYmFsLFxuICAvKipcbiAgICogSW4gYFRhcmdldGVkYCBtb2RlLCBvbmx5IHZpZXdzIHdpdGggdGhlIGBSZWZyZXNoVHJhbnNwbGFudGVkVmlld2BcbiAgICogZmxhZyBhcmUgcmVmcmVzaGVkLlxuICAgKi9cbiAgVGFyZ2V0ZWQsXG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIGEgdmlldyBpbiB1cGRhdGUgbW9kZS4gVGhpcyBpbmNsdWRlcyBhIG51bWJlciBvZiBzdGVwcyBpbiBhIHNwZWNpZmljIG9yZGVyOlxuICogLSBleGVjdXRpbmcgYSB0ZW1wbGF0ZSBmdW5jdGlvbiBpbiB1cGRhdGUgbW9kZTtcbiAqIC0gZXhlY3V0aW5nIGhvb2tzO1xuICogLSByZWZyZXNoaW5nIHF1ZXJpZXM7XG4gKiAtIHNldHRpbmcgaG9zdCBiaW5kaW5ncztcbiAqIC0gcmVmcmVzaGluZyBjaGlsZCAoZW1iZWRkZWQgYW5kIGNvbXBvbmVudCkgdmlld3MuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZnJlc2hWaWV3PFQ+KFxuICAgIHRWaWV3OiBUVmlldywgbFZpZXc6IExWaWV3LCB0ZW1wbGF0ZUZuOiBDb21wb25lbnRUZW1wbGF0ZTx7fT58bnVsbCwgY29udGV4dDogVCkge1xuICBuZ0Rldk1vZGUgJiYgYXNzZXJ0RXF1YWwoaXNDcmVhdGlvbk1vZGUobFZpZXcpLCBmYWxzZSwgJ1Nob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUnKTtcbiAgY29uc3QgZmxhZ3MgPSBsVmlld1tGTEFHU107XG4gIGlmICgoZmxhZ3MgJiBMVmlld0ZsYWdzLkRlc3Ryb3llZCkgPT09IExWaWV3RmxhZ3MuRGVzdHJveWVkKSByZXR1cm47XG5cbiAgLy8gQ2hlY2sgbm8gY2hhbmdlcyBtb2RlIGlzIGEgZGV2IG9ubHkgbW9kZSB1c2VkIHRvIHZlcmlmeSB0aGF0IGJpbmRpbmdzIGhhdmUgbm90IGNoYW5nZWRcbiAgLy8gc2luY2UgdGhleSB3ZXJlIGFzc2lnbmVkLiBXZSBkbyBub3Qgd2FudCB0byBleGVjdXRlIGxpZmVjeWNsZSBob29rcyBpbiB0aGF0IG1vZGUuXG4gIGNvbnN0IGlzSW5DaGVja05vQ2hhbmdlc1Bhc3MgPSBuZ0Rldk1vZGUgJiYgaXNJbkNoZWNrTm9DaGFuZ2VzTW9kZSgpO1xuXG4gICFpc0luQ2hlY2tOb0NoYW5nZXNQYXNzICYmIGxWaWV3W0VOVklST05NRU5UXS5pbmxpbmVFZmZlY3RSdW5uZXI/LmZsdXNoKCk7XG5cblxuICAvLyBTdGFydCBjb21wb25lbnQgcmVhY3RpdmUgY29udGV4dFxuICAvLyAtIFdlIG1pZ2h0IGFscmVhZHkgYmUgaW4gYSByZWFjdGl2ZSBjb250ZXh0IGlmIHRoaXMgaXMgYW4gZW1iZWRkZWQgdmlldyBvZiB0aGUgaG9zdC5cbiAgLy8gLSBXZSBtaWdodCBiZSBkZXNjZW5kaW5nIGludG8gYSB2aWV3IHRoYXQgbmVlZHMgYSBjb25zdW1lci5cbiAgZW50ZXJWaWV3KGxWaWV3KTtcbiAgbGV0IHByZXZDb25zdW1lcjogUmVhY3RpdmVOb2RlfG51bGwgPSBudWxsO1xuICBsZXQgY3VycmVudENvbnN1bWVyOiBSZWFjdGl2ZUxWaWV3Q29uc3VtZXJ8bnVsbCA9IG51bGw7XG4gIGlmICghaXNJbkNoZWNrTm9DaGFuZ2VzUGFzcyAmJiB2aWV3U2hvdWxkSGF2ZVJlYWN0aXZlQ29uc3VtZXIodFZpZXcpKSB7XG4gICAgY3VycmVudENvbnN1bWVyID0gZ2V0T3JCb3Jyb3dSZWFjdGl2ZUxWaWV3Q29uc3VtZXIobFZpZXcpO1xuICAgIHByZXZDb25zdW1lciA9IGNvbnN1bWVyQmVmb3JlQ29tcHV0YXRpb24oY3VycmVudENvbnN1bWVyKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmVzZXRQcmVPcmRlckhvb2tGbGFncyhsVmlldyk7XG5cbiAgICBzZXRCaW5kaW5nSW5kZXgodFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgpO1xuICAgIGlmICh0ZW1wbGF0ZUZuICE9PSBudWxsKSB7XG4gICAgICBleGVjdXRlVGVtcGxhdGUodFZpZXcsIGxWaWV3LCB0ZW1wbGF0ZUZuLCBSZW5kZXJGbGFncy5VcGRhdGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIGNvbnN0IGhvb2tzSW5pdFBoYXNlQ29tcGxldGVkID1cbiAgICAgICAgKGZsYWdzICYgTFZpZXdGbGFncy5Jbml0UGhhc2VTdGF0ZU1hc2spID09PSBJbml0UGhhc2VTdGF0ZS5Jbml0UGhhc2VDb21wbGV0ZWQ7XG5cbiAgICAvLyBleGVjdXRlIHByZS1vcmRlciBob29rcyAoT25Jbml0LCBPbkNoYW5nZXMsIERvQ2hlY2spXG4gICAgLy8gUEVSRiBXQVJOSU5HOiBkbyBOT1QgZXh0cmFjdCB0aGlzIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gd2l0aG91dCBydW5uaW5nIGJlbmNobWFya3NcbiAgICBpZiAoIWlzSW5DaGVja05vQ2hhbmdlc1Bhc3MpIHtcbiAgICAgIGlmIChob29rc0luaXRQaGFzZUNvbXBsZXRlZCkge1xuICAgICAgICBjb25zdCBwcmVPcmRlckNoZWNrSG9va3MgPSB0Vmlldy5wcmVPcmRlckNoZWNrSG9va3M7XG4gICAgICAgIGlmIChwcmVPcmRlckNoZWNrSG9va3MgIT09IG51bGwpIHtcbiAgICAgICAgICBleGVjdXRlQ2hlY2tIb29rcyhsVmlldywgcHJlT3JkZXJDaGVja0hvb2tzLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJlT3JkZXJIb29rcyA9IHRWaWV3LnByZU9yZGVySG9va3M7XG4gICAgICAgIGlmIChwcmVPcmRlckhvb2tzICE9PSBudWxsKSB7XG4gICAgICAgICAgZXhlY3V0ZUluaXRBbmRDaGVja0hvb2tzKGxWaWV3LCBwcmVPcmRlckhvb2tzLCBJbml0UGhhc2VTdGF0ZS5PbkluaXRIb29rc1RvQmVSdW4sIG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGluY3JlbWVudEluaXRQaGFzZUZsYWdzKGxWaWV3LCBJbml0UGhhc2VTdGF0ZS5PbkluaXRIb29rc1RvQmVSdW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpcnN0IG1hcmsgdHJhbnNwbGFudGVkIHZpZXdzIHRoYXQgYXJlIGRlY2xhcmVkIGluIHRoaXMgbFZpZXcgYXMgbmVlZGluZyBhIHJlZnJlc2ggYXQgdGhlaXJcbiAgICAvLyBpbnNlcnRpb24gcG9pbnRzLiBUaGlzIGlzIG5lZWRlZCB0byBhdm9pZCB0aGUgc2l0dWF0aW9uIHdoZXJlIHRoZSB0ZW1wbGF0ZSBpcyBkZWZpbmVkIGluIHRoaXNcbiAgICAvLyBgTFZpZXdgIGJ1dCBpdHMgZGVjbGFyYXRpb24gYXBwZWFycyBhZnRlciB0aGUgaW5zZXJ0aW9uIGNvbXBvbmVudC5cbiAgICBtYXJrVHJhbnNwbGFudGVkVmlld3NGb3JSZWZyZXNoKGxWaWV3KTtcbiAgICBkZXRlY3RDaGFuZ2VzSW5FbWJlZGRlZFZpZXdzKGxWaWV3LCBDaGFuZ2VEZXRlY3Rpb25Nb2RlLkdsb2JhbCk7XG5cbiAgICAvLyBDb250ZW50IHF1ZXJ5IHJlc3VsdHMgbXVzdCBiZSByZWZyZXNoZWQgYmVmb3JlIGNvbnRlbnQgaG9va3MgYXJlIGNhbGxlZC5cbiAgICBpZiAodFZpZXcuY29udGVudFF1ZXJpZXMgIT09IG51bGwpIHtcbiAgICAgIHJlZnJlc2hDb250ZW50UXVlcmllcyh0VmlldywgbFZpZXcpO1xuICAgIH1cblxuICAgIC8vIGV4ZWN1dGUgY29udGVudCBob29rcyAoQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZClcbiAgICAvLyBQRVJGIFdBUk5JTkc6IGRvIE5PVCBleHRyYWN0IHRoaXMgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiB3aXRob3V0IHJ1bm5pbmcgYmVuY2htYXJrc1xuICAgIGlmICghaXNJbkNoZWNrTm9DaGFuZ2VzUGFzcykge1xuICAgICAgaWYgKGhvb2tzSW5pdFBoYXNlQ29tcGxldGVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRDaGVja0hvb2tzID0gdFZpZXcuY29udGVudENoZWNrSG9va3M7XG4gICAgICAgIGlmIChjb250ZW50Q2hlY2tIb29rcyAhPT0gbnVsbCkge1xuICAgICAgICAgIGV4ZWN1dGVDaGVja0hvb2tzKGxWaWV3LCBjb250ZW50Q2hlY2tIb29rcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRIb29rcyA9IHRWaWV3LmNvbnRlbnRIb29rcztcbiAgICAgICAgaWYgKGNvbnRlbnRIb29rcyAhPT0gbnVsbCkge1xuICAgICAgICAgIGV4ZWN1dGVJbml0QW5kQ2hlY2tIb29rcyhcbiAgICAgICAgICAgICAgbFZpZXcsIGNvbnRlbnRIb29rcywgSW5pdFBoYXNlU3RhdGUuQWZ0ZXJDb250ZW50SW5pdEhvb2tzVG9CZVJ1bik7XG4gICAgICAgIH1cbiAgICAgICAgaW5jcmVtZW50SW5pdFBoYXNlRmxhZ3MobFZpZXcsIEluaXRQaGFzZVN0YXRlLkFmdGVyQ29udGVudEluaXRIb29rc1RvQmVSdW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3NIb3N0QmluZGluZ09wQ29kZXModFZpZXcsIGxWaWV3KTtcblxuICAgIC8vIFJlZnJlc2ggY2hpbGQgY29tcG9uZW50IHZpZXdzLlxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSB0Vmlldy5jb21wb25lbnRzO1xuICAgIGlmIChjb21wb25lbnRzICE9PSBudWxsKSB7XG4gICAgICBkZXRlY3RDaGFuZ2VzSW5DaGlsZENvbXBvbmVudHMobFZpZXcsIGNvbXBvbmVudHMsIENoYW5nZURldGVjdGlvbk1vZGUuR2xvYmFsKTtcbiAgICB9XG5cbiAgICAvLyBWaWV3IHF1ZXJpZXMgbXVzdCBleGVjdXRlIGFmdGVyIHJlZnJlc2hpbmcgY2hpbGQgY29tcG9uZW50cyBiZWNhdXNlIGEgdGVtcGxhdGUgaW4gdGhpcyB2aWV3XG4gICAgLy8gY291bGQgYmUgaW5zZXJ0ZWQgaW4gYSBjaGlsZCBjb21wb25lbnQuIElmIHRoZSB2aWV3IHF1ZXJ5IGV4ZWN1dGVzIGJlZm9yZSBjaGlsZCBjb21wb25lbnRcbiAgICAvLyByZWZyZXNoLCB0aGUgdGVtcGxhdGUgbWlnaHQgbm90IHlldCBiZSBpbnNlcnRlZC5cbiAgICBjb25zdCB2aWV3UXVlcnkgPSB0Vmlldy52aWV3UXVlcnk7XG4gICAgaWYgKHZpZXdRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgZXhlY3V0ZVZpZXdRdWVyeUZuPFQ+KFJlbmRlckZsYWdzLlVwZGF0ZSwgdmlld1F1ZXJ5LCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICAvLyBleGVjdXRlIHZpZXcgaG9va3MgKEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQpXG4gICAgLy8gUEVSRiBXQVJOSU5HOiBkbyBOT1QgZXh0cmFjdCB0aGlzIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gd2l0aG91dCBydW5uaW5nIGJlbmNobWFya3NcbiAgICBpZiAoIWlzSW5DaGVja05vQ2hhbmdlc1Bhc3MpIHtcbiAgICAgIGlmIChob29rc0luaXRQaGFzZUNvbXBsZXRlZCkge1xuICAgICAgICBjb25zdCB2aWV3Q2hlY2tIb29rcyA9IHRWaWV3LnZpZXdDaGVja0hvb2tzO1xuICAgICAgICBpZiAodmlld0NoZWNrSG9va3MgIT09IG51bGwpIHtcbiAgICAgICAgICBleGVjdXRlQ2hlY2tIb29rcyhsVmlldywgdmlld0NoZWNrSG9va3MpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2aWV3SG9va3MgPSB0Vmlldy52aWV3SG9va3M7XG4gICAgICAgIGlmICh2aWV3SG9va3MgIT09IG51bGwpIHtcbiAgICAgICAgICBleGVjdXRlSW5pdEFuZENoZWNrSG9va3MobFZpZXcsIHZpZXdIb29rcywgSW5pdFBoYXNlU3RhdGUuQWZ0ZXJWaWV3SW5pdEhvb2tzVG9CZVJ1bik7XG4gICAgICAgIH1cbiAgICAgICAgaW5jcmVtZW50SW5pdFBoYXNlRmxhZ3MobFZpZXcsIEluaXRQaGFzZVN0YXRlLkFmdGVyVmlld0luaXRIb29rc1RvQmVSdW4pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodFZpZXcuZmlyc3RVcGRhdGVQYXNzID09PSB0cnVlKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIG9ubHkgZmxpcCB0aGUgZmxhZyBvbiBzdWNjZXNzZnVsIGByZWZyZXNoVmlld2Agb25seVxuICAgICAgLy8gRG9uJ3QgZG8gdGhpcyBpbiBgZmluYWxseWAgYmxvY2suXG4gICAgICAvLyBJZiB3ZSBkaWQgdGhpcyBpbiBgZmluYWxseWAgYmxvY2sgdGhlbiBhbiBleGNlcHRpb24gY291bGQgYmxvY2sgdGhlIGV4ZWN1dGlvbiBvZiBzdHlsaW5nXG4gICAgICAvLyBpbnN0cnVjdGlvbnMgd2hpY2ggaW4gdHVybiB3b3VsZCBiZSB1bmFibGUgdG8gaW5zZXJ0IHRoZW1zZWx2ZXMgaW50byB0aGUgc3R5bGluZyBsaW5rZWRcbiAgICAgIC8vIGxpc3QuIFRoZSByZXN1bHQgb2YgdGhpcyB3b3VsZCBiZSB0aGF0IGlmIHRoZSBleGNlcHRpb24gd291bGQgbm90IGJlIHRocm93IG9uIHN1YnNlcXVlbnQgQ0RcbiAgICAgIC8vIHRoZSBzdHlsaW5nIHdvdWxkIGJlIHVuYWJsZSB0byBwcm9jZXNzIGl0IGRhdGEgYW5kIHJlZmxlY3QgdG8gdGhlIERPTS5cbiAgICAgIHRWaWV3LmZpcnN0VXBkYXRlUGFzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNjaGVkdWxlIGFueSBlZmZlY3RzIHRoYXQgYXJlIHdhaXRpbmcgb24gdGhlIHVwZGF0ZSBwYXNzIG9mIHRoaXMgdmlldy5cbiAgICBpZiAobFZpZXdbRUZGRUNUU19UT19TQ0hFRFVMRV0pIHtcbiAgICAgIGZvciAoY29uc3Qgbm90aWZ5RWZmZWN0IG9mIGxWaWV3W0VGRkVDVFNfVE9fU0NIRURVTEVdKSB7XG4gICAgICAgIG5vdGlmeUVmZmVjdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbmNlIHRoZXkndmUgYmVlbiBydW4sIHdlIGNhbiBkcm9wIHRoZSBhcnJheS5cbiAgICAgIGxWaWV3W0VGRkVDVFNfVE9fU0NIRURVTEVdID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBEbyBub3QgcmVzZXQgdGhlIGRpcnR5IHN0YXRlIHdoZW4gcnVubmluZyBpbiBjaGVjayBubyBjaGFuZ2VzIG1vZGUuIFdlIGRvbid0IHdhbnQgY29tcG9uZW50c1xuICAgIC8vIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSBkZXBlbmRpbmcgb24gd2hldGhlciBjaGVjayBubyBjaGFuZ2VzIGlzIGVuYWJsZWQgb3Igbm90LiBGb3IgZXhhbXBsZTpcbiAgICAvLyBNYXJraW5nIGFuIE9uUHVzaCBjb21wb25lbnQgYXMgZGlydHkgZnJvbSB3aXRoaW4gdGhlIGBuZ0FmdGVyVmlld0luaXRgIGhvb2sgaW4gb3JkZXIgdG9cbiAgICAvLyByZWZyZXNoIGEgYE5nQ2xhc3NgIGJpbmRpbmcgc2hvdWxkIHdvcmsuIElmIHdlIHdvdWxkIHJlc2V0IHRoZSBkaXJ0eSBzdGF0ZSBpbiB0aGUgY2hlY2tcbiAgICAvLyBubyBjaGFuZ2VzIGN5Y2xlLCB0aGUgY29tcG9uZW50IHdvdWxkIGJlIG5vdCBiZSBkaXJ0eSBmb3IgdGhlIG5leHQgdXBkYXRlIHBhc3MuIFRoaXMgd291bGRcbiAgICAvLyBiZSBkaWZmZXJlbnQgaW4gcHJvZHVjdGlvbiBtb2RlIHdoZXJlIHRoZSBjb21wb25lbnQgZGlydHkgc3RhdGUgaXMgbm90IHJlc2V0LlxuICAgIGlmICghaXNJbkNoZWNrTm9DaGFuZ2VzUGFzcykge1xuICAgICAgbFZpZXdbRkxBR1NdICY9IH4oTFZpZXdGbGFncy5EaXJ0eSB8IExWaWV3RmxhZ3MuRmlyc3RMVmlld1Bhc3MpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIElmIHJlZnJlc2hpbmcgYSB2aWV3IGNhdXNlcyBhbiBlcnJvciwgd2UgbmVlZCB0byByZW1hcmsgdGhlIGFuY2VzdG9ycyBhcyBuZWVkaW5nIHRyYXZlcnNhbFxuICAgIC8vIGJlY2F1c2UgdGhlIGVycm9yIG1pZ2h0IGhhdmUgY2F1c2VkIGEgc2l0dWF0aW9uIHdoZXJlIHZpZXdzIGJlbG93IHRoZSBjdXJyZW50IGxvY2F0aW9uIGFyZVxuICAgIC8vIGRpcnR5IGJ1dCB3aWxsIGJlIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIFwiaGFzIGRpcnR5IGNoaWxkcmVuXCIgZmxhZyBpbiB0aGUgYW5jZXN0b3JzIGhhcyBiZWVuXG4gICAgLy8gY2xlYXJlZCBkdXJpbmcgY2hhbmdlIGRldGVjdGlvbiBhbmQgd2UgZmFpbGVkIHRvIHJ1biB0byBjb21wbGV0aW9uLlxuXG4gICAgbWFya0FuY2VzdG9yc0ZvclRyYXZlcnNhbChsVmlldyk7XG4gICAgdGhyb3cgZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoY3VycmVudENvbnN1bWVyICE9PSBudWxsKSB7XG4gICAgICBjb25zdW1lckFmdGVyQ29tcHV0YXRpb24oY3VycmVudENvbnN1bWVyLCBwcmV2Q29uc3VtZXIpO1xuICAgICAgbWF5YmVSZXR1cm5SZWFjdGl2ZUxWaWV3Q29uc3VtZXIoY3VycmVudENvbnN1bWVyKTtcbiAgICB9XG4gICAgbGVhdmVWaWV3KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgaWYgdGhlIHZpZXcgc2hvdWxkIGdldCBpdHMgb3duIHJlYWN0aXZlIGNvbnN1bWVyIG5vZGUuXG4gKlxuICogSW4gdGhlIGN1cnJlbnQgZGVzaWduLCBhbGwgZW1iZWRkZWQgdmlld3Mgc2hhcmUgYSBjb25zdW1lciB3aXRoIHRoZSBjb21wb25lbnQgdmlldy4gVGhpcyBhbGxvd3NcbiAqIHVzIHRvIHJlZnJlc2ggYXQgdGhlIGNvbXBvbmVudCBsZXZlbCByYXRoZXIgdGhhbiBhdCBhIHBlci12aWV3IGxldmVsLiBJbiBhZGRpdGlvbiwgcm9vdCB2aWV3cyBnZXRcbiAqIHRoZWlyIG93biByZWFjdGl2ZSBub2RlIGJlY2F1c2Ugcm9vdCBjb21wb25lbnQgd2lsbCBoYXZlIGEgaG9zdCB2aWV3IHRoYXQgZXhlY3V0ZXMgdGhlXG4gKiBjb21wb25lbnQncyBob3N0IGJpbmRpbmdzLiBUaGlzIG5lZWRzIHRvIGJlIHRyYWNrZWQgaW4gYSBjb25zdW1lciBhcyB3ZWxsLlxuICpcbiAqIFRvIGdldCBhIG1vcmUgZ3JhbnVsYXIgY2hhbmdlIGRldGVjdGlvbiB0aGFuIHBlci1jb21wb25lbnQsIGFsbCB3ZSB3b3VsZCBqdXN0IG5lZWQgdG8gdXBkYXRlIHRoZVxuICogY29uZGl0aW9uIGhlcmUgc28gdGhhdCBhIGdpdmVuIHZpZXcgZ2V0cyBhIHJlYWN0aXZlIGNvbnN1bWVyIHdoaWNoIGNhbiBiZWNvbWUgZGlydHkgaW5kZXBlbmRlbnRseVxuICogZnJvbSBpdHMgcGFyZW50IGNvbXBvbmVudC4gRm9yIGV4YW1wbGUgZW1iZWRkZWQgdmlld3MgZm9yIHNpZ25hbCBjb21wb25lbnRzIGNvdWxkIGJlIGNyZWF0ZWQgd2l0aFxuICogYSBuZXcgdHlwZSBcIlNpZ25hbEVtYmVkZGVkVmlld1wiIGFuZCB0aGUgY29uZGl0aW9uIGhlcmUgd291bGRuJ3QgZXZlbiBuZWVkIHVwZGF0aW5nIGluIG9yZGVyIHRvXG4gKiBnZXQgZ3JhbnVsYXIgcGVyLXZpZXcgY2hhbmdlIGRldGVjdGlvbiBmb3Igc2lnbmFsIGNvbXBvbmVudHMuXG4gKi9cbmZ1bmN0aW9uIHZpZXdTaG91bGRIYXZlUmVhY3RpdmVDb25zdW1lcih0VmlldzogVFZpZXcpIHtcbiAgcmV0dXJuIHRWaWV3LnR5cGUgIT09IFRWaWV3VHlwZS5FbWJlZGRlZDtcbn1cblxuLyoqXG4gKiBHb2VzIG92ZXIgZW1iZWRkZWQgdmlld3MgKG9uZXMgY3JlYXRlZCB0aHJvdWdoIFZpZXdDb250YWluZXJSZWYgQVBJcykgYW5kIHJlZnJlc2hlc1xuICogdGhlbSBieSBleGVjdXRpbmcgYW4gYXNzb2NpYXRlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0Q2hhbmdlc0luRW1iZWRkZWRWaWV3cyhsVmlldzogTFZpZXcsIG1vZGU6IENoYW5nZURldGVjdGlvbk1vZGUpIHtcbiAgZm9yIChsZXQgbENvbnRhaW5lciA9IGdldEZpcnN0TENvbnRhaW5lcihsVmlldyk7IGxDb250YWluZXIgIT09IG51bGw7XG4gICAgICAgbENvbnRhaW5lciA9IGdldE5leHRMQ29udGFpbmVyKGxDb250YWluZXIpKSB7XG4gICAgbENvbnRhaW5lcltGTEFHU10gJj0gfkxDb250YWluZXJGbGFncy5IYXNDaGlsZFZpZXdzVG9SZWZyZXNoO1xuICAgIGZvciAobGV0IGkgPSBDT05UQUlORVJfSEVBREVSX09GRlNFVDsgaSA8IGxDb250YWluZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVtYmVkZGVkTFZpZXcgPSBsQ29udGFpbmVyW2ldO1xuICAgICAgZGV0ZWN0Q2hhbmdlc0luVmlld0lmQXR0YWNoZWQoZW1iZWRkZWRMVmlldywgbW9kZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTWFyayB0cmFuc3BsYW50ZWQgdmlld3MgYXMgbmVlZGluZyB0byBiZSByZWZyZXNoZWQgYXQgdGhlaXIgaW5zZXJ0aW9uIHBvaW50cy5cbiAqXG4gKiBAcGFyYW0gbFZpZXcgVGhlIGBMVmlld2AgdGhhdCBtYXkgaGF2ZSB0cmFuc3BsYW50ZWQgdmlld3MuXG4gKi9cbmZ1bmN0aW9uIG1hcmtUcmFuc3BsYW50ZWRWaWV3c0ZvclJlZnJlc2gobFZpZXc6IExWaWV3KSB7XG4gIGZvciAobGV0IGxDb250YWluZXIgPSBnZXRGaXJzdExDb250YWluZXIobFZpZXcpOyBsQ29udGFpbmVyICE9PSBudWxsO1xuICAgICAgIGxDb250YWluZXIgPSBnZXROZXh0TENvbnRhaW5lcihsQ29udGFpbmVyKSkge1xuICAgIGlmICghKGxDb250YWluZXJbRkxBR1NdICYgTENvbnRhaW5lckZsYWdzLkhhc1RyYW5zcGxhbnRlZFZpZXdzKSkgY29udGludWU7XG5cbiAgICBjb25zdCBtb3ZlZFZpZXdzID0gbENvbnRhaW5lcltNT1ZFRF9WSUVXU10hO1xuICAgIG5nRGV2TW9kZSAmJiBhc3NlcnREZWZpbmVkKG1vdmVkVmlld3MsICdUcmFuc3BsYW50ZWQgVmlldyBmbGFncyBzZXQgYnV0IG1pc3NpbmcgTU9WRURfVklFV1MnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vdmVkVmlld3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG1vdmVkTFZpZXcgPSBtb3ZlZFZpZXdzW2ldITtcbiAgICAgIGNvbnN0IGluc2VydGlvbkxDb250YWluZXIgPSBtb3ZlZExWaWV3W1BBUkVOVF0gYXMgTENvbnRhaW5lcjtcbiAgICAgIG5nRGV2TW9kZSAmJiBhc3NlcnRMQ29udGFpbmVyKGluc2VydGlvbkxDb250YWluZXIpO1xuICAgICAgbWFya1ZpZXdGb3JSZWZyZXNoKG1vdmVkTFZpZXcpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIERldGVjdHMgY2hhbmdlcyBpbiBhIGNvbXBvbmVudCBieSBlbnRlcmluZyB0aGUgY29tcG9uZW50IHZpZXcgYW5kIHByb2Nlc3NpbmcgaXRzIGJpbmRpbmdzLFxuICogcXVlcmllcywgZXRjLiBpZiBpdCBpcyBDaGVja0Fsd2F5cywgT25QdXNoIGFuZCBEaXJ0eSwgZXRjLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnRIb3N0SWR4ICBFbGVtZW50IGluZGV4IGluIExWaWV3W10gKGFkanVzdGVkIGZvciBIRUFERVJfT0ZGU0VUKVxuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5Db21wb25lbnQoXG4gICAgaG9zdExWaWV3OiBMVmlldywgY29tcG9uZW50SG9zdElkeDogbnVtYmVyLCBtb2RlOiBDaGFuZ2VEZXRlY3Rpb25Nb2RlKTogdm9pZCB7XG4gIG5nRGV2TW9kZSAmJiBhc3NlcnRFcXVhbChpc0NyZWF0aW9uTW9kZShob3N0TFZpZXcpLCBmYWxzZSwgJ1Nob3VsZCBiZSBydW4gaW4gdXBkYXRlIG1vZGUnKTtcbiAgY29uc3QgY29tcG9uZW50VmlldyA9IGdldENvbXBvbmVudExWaWV3QnlJbmRleChjb21wb25lbnRIb3N0SWR4LCBob3N0TFZpZXcpO1xuICBkZXRlY3RDaGFuZ2VzSW5WaWV3SWZBdHRhY2hlZChjb21wb25lbnRWaWV3LCBtb2RlKTtcbn1cblxuLyoqXG4gKiBWaXNpdHMgYSB2aWV3IGFzIHBhcnQgb2YgY2hhbmdlIGRldGVjdGlvbiB0cmF2ZXJzYWwuXG4gKlxuICogSWYgdGhlIHZpZXcgaXMgZGV0YWNoZWQsIG5vIGFkZGl0aW9uYWwgdHJhdmVyc2FsIGhhcHBlbnMuXG4gKi9cbmZ1bmN0aW9uIGRldGVjdENoYW5nZXNJblZpZXdJZkF0dGFjaGVkKGxWaWV3OiBMVmlldywgbW9kZTogQ2hhbmdlRGV0ZWN0aW9uTW9kZSkge1xuICBpZiAoIXZpZXdBdHRhY2hlZFRvQ2hhbmdlRGV0ZWN0b3IobFZpZXcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGRldGVjdENoYW5nZXNJblZpZXcobFZpZXcsIG1vZGUpO1xufVxuXG4vKipcbiAqIFZpc2l0cyBhIHZpZXcgYXMgcGFydCBvZiBjaGFuZ2UgZGV0ZWN0aW9uIHRyYXZlcnNhbC5cbiAqXG4gKiBUaGUgdmlldyBpcyByZWZyZXNoZWQgaWY6XG4gKiAtIElmIHRoZSB2aWV3IGlzIENoZWNrQWx3YXlzIG9yIERpcnR5IGFuZCBDaGFuZ2VEZXRlY3Rpb25Nb2RlIGlzIGBHbG9iYWxgXG4gKiAtIElmIHRoZSB2aWV3IGhhcyB0aGUgYFJlZnJlc2hUcmFuc3BsYW50ZWRWaWV3YCBmbGFnXG4gKlxuICogVGhlIHZpZXcgaXMgbm90IHJlZnJlc2hlZCwgYnV0IGRlc2NlbmRhbnRzIGFyZSB0cmF2ZXJzZWQgaW4gYENoYW5nZURldGVjdGlvbk1vZGUuVGFyZ2V0ZWRgIGlmIHRoZVxuICogdmlldyBIYXNDaGlsZFZpZXdzVG9SZWZyZXNoIGZsYWcgaXMgc2V0LlxuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5WaWV3KGxWaWV3OiBMVmlldywgbW9kZTogQ2hhbmdlRGV0ZWN0aW9uTW9kZSkge1xuICBjb25zdCBpc0luQ2hlY2tOb0NoYW5nZXNQYXNzID0gbmdEZXZNb2RlICYmIGlzSW5DaGVja05vQ2hhbmdlc01vZGUoKTtcbiAgY29uc3QgdFZpZXcgPSBsVmlld1tUVklFV107XG4gIGNvbnN0IGZsYWdzID0gbFZpZXdbRkxBR1NdO1xuICBjb25zdCBjb25zdW1lciA9IGxWaWV3W1JFQUNUSVZFX1RFTVBMQVRFX0NPTlNVTUVSXTtcblxuICAvLyBSZWZyZXNoIENoZWNrQWx3YXlzIHZpZXdzIGluIEdsb2JhbCBtb2RlLlxuICBsZXQgc2hvdWxkUmVmcmVzaFZpZXc6IGJvb2xlYW4gPVxuICAgICAgISEobW9kZSA9PT0gQ2hhbmdlRGV0ZWN0aW9uTW9kZS5HbG9iYWwgJiYgZmxhZ3MgJiBMVmlld0ZsYWdzLkNoZWNrQWx3YXlzKTtcblxuICAvLyBSZWZyZXNoIERpcnR5IHZpZXdzIGluIEdsb2JhbCBtb2RlLCBhcyBsb25nIGFzIHdlJ3JlIG5vdCBpbiBjaGVja05vQ2hhbmdlcy5cbiAgLy8gQ2hlY2tOb0NoYW5nZXMgbmV2ZXIgd29ya2VkIHdpdGggYE9uUHVzaGAgY29tcG9uZW50cyBiZWNhdXNlIHRoZSBgRGlydHlgIGZsYWcgd2FzXG4gIC8vIGNsZWFyZWQgYmVmb3JlIGNoZWNrTm9DaGFuZ2VzIHJhbi4gQmVjYXVzZSB0aGVyZSBpcyBub3cgYSBsb29wIGZvciB0byBjaGVjayBmb3JcbiAgLy8gYmFja3dhcmRzIHZpZXdzLCBpdCBnaXZlcyBhbiBvcHBvcnR1bml0eSBmb3IgYE9uUHVzaGAgY29tcG9uZW50cyB0byBiZSBtYXJrZWQgYERpcnR5YFxuICAvLyBiZWZvcmUgdGhlIENoZWNrTm9DaGFuZ2VzIHBhc3MuIFdlIGRvbid0IHdhbnQgZXhpc3RpbmcgZXJyb3JzIHRoYXQgYXJlIGhpZGRlbiBieSB0aGVcbiAgLy8gY3VycmVudCBDaGVja05vQ2hhbmdlcyBidWcgdG8gc3VyZmFjZSB3aGVuIG1ha2luZyB1bnJlbGF0ZWQgY2hhbmdlcy5cbiAgc2hvdWxkUmVmcmVzaFZpZXcgfHw9ICEhKFxuICAgICAgZmxhZ3MgJiBMVmlld0ZsYWdzLkRpcnR5ICYmIG1vZGUgPT09IENoYW5nZURldGVjdGlvbk1vZGUuR2xvYmFsICYmICFpc0luQ2hlY2tOb0NoYW5nZXNQYXNzKTtcblxuICAvLyBBbHdheXMgcmVmcmVzaCB2aWV3cyBtYXJrZWQgZm9yIHJlZnJlc2gsIHJlZ2FyZGxlc3Mgb2YgbW9kZS5cbiAgc2hvdWxkUmVmcmVzaFZpZXcgfHw9ICEhKGZsYWdzICYgTFZpZXdGbGFncy5SZWZyZXNoVmlldyk7XG5cbiAgLy8gUmVmcmVzaCB2aWV3cyB3aGVuIHRoZXkgaGF2ZSBhIGRpcnR5IHJlYWN0aXZlIGNvbnN1bWVyLCByZWdhcmRsZXNzIG9mIG1vZGUuXG4gIHNob3VsZFJlZnJlc2hWaWV3IHx8PSAhIShjb25zdW1lcj8uZGlydHkgJiYgY29uc3VtZXJQb2xsUHJvZHVjZXJzRm9yQ2hhbmdlKGNvbnN1bWVyKSk7XG5cbiAgLy8gTWFyayB0aGUgRmxhZ3MgYW5kIGBSZWFjdGl2ZU5vZGVgIGFzIG5vdCBkaXJ0eSBiZWZvcmUgcmVmcmVzaGluZyB0aGUgY29tcG9uZW50LCBzbyB0aGF0IHRoZXlcbiAgLy8gY2FuIGJlIHJlLWRpcnRpZWQgZHVyaW5nIHRoZSByZWZyZXNoIHByb2Nlc3MuXG4gIGlmIChjb25zdW1lcikge1xuICAgIGNvbnN1bWVyLmRpcnR5ID0gZmFsc2U7XG4gIH1cbiAgbFZpZXdbRkxBR1NdICY9IH4oTFZpZXdGbGFncy5IYXNDaGlsZFZpZXdzVG9SZWZyZXNoIHwgTFZpZXdGbGFncy5SZWZyZXNoVmlldyk7XG5cbiAgaWYgKHNob3VsZFJlZnJlc2hWaWV3KSB7XG4gICAgcmVmcmVzaFZpZXcodFZpZXcsIGxWaWV3LCB0Vmlldy50ZW1wbGF0ZSwgbFZpZXdbQ09OVEVYVF0pO1xuICB9IGVsc2UgaWYgKGZsYWdzICYgTFZpZXdGbGFncy5IYXNDaGlsZFZpZXdzVG9SZWZyZXNoKSB7XG4gICAgZGV0ZWN0Q2hhbmdlc0luRW1iZWRkZWRWaWV3cyhsVmlldywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5UYXJnZXRlZCk7XG4gICAgY29uc3QgY29tcG9uZW50cyA9IHRWaWV3LmNvbXBvbmVudHM7XG4gICAgaWYgKGNvbXBvbmVudHMgIT09IG51bGwpIHtcbiAgICAgIGRldGVjdENoYW5nZXNJbkNoaWxkQ29tcG9uZW50cyhsVmlldywgY29tcG9uZW50cywgQ2hhbmdlRGV0ZWN0aW9uTW9kZS5UYXJnZXRlZCk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBSZWZyZXNoZXMgY2hpbGQgY29tcG9uZW50cyBpbiB0aGUgY3VycmVudCB2aWV3ICh1cGRhdGUgbW9kZSkuICovXG5mdW5jdGlvbiBkZXRlY3RDaGFuZ2VzSW5DaGlsZENvbXBvbmVudHMoXG4gICAgaG9zdExWaWV3OiBMVmlldywgY29tcG9uZW50czogbnVtYmVyW10sIG1vZGU6IENoYW5nZURldGVjdGlvbk1vZGUpOiB2b2lkIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21wb25lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZGV0ZWN0Q2hhbmdlc0luQ29tcG9uZW50KGhvc3RMVmlldywgY29tcG9uZW50c1tpXSwgbW9kZSk7XG4gIH1cbn1cbiJdfQ==
|