@magicx-eng/ai-autocomplete-angular 0.30.0 → 0.31.1
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/README.md +8 -8
- package/esm2020/lib/ai-autocomplete/ai-autocomplete.component.mjs +3 -3
- package/esm2020/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.mjs +6 -4
- package/esm2020/lib/controller/ai-autocomplete.controller.mjs +4 -4
- package/esm2020/lib/internal/pill-list/pill-list.component.mjs +2 -2
- package/esm2020/lib/shared/types.mjs +1 -1
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs +11 -9
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs +11 -9
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.d.ts.map +1 -1
- package/lib/internal/pill-list/pill-list.component.d.ts.map +1 -1
- package/lib/shared/types.d.ts +1 -1
- package/lib/shared/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -378,7 +378,7 @@ function computeDropdown(s, optionsPosition) {
|
|
|
378
378
|
const activeSuggestion = s.actionableSuggestions[0];
|
|
379
379
|
const dropdownPill = editingParam
|
|
380
380
|
? {
|
|
381
|
-
|
|
381
|
+
parameter: editingParam.suggestionParameter,
|
|
382
382
|
text: editingParam.suggestionPlaceholder,
|
|
383
383
|
required: true,
|
|
384
384
|
options: editingParam.options,
|
|
@@ -387,8 +387,8 @@ function computeDropdown(s, optionsPosition) {
|
|
|
387
387
|
? // Answering a span the user wrote themselves: the pill names the
|
|
388
388
|
// parameter the server matched it to, so the calendar isn't unlabelled.
|
|
389
389
|
{
|
|
390
|
-
|
|
391
|
-
text: identifiedParamLabel(editingIdentified.
|
|
390
|
+
parameter: editingIdentified.parameter,
|
|
391
|
+
text: identifiedParamLabel(editingIdentified.parameter),
|
|
392
392
|
required: true,
|
|
393
393
|
options: [],
|
|
394
394
|
}
|
|
@@ -419,4 +419,4 @@ function computeDropdown(s, optionsPosition) {
|
|
|
419
419
|
optionsPosition,
|
|
420
420
|
};
|
|
421
421
|
}
|
|
422
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGNBQWMsSUFBSSxrQkFBa0IsRUFHcEMsZ0JBQWdCLEVBRWhCLG9CQUFvQixHQU1yQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBbUIsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQW1HbkM7OztPQUdHO0lBQ0gsWUFBWSxPQUF3QyxFQUFFO1FBcEd0RCw0RUFBNEU7UUFDNUUsNEVBQTRFO1FBQzVFLG1FQUFtRTtRQUNsRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFFNUUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFnRzFCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkRBQTJEO2dCQUN6RCx3RUFBd0UsQ0FDM0UsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLHFFQUFxRTtRQUNyRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsR0FBRyxJQUFJO1lBQ1AsVUFBVSxFQUFFLFVBQVU7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztZQUNyQyxpRUFBaUU7WUFDakUsb0VBQW9FO1lBQ3BFLDJD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QUFXO1FBQzFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxhQUFhO1FBQzlDLGNBQWMsRUFBRSxhQUFhLENBQUMsVUFBVTtRQUN4QyxlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBdXRvY29tcGxldGVSZXN1bHQsXG4gIHR5cGUgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQUlBdXRvY29tcGxldGUgYXMgQ29yZUFJQXV0b2NvbXBsZXRlLFxuICB0eXBlIENvcmVTdGF0ZSxcbiAgdHlwZSBDdXN0b21GaWVsZHNSZXBvcnQsXG4gIGRhdGVTZWxlY3Rpb25Gb3IsXG4gIHR5cGUgSWRlbnRpZmllZFBhcmFtU3RhdGUsXG4gIGlkZW50aWZpZWRQYXJhbUxhYmVsLFxuICB0eXBlIFByb2R1Y3QsXG4gIHR5cGUgU2VnbWVudCxcbiAgdHlwZSBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgdHlwZSBTdWdnZXN0aW9uLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHR5cGUgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUge1xuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zLFxuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSxcbiAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyVXBkYXRlLFxuICBBSUF1dG9jb21wbGV0ZURyb3Bkb3duU3RhdGUsXG59IGZyb20gXCIuLi9zaGFyZWQvdHlwZXNcIjtcbmltcG9ydCB7IGRlcml2ZUZpZWxkIH0gZnJvbSBcIi4vb2JzZXJ2YWJsZXNcIjtcblxuLyoqXG4gKiBUaWVyIDIgbG9naWMgc3VyZmFjZSBmb3IgYEBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS1hbmd1bGFyYCDigJQgdGhlIEFuZ3VsYXJcbiAqIGVxdWl2YWxlbnQgb2YgUmVhY3QncyBgdXNlQUlBdXRvY29tcGxldGUoKWAgaG9vay4gV3JhcHMgYSBoZWFkbGVzc1xuICogYEBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhYCBjb3JlIGFuZCBleHBvc2VzIGl0cyBzdGF0ZSBhcyBSeEpTXG4gKiBvYnNlcnZhYmxlcyBwbHVzIHRoaW4gYWN0aW9uIG1ldGhvZHMuXG4gKlxuICogVGhlIGNvbnRyb2xsZXIgaXMgY29uc3VtZXItbWFuYWdlZCDigJQgdGhlIGNvbnN1bWVyIGNyZWF0ZXMgaXRcbiAqIHdpdGggYG5ld2AsIGhvbGRzIHRoZSByZWZlcmVuY2UsIGFuZCAqKm11c3QgY2FsbCBgZGVzdHJveSgpYCoqIGluIHRoZWlyXG4gKiBvd24gYG5nT25EZXN0cm95YC4gVGhlIFRpZXIgMSBgPGFpLWF1dG9jb21wbGV0ZT5gIGNvbXBvbmVudCBkb2VzIHRoaXNcbiAqIGF1dG9tYXRpY2FsbHk7IFRpZXIgMiBjb25zdW1lcnMgZG8gbm90IGdldCBhdXRvLWNsZWFudXAuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQUlBdXRvY29tcGxldGVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb3JlOiBDb3JlQUlBdXRvY29tcGxldGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmF3U3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8Q29yZVN0YXRlPjtcbiAgLy8gb3B0aW9uc1Bvc2l0aW9uIGlzbid0IHBhcnQgb2YgQ29yZVN0YXRlIChpdCdzIGEgY29yZSBvcHRpb24pLCBzbyB0cmFjayBpdFxuICAvLyBoZXJlIGFuZCBmb2xkIGl0IGludG8gYGRyb3Bkb3duJGAgc28gdGhlIGRyb3Bkb3duIGNhbiByZWFkIHBsYWNlbWVudCBmcm9tXG4gIC8vIHRoZSBjb250cm9sbGVyIOKAlCBjb25maWd1cmVkIG9uY2UsIGtlcHQgaW4gc3luYyB0aHJvdWdoIHVwZGF0ZSgpLlxuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnNQb3NpdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFwiYWJvdmVcIiB8IFwiYmVsb3dcIj4oXCJiZWxvd1wiKTtcbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZUNvcmU6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgaXNEZXN0cm95ZWQgPSBmYWxzZTtcblxuICAvLyA9PT0gUGVyLWZpZWxkIG9ic2VydmFibGVzID09PVxuICAvLyBFYWNoIG9uZSBydW5zIHRocm91Z2ggZGVyaXZlRmllbGQsIHdoaWNoIGJha2VzIGluIGRpc3RpbmN0VW50aWxDaGFuZ2VkXG4gIC8vIGFuZCBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pIHBlciDCpzE5LjQuXG5cbiAgLyoqIFBsYWluLXRleHQgY29udGVudCBvZiB0aGUgZWRpdG9yLiAqL1xuICByZWFkb25seSB0ZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAvKiogQ29tcGxldGVkIChib2xkKSBwYXJhbXMgY3VycmVudGx5IGluIHRoZSBlZGl0b3IuICovXG4gIHJlYWRvbmx5IGNvbXBsZXRlZFBhcmFtcyQ6IE9ic2VydmFibGU8Q29tcGxldGVkUGFyYW1TdGF0ZVtdPjtcbiAgLyoqXG4gICAqIFN1Z2dlc3Rpb25zIHRoZSB1c2VyIGRpc21pc3NlZCB3aXRoIHRoZSBza2lwIGtleSAo4oaSKS4gTm90aGluZyByZW5kZXJzXG4gICAqIHRoZW07IHRoZXkgZXhpc3Qgc28gYSBoYW5kLXJvbGxlZCBzdWJtaXQgY2FuIHBhc3MgdGhlbSB0b1xuICAgKiBgYnVpbGRTdWJtaXRSZXN1bHRgIGFuZCBjYXJyeSB0aGUgc2FtZSBgdGV4dDogXCJza2lwcGVkXCJgIGVudHJpZXMgdGhlXG4gICAqIFNESydzIG93biByZXF1ZXN0cyBkby5cbiAgICovXG4gIHJlYWRvbmx5IHNraXBwZWRQYXJhbXMkOiBPYnNlcnZhYmxlPFNraXBwZWRQYXJhbVN0YXRlW10+O1xuICAvKipcbiAgICogUGFyYW1zIHRoZSBzZXJ2ZXIgaWRlbnRpZmllZCBpbiB0aGUgdXNlcidzIG93biB3b3Jkcy4gQWxyZWFkeSByZW5kZXJlZFxuICAgKiB0aHJvdWdoIGBzZWdtZW50cyRgOyBleHBvc2VkIHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgcmVwb3J0IHRoZSBzYW1lIGBpZGVudGlmaWVkX3BhcmFtc2AgdGhlIFNESydzXG4gICAqIG93biByZXN1bHRzIGNhcnJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpZmllZFBhcmFtcyQ6IE9ic2VydmFibGU8SWRlbnRpZmllZFBhcmFtU3RhdGVbXT47XG4gIC8qKiBBY3Rpb25hYmxlIHN1Z2dlc3Rpb24gcGlsbHMgKGZpcnN0IG9uZSBpcyB0aGUgYWN0aXZlIHBpbGwpLiAqL1xuICByZWFkb25seSBzdWdnZXN0aW9uUGlsbHMkOiBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25bXT47XG4gIC8qKiBUZXh0ICsgY29tcGxldGVkLXBhcmFtIHNlZ21lbnRzIGZvciByZW5kZXJpbmcgdGhlIGVkaXRvciBib2R5LiAqL1xuICByZWFkb25seSBzZWdtZW50cyQ6IE9ic2VydmFibGU8U2VnbWVudFtdPjtcbiAgLyoqIElEIG9mIHRoZSBtb3N0LXJlY2VudGx5LXByb21vdGVkIHBhcmFtIChkcml2ZXMgc2hpbW1lciBhbmltYXRpb24pLiAqL1xuICByZWFkb25seSBuZXdQYXJhbUlkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgLyoqIEFsbCBzdWdnZXN0aW9ucyBmcm9tIHRoZSBzZXJ2ZXIgKGluY2x1ZGluZyBub24tYWN0aW9uYWJsZSBvbmVzKS4gKi9cbiAgcmVhZG9ubHkgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25bXT47XG4gIC8qKlxuICAgKiBXaGF0IHRoZSBwcm9kdWN0IHN0cmlwIHNob3dzOiB0aGUgaXRlbXMgdGhlIGxhdGVzdCBgL3N1Z2dlc3RgIHJlc3BvbnNlXG4gICAqIHJlcG9ydGVkIGFzIG1hdGNoaW5nIHRoZSBxdWVyeSwgb3Ig4oCUIHdpdGggYHByb2R1Y3RzYCBjb25maWd1cmVkIG9uIHRoZVxuICAgKiBjb250cm9sbGVyIOKAlCB0aGUgcmVzdWx0cyBvZiB0aGF0IGN1c3RvbSBzZWFyY2guXG4gICAqL1xuICByZWFkb25seSBwcm9kdWN0cyQ6IE9ic2VydmFibGU8UHJvZHVjdFtdPjtcbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIGdyb3VuZGluZyByZXBvcnQgdGhlIGxhdGVzdCByZXNwb25zZSBjYXJyaWVkLCBvciBudWxsIHdoZW4gaXRcbiAgICogY2FycmllZCBub25lOiB3aGljaCBvZiB0aGUgcXVlcnkncyBjb25zdHJhaW50cyB0aGUgY2F0YWxvZyBhcHBsaWVkLCB3aGljaFxuICAgKiBpdCBkcm9wcGVkLCBhbmQgaG93IG1hbnkgaXRlbXMgKGFuZCB3aGljaCkgdGhlIGFwcGxpZWQgb25lcyBsZWZ0XG4gICAqIHN0YW5kaW5nLiBOdWxsIGlzIFwibm8gbmV3c1wiLCBub3QgYW4gZW1wdHkgY2F0YWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUZpZWxkcyQ6IE9ic2VydmFibGU8Q3VzdG9tRmllbGRzUmVwb3J0IHwgbnVsbD47XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgZHJvcGRvd24gb3B0aW9uIGluZGV4LiAtMSA9IG5vbmUuICovXG4gIHJlYWRvbmx5IGFjdGl2ZUluZGV4JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKipcbiAgICogVUktdmlzaWJsZSBsb2FkaW5nIGZsYWcg4oCUIHN1cHByZXNzZWQgZHVyaW5nIHRoZSBwb3N0LXNlbGVjdCBwcmVzc1xuICAgKiBhbmltYXRpb24gYW5kIGR1cmluZyByZS1lZGl0IChjYWNoZWQgb3B0aW9ucyBzdGF5IHZpc2libGUgdGhlcmUpLiBVc2VcbiAgICogdGhpcyBpbnN0ZWFkIG9mIHRoZSByYXcgY29yZSBzdGF0ZSBmb3IgYW55IGxvYWRpbmctc2tlbGV0b24gYmluZGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBTZXJ2ZXItcmVwb3J0ZWQgXCJxdWVyeSBpcyBjb21wbGV0ZVwiIGZsYWcuICovXG4gIHJlYWRvbmx5IGlzUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogV2hldGhlciB0aGUgZWRpdG9yIGN1cnJlbnRseSBoYXMgZm9jdXMuICovXG4gIHJlYWRvbmx5IGlzRm9jdXNlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgY3VycmVudGx5IGJlIHZpc2libGUuICovXG4gIHJlYWRvbmx5IGlzRHJvcGRvd25PcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGl2ZSAobGVhZGluZykgcGlsbCBzaG91bGQgcmVuZGVyIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpXG4gICAqIHJhdGhlciB0aGFuIHRoZSBkZS1lbXBoYXNpemVkIGBmaXJzdGAgdGllci4gQXV0byB0cmlnZ2VyIOKHkiB0cnVlIG9ubHkgd2hpbGVcbiAgICogYSBkcm9wZG93biBvcHRpb24gaXMgaGlnaGxpZ2h0ZWQ7IG1hbnVhbCDih5IgdHJ1ZSBvbmNlIHRoZSBwaWxsIGlzIHRhcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzQWN0aXZlUGlsbFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFNlcnZlci1zdWdnZXN0ZWQgcGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIGVkaXRvci4gKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAvKiogTGFzdCBmZXRjaCBlcnJvciwgb3IgbnVsbC4gKi9cbiAgcmVhZG9ubHkgZXJyb3IkOiBPYnNlcnZhYmxlPEVycm9yIHwgbnVsbD47XG4gIC8qKiBQYXJhbSBjdXJyZW50bHkgYmVpbmcgcmUtZWRpdGVkLCBvciBudWxsLiAqL1xuICByZWFkb25seSBlZGl0aW5nUGFyYW0kOiBPYnNlcnZhYmxlPENvbXBsZXRlZFBhcmFtU3RhdGUgfCBudWxsPjtcbiAgLyoqIFBsYWluLXRleHQgb2Zmc2V0IHdoZXJlIHRoZSBlZGl0IHJlZ2lvbiBzdGFydHMsIG9yIG51bGwuICovXG4gIHJlYWRvbmx5IGVkaXRpbmdBbmNob3IkOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+O1xuICAvKiogTGl2ZSBjYXJldCBvZmZzZXQgd2l0aGluIHRoZSBlZGl0b3IuICovXG4gIHJlYWRvbmx5IGNhcmV0T2Zmc2V0JDogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPjtcblxuICAvLyA9PT0gQ29tcG9zaXRlIG9ic2VydmFibGVzID09PVxuXG4gIC8qKlxuICAgKiBTbmFwc2hvdCBvZiBldmVyeSBwdWJsaWMgZmllbGQgaW4gb25lIG9iamVjdC4gQ29udmVuaWVudCBmb3JcbiAgICogYCpuZ0lmPVwiY3RybC5zdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiYCB0ZW1wbGF0aW5nIOKAlCBhbGlhc2VzIGFsbCBmaWVsZHNcbiAgICogdW5kZXIgYSBzaW5nbGUgc3Vic2NyaXB0aW9uIGluc3RlYWQgb2YgbXVsdGlwbGUgYHwgYXN5bmNgIHBpcGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGUkOiBPYnNlcnZhYmxlPEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlPjtcblxuICAvKipcbiAgICogQ29tcG9zaXRlIHN0YXRlIGZvciB0aGUgZHJvcGRvd24gdmlldy4gVGllciAyIGNvbnN1bWVycyBzcHJlYWQgdGhpcyBpbnRvXG4gICAqIGA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duPmA7IFRpZXIgMSB1c2VzIHRoZSBzYW1lIHNoYXBlIGludGVybmFsbHkuXG4gICAqL1xuICByZWFkb25seSBkcm9wZG93biQ6IE9ic2VydmFibGU8QUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlPjtcblxuICAvKipcbiAgICogVGhyb3dzIGlmIGludm9rZWQgb3V0c2lkZSBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIEZvciBTU1IgLyBBbmd1bGFyXG4gICAqIFVuaXZlcnNhbCwgZ2F0ZSBjb25zdHJ1Y3Rpb24gd2l0aCBgaXNQbGF0Zm9ybUJyb3dzZXJgLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0czogQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciByZXF1aXJlcyBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIFwiICtcbiAgICAgICAgICBcIkZvciBTU1IgLyBBbmd1bGFyIFVuaXZlcnNhbCwgZ2F0ZSBjb25zdHJ1Y3Rpb24gd2l0aCBpc1BsYXRmb3JtQnJvd3Nlci5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSGVhZGxlc3MgbW9kZSBuZXZlciByZW5kZXJzIHRvIHRoZSBob3N0LCBzbyBhIHRocm93YXdheSBkaXYgaXMgZmluZSDigJRcbiAgICAvLyBpdCdzIHJlcXVpcmVkIGJ5IHRoZSBjb3JlJ3Mgc2lnbmF0dXJlIGZvciBzeW1tZXRyeSB3aXRoIGZ1bGwgbW9kZS5cbiAgICBjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblxuICAgIHRoaXMuY29yZSA9IG5ldyBDb3JlQUlBdXRvY29tcGxldGUoaG9zdCwge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIHJlbmRlck1vZGU6IFwiaGVhZGxlc3NcIixcbiAgICAgIHNvdXJjZTogb3B0cy5zb3VyY2UgPz8gXCJoZWFkbGVzcy1zZGtcIixcbiAgICAgIC8vIEhlYWRsZXNzIG1vZGUgbmV2ZXIgcmVuZGVycyB0aGUgZHJvcGRvd24gRE9NLCBidXQgdGhlIGtleWJvYXJkXG4gICAgICAvLyBjb250cm9sbGVyIHN0aWxsIHJlYWRzIGBvcHRpb25zUG9zaXRpb25gIHRvIGRlY2lkZSB3aGljaCB2ZXJ0aWNhbFxuICAgICAgLy8gYXJyb3cgb3BlbnMgdGhlIGRyb3Bkb3duIGZyb20gdGhlIGlucHV0LlxuICAgICAgb3B0aW9uc1Bvc2l0aW9uOiBvcHRzLm9wdGlvbnNQb3NpdGlvbiA/PyBcImJlbG93XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJhd1N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29yZVN0YXRlPih0aGlzLmNvcmUuZ2V0U3RhdGUoKSk7XG4gICAgLy8gUHVzaCB0aGUgc3RvcmUncyAqY3VycmVudCogc3RhdGUsIG5vdCB0aGUgc25hcHNob3QgdGhlIGxpc3RlbmVyIHdhc1xuICAgIC8vIGhhbmRlZC4gVGhlIGNvcmUgbm90aWZpZXMgbGlzdGVuZXJzIHN5bmNocm9ub3VzbHksIGFuZCBzb21lIGFjdGlvbnNcbiAgICAvLyB0cmlnZ2VyIHJlZW50cmFudCBgc3RvcmUuc2V0YCBjYWxscyAoZS5nLiB0eXBpbmcgYSBub24tbWF0Y2hpbmcgY2hhclxuICAgIC8vIGR1cmluZyByZS1lZGl0IG1ha2VzIHRoZSBjb3JlIHN5bmNocm9ub3VzbHkgZXhpdCByZS1lZGl0IGFuZCBraWNrIG9mZiBhXG4gICAgLy8gZmV0Y2gpLlxuICAgIC8vXG4gICAgLy8gVGhlIGNvcmUncyBzdG9yZSB1c2VkIHRvIGRlbGl2ZXIgc3VjaCBhIG5lc3RlZCBzZXQgaW5saW5lIGFuZCB0aGVuXG4gICAgLy8gcmVzdW1lIHRoZSBvdXRlciBsaXN0ZW5lciBsb29wLCBzbyBhIGxpc3RlbmVyIGNvdWxkIGJlIGhhbmRlZCBhbiBvbGRlclxuICAgIC8vIHN0YXRlIChzdGlsbCBpbiByZS1lZGl0KSAqYWZ0ZXIqIGEgbmV3ZXIgb25lIChyZS1lZGl0IGV4aXRlZCkg4oCUIHdoaWNoXG4gICAgLy8gcmVzdXJyZWN0ZWQgYSBzdGFsZSBgZWRpdGluZ1BhcmFtYCBhbmQgcmV0cmlnZ2VyZWQgdGhlIGVkaXRvcidzIHJlLWVkaXRcbiAgICAvLyBjYXJldC1wYXJrLCB5YW5raW5nIHRoZSBjYXJldCBiYWNrIHRvIHdoZXJlIHJlLWVkaXRpbmcgc3RhcnRlZC4gVGhlXG4gICAgLy8gc3RvcmUgbm93IHF1ZXVlcyBub3RpZmljYXRpb25zIGFuZCBkcmFpbnMgdGhlbSBpbiBvcmRlciwgc28gdGhhdFxuICAgIC8vIG91dC1vZi1vcmRlciBkZWxpdmVyeSBjYW4gbm8gbG9uZ2VyIGhhcHBlbiBhdCB0aGUgc291cmNlLlxuICAgIC8vXG4gICAgLy8gUmVhZGluZyBgZ2V0U3RhdGUoKWAgYXQgZW1pc3Npb24gdGltZSBpcyBrZXB0IGFzIGJlbHQtYW5kLWJyYWNlczogaXRcbiAgICAvLyBjb3N0cyBub3RoaW5nIChkaXN0aW5jdFVudGlsQ2hhbmdlZCBkb3duc3RyZWFtIGRyb3BzIHRoZSBkdXBsaWNhdGVcbiAgICAvLyBlbWlzc2lvbnMpIGFuZCBrZWVwcyB0aGlzIGJyaWRnZSBjb3JyZWN0IGZvciBhbnkgZnV0dXJlIGNvbnN1bWVyIHRoYXRcbiAgICAvLyBlbWl0cyBtaWQtY2FzY2FkZS4gUmVhY3QgbmVlZHMgbmVpdGhlciwgc2luY2UgaXQgYmF0Y2hlcyByZW5kZXJzIGFuZFxuICAgIC8vIGdhdGVzIGl0cyBjYXJldCBlZmZlY3RzIG9uIGRlcGVuZGVuY2llcy5cbiAgICB0aGlzLnVuc3Vic2NyaWJlQ29yZSA9IHRoaXMuY29yZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB0aGlzLnJhd1N0YXRlJC5uZXh0KHRoaXMuY29yZS5nZXRTdGF0ZSgpKTtcbiAgICB9KTtcblxuICAgIC8vID09PSBQZXItZmllbGQgb2JzZXJ2YWJsZXMgPT09XG4gICAgLy8gQXJyYXktdmFsdWVkIGZpZWxkcyB1c2Ugc2hhbGxvdyBlcXVhbGl0eS4gVGhlIHZhbmlsbGEgc3RvcmUgc3ByZWFkcyBvblxuICAgIC8vIGV2ZXJ5IHdyaXRlIChgc3RvcmUuc2V0KHsgY29tcGxldGVkUGFyYW1zOiBbLi4uXSB9KWApLCBzbyByZWZlcmVuY2VcbiAgICAvLyBlcXVhbGl0eSB3b3VsZCByZS1maXJlIGRvd25zdHJlYW0gc3Vic2NyaWJlcnMgb24gZXZlcnkgc3RhdGUgdGljayBldmVuXG4gICAgLy8gd2hlbiB0aGUgYXJyYXkncyBjb250ZW50cyBhcmUgdW5jaGFuZ2VkLiBUaGUgb3RoZXIgZmllbGRzIGFyZVxuICAgIC8vIHByaW1pdGl2ZXMgb3Igc3RhYmxlIG9iamVjdCByZWZlcmVuY2VzLCBzbyBkZWZhdWx0IGlkZW50aXR5IGVxdWFsaXR5XG4gICAgLy8gd29ya3MgZmluZS5cbiAgICB0aGlzLnRleHQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnRleHQpO1xuICAgIHRoaXMuY29tcGxldGVkUGFyYW1zJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5jb21wbGV0ZWRQYXJhbXMsIGFyckVxKTtcbiAgICB0aGlzLnNraXBwZWRQYXJhbXMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnNraXBwZWRQYXJhbXMsIGFyckVxKTtcbiAgICB0aGlzLmlkZW50aWZpZWRQYXJhbXMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmlkZW50aWZpZWRQYXJhbXMsIGFyckVxKTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25QaWxscyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zLCBhcnJFcSk7XG4gICAgdGhpcy5zZWdtZW50cyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuc2VnbWVudHMsIGFyckVxKTtcbiAgICB0aGlzLm5ld1BhcmFtSWQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLm5ld1BhcmFtSWQpO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnN1Z2dlc3Rpb25zLCBhcnJFcSk7XG4gICAgdGhpcy5wcm9kdWN0cyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMucHJvZHVjdHMsIGFyckVxKTtcbiAgICB0aGlzLmN1c3RvbUZpZWxkcyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuY3VzdG9tRmllbGRzKTtcbiAgICB0aGlzLmFjdGl2ZUluZGV4JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5hY3RpdmVEcm9wZG93bkluZGV4KTtcbiAgICB0aGlzLmlzTG9hZGluZyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgY29tcHV0ZVVpTG9hZGluZyk7XG4gICAgdGhpcy5pc1JlYWR5JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pc1JlYWR5KTtcbiAgICB0aGlzLmlzRm9jdXNlZCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaXNGb2N1c2VkKTtcbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pc0Ryb3Bkb3duT3Blbik7XG4gICAgdGhpcy5pc0FjdGl2ZVBpbGxTZWxlY3RlZCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaXNBY3RpdmVQaWxsU2VsZWN0ZWQpO1xuICAgIHRoaXMucGxhY2Vob2xkZXJUZXh0JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5wbGFjZWhvbGRlclRleHQpO1xuICAgIHRoaXMuZXJyb3IkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmVycm9yKTtcbiAgICB0aGlzLmVkaXRpbmdQYXJhbSQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuZWRpdGluZ1BhcmFtKTtcbiAgICB0aGlzLmVkaXRpbmdBbmNob3IkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmVkaXRpbmdBbmNob3IpO1xuICAgIHRoaXMuY2FyZXRPZmZzZXQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmNhcmV0T2Zmc2V0KTtcblxuICAgIC8vID09PSBDb21wb3NpdGUgb2JzZXJ2YWJsZXMgPT09XG4gICAgLy8gUHJvamVjdCBkaXJlY3RseSBvZmYgYHJhd1N0YXRlJGAgd2l0aCBhIHNpbmdsZSBtYXAoKSBzbyBlYWNoIHN0b3JlXG4gICAgLy8gdGljayBwcm9kdWNlcyBleGFjdGx5IE9ORSBjb2hlcmVudCBzdGF0ZSQgZW1pc3Npb24uIFVzaW5nXG4gICAgLy8gYGNvbWJpbmVMYXRlc3RgIG92ZXIgdGhlIHBlci1maWVsZCBvYnNlcnZhYmxlcyBoZXJlIHdvdWxkIGZpcmUgb25lXG4gICAgLy8gZW1pc3Npb24gcGVyIGlubmVyLXNvdXJjZSB0aWNrICh1cCB0byBOIHBlciBzdG9yZSB1cGRhdGUpLCBhbmQgdGhlXG4gICAgLy8gZWRpdG9yLWhvc3QgZGlyZWN0aXZlJ3MgcG9zdC1wcm9tb3RlIHJlZm9jdXMgd291bGQgcnVuIGFnYWluc3QgYW5cbiAgICAvLyBpbnRlcm1lZGlhdGUgc3RhdGUgd2hlcmUgYG5ld1BhcmFtSWRgIHdhcyBzZXQgYnV0IGBzZWdtZW50c2AgL1xuICAgIC8vIGBjYXJldE9mZnNldGAgc3RpbGwgaGVsZCB0aGVpciBvbGQgdmFsdWVzIOKAlCBsZWF2aW5nIHRoZSBjYXJldCBzdHVja1xuICAgIC8vIGF0IHRoZSBwcmUtY2xpY2sgcG9zaXRpb24uXG4gICAgdGhpcy5zdGF0ZSQgPSB0aGlzLnJhd1N0YXRlJC5waXBlKFxuICAgICAgbWFwKGNvbXB1dGVTdGF0ZSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLm9wdGlvbnNQb3NpdGlvbiQubmV4dChvcHRzLm9wdGlvbnNQb3NpdGlvbiA/PyBcImJlbG93XCIpO1xuICAgIHRoaXMuZHJvcGRvd24kID0gY29tYmluZUxhdGVzdChbdGhpcy5yYXdTdGF0ZSQsIHRoaXMub3B0aW9uc1Bvc2l0aW9uJF0pLnBpcGUoXG4gICAgICBtYXAoKFtzLCBvcHRpb25zUG9zaXRpb25dKSA9PiBjb21wdXRlRHJvcGRvd24ocywgb3B0aW9uc1Bvc2l0aW9uKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICAvLyA9PT0gUmVhZC1vbmx5IGFjY2Vzc29ycyA9PT1cblxuICAvKiogU3RhYmxlIEFSSUEgbGlzdGJveCBJRCBmb3IgdGhlIGRyb3Bkb3duLiBQYXNzIHRvIGA8dGV4dGFyZWEgYXJpYS1jb250cm9scz1cIi4uLlwiPmAuICovXG4gIGdldCBsaXN0Ym94SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmxpc3Rib3hJZDtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIGBkZXN0cm95KClgIGhhcyBiZWVuIGNhbGxlZC4gQWZ0ZXIgZGVzdHJ1Y3Rpb24gYWxsIGFjdGlvbiBtZXRob2RzIG5vLW9wLiAqL1xuICBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVzdHJveWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bmNocm9ub3VzIHNuYXBzaG90IG9mIHRoZSBjb250cm9sbGVyJ3MgY3VycmVudCBwdWJsaWMgc3RhdGUuIE1pcnJvcnNcbiAgICogdGhlIGxhdGVzdCBlbWlzc2lvbiBvZiBgc3RhdGUkYC4gVXNlZnVsIGluIGNhbGxiYWNrcyB3aGVyZSB5b3UgY2FuJ3RcbiAgICogYHN1YnNjcmliZWAgKGUuZy4gaW5zaWRlIGFuIGV2ZW50IGhhbmRsZXIpLlxuICAgKi9cbiAgZ2V0U3RhdGUoKTogQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUge1xuICAgIHJldHVybiBjb21wdXRlU3RhdGUodGhpcy5yYXdTdGF0ZSQudmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdHJ1Y3R1cmVkIHF1ZXJ5IGFzIHRoZSBTREsgdW5kZXJzdGFuZHMgaXQgcmlnaHQgbm93IOKAlCB0aGUgc2FtZVxuICAgKiBvYmplY3QgYG9uUmVzdWx0YCBkZWxpdmVycyBhZnRlciBlYWNoIHJlc3BvbnNlIGFuZCBgb25TdWJtaXRgIGRlbGl2ZXJzXG4gICAqIG9uIHN1Ym1pdC4gUmVhZCBpdCBvbiBkZW1hbmQgZnJvbSBhIHBsYWNlIHRoYXQgaGFzIG5vIGV2ZW50IGhhbmR5IChhXG4gICAqIGN1c3RvbSBzdWJtaXQgYnV0dG9uLCBhIFwic2F2ZSBkcmFmdFwiIGFjdGlvbikuXG4gICAqL1xuICBnZXRSZXN1bHQoKTogQXV0b2NvbXBsZXRlUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmdldFJlc3VsdCgpO1xuICB9XG5cbiAgLy8gPT09IEFjdGlvbiBtZXRob2RzIChwYXNzLXRocm91Z2ggdG8gdGhlIGNvcmUpID09PVxuICAvL1xuICAvLyBFdmVyeSBhY3Rpb24gbWV0aG9kIGJlZ2lucyB3aXRoIGFuIGBpc0Rlc3Ryb3llZGAgZ3VhcmQgc28gdGhhdCBjYWxsZXJzXG4gIC8vIHdobyBob2xkIGEgc3RhbGUgcmVmZXJlbmNlIGFmdGVyIGBkZXN0cm95KClgIGRvbid0IGFjY2lkZW50YWxseSB0cmlnZ2VyXG4gIC8vIHdvcmsgb24gYSB0b3JuLWRvd24gY29yZS4gVGhlIHZhbmlsbGEgY29yZSBkb2VzIG5vdCBnYXRlIGl0cyBvd24gbWV0aG9kc1xuICAvLyBwb3N0LWRpc3Bvc2Ug4oCUIGByZXNldCgpYCwgYGhhbmRsZVRleHRDaGFuZ2UoKWAsIGFuZCBmcmllbmRzIHdvdWxkIHN0aWxsXG4gIC8vIHNjaGVkdWxlIGZldGNoZXMgb3IgZmlyZSBIVFRQIHJlcXVlc3RzIGFnYWluc3QgYW4gYWJvcnRlZCBjb250cm9sbGVyLFxuICAvLyBhbmQgdGhlIHJlc3BvbnNlcyB3b3VsZCBoYXZlIG5vd2hlcmUgdG8gc3VyZmFjZSAocmF3U3RhdGUkIGlzIGFscmVhZHlcbiAgLy8gY29tcGxldGUpLiBUaGUgZ3VhcmQgbWFrZXMgdGhlIEpTRG9jLXByb21pc2VkIFwibm8tb3Agc2lsZW50bHlcIlxuICAvLyBzZW1hbnRpY3MgYWN0dWFsbHkgdHJ1ZS5cblxuICAvKiogQ2xlYXIgYWxsIHN0YXRlLCByb3RhdGUgYHNlc3Npb25faWRgLCBhbmQgcmUtZmV0Y2guIENhbGwgYWZ0ZXIgc3VibWl0LiAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5yZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZHMgYSBzdWJtaXQgaW4gdGVsZW1ldHJ5LiBFbnRlciBpcyByZWNvcmRlZCBieSB0aGUgU0RLOyBjYWxsIHRoaXNcbiAgICogZnJvbSBhIHN1Ym1pdCBidXR0b24geW91IHJlbmRlciwgc28gZWFjaCBzdWJtaXQgaXMgY291bnRlZCBvbmNlLlxuICAgKi9cbiAgcmVjb3JkU3VibWl0KHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUucmVjb3JkU3VibWl0KHJlc3VsdCk7XG4gIH1cblxuICAvKiogUGljayBhIGRyb3Bkb3duIG9wdGlvbiAob3IgcmVwbGFjZSB0aGUgcmUtZWRpdGVkIHBhcmFtIGlmIGluIHJlLWVkaXQgbW9kZSkuICovXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IFN1Z2dlc3Rpb25PcHRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbm5vdW5jZSBhIHByb2R1Y3Qgc2VsZWN0aW9uIOKAlCBmaXJlcyB0aGUgYG9uUHJvZHVjdFNlbGVjdGAgY2FsbGJhY2sgdGhlXG4gICAqIGNvbnRyb2xsZXIgd2FzIGNvbnN0cnVjdGVkIHdpdGguIGA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duPmAgY2FsbHMgdGhpc1xuICAgKiBmb3IgeW91OyBjb25zdW1lcnMgcmVuZGVyaW5nIHRoZWlyIG93biBzdHJpcCBjYWxsIGl0IHRoZW1zZWx2ZXMuXG4gICAqXG4gICAqIEVtaXR0aW5nIGlzIHRoZSB3aG9sZSBiZWhhdmlvdXI6IHRoZSBTREsgZGVsaWJlcmF0ZWx5IGRvZXMgbm90IG5hdmlnYXRlIHRvXG4gICAqIGBwcm9kdWN0LnVybGAsIGJlY2F1c2Ugb25seSB0aGUgaW50ZWdyYXRpb24ga25vd3Mgd2hldGhlciBhIHNlbGVjdGlvblxuICAgKiBtZWFucyBcIm9wZW4gdGhlIFBEUFwiLCBcImFkZCB0byBjYXJ0XCIsIG9yIFwiZmlsbCB0aGUgaW5wdXRcIi5cbiAgICovXG4gIHNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNlbGVjdFByb2R1Y3QocHJvZHVjdCk7XG4gIH1cblxuICAvKiogUHJvbW90ZSB0aGUgcGlsbCBhdCBgaW5kZXhgIHRvIGFjdGl2ZSAoZnJvbnQgb2YgdGhlIGxpc3QpLiAqL1xuICBzZXRBY3RpdmVQaWxsKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zZXRBY3RpdmVQaWxsKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTa2lwIHRoZSBhY3RpdmUgcGlsbCDigJQgc2FtZSBhY3Rpb24gYXMgcHJlc3Npbmcg4oaSIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0LlxuICAgKiBUaGUgZHJvcGRvd24ncyBza2lwIGJ1dHRvbiBjYWxscyB0aGlzOyBjb25zdW1lcnMgcmVuZGVyaW5nIHRoZWlyIG93biBza2lwXG4gICAqIGFmZm9yZGFuY2UgY2FsbCBpdCBkaXJlY3RseS4gVGhlIHNraXBwZWQgc3VnZ2VzdGlvbiBqb2lucyBgc2tpcHBlZFBhcmFtcyRgLlxuICAgKi9cbiAgc2tpcEFjdGl2ZVBpbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2tpcEFjdGl2ZVBpbGwoKTtcbiAgfVxuXG4gIC8qKiBEcm9wIHRoZSBsYXN0IGNvbXBsZXRlZCBwYXJhbSdzIFwiY29tcGxldGVkXCIgc3RhdHVzLiBUZXh0IHN0YXlzIGFzIHBsYWluIHRleHQuICovXG4gIHJlbW92ZUxhc3RQYXJhbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5yZW1vdmVMYXN0UGFyYW0oKTtcbiAgfVxuXG4gIC8qKiBDbGVhciB0aGUgc2hpbW1lciBhbmltYXRpb24gc3RhdGUgZm9yIHRoZSBtb3N0LXJlY2VudGx5LWFkZGVkIHBhcmFtLiAqL1xuICBjbGVhck5ld1BhcmFtSWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuY2xlYXJOZXdQYXJhbUlkKCk7XG4gIH1cblxuICAvKiogQ29udHJvbGxlZC1tb2RlIHNldHRlciBmb3IgZWRpdG9yIHRleHQuICovXG4gIHNldFZhbHVlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldFZhbHVlKHRleHQpO1xuICB9XG5cbiAgLyoqIENvbnRyb2xsZWQtbW9kZSBzZXR0ZXIgZm9yIGNvbXBsZXRlZCBwYXJhbXMuICovXG4gIHNldENvbXBsZXRlZFBhcmFtcyhwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldENvbXBsZXRlZFBhcmFtcyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqIEZvcndhcmQgcGxhaW4tdGV4dCBpbnB1dCBmcm9tIHRoZSBjb25zdW1lcidzIGA8dGV4dGFyZWE+YCB0byB0aGUgY29yZS4gKi9cbiAgaGFuZGxlVGV4dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuaGFuZGxlVGV4dENoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBrZXlib2FyZCBldmVudHMgZnJvbSB0aGUgY29uc3VtZXIncyBgPHRleHRhcmVhPmAgdG8gdGhlIGNvcmUuICovXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5oYW5kbGVLZXlEb3duKGV2ZW50KTtcbiAgfVxuXG4gIC8qKiBOb3RpZnkgdGhlIGNvcmUgb2YgZm9jdXMgc3RhdGUuICovXG4gIHNldEZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldEZvY3VzZWQoZm9jdXNlZCk7XG4gIH1cblxuICAvKiogRW50ZXIgcmUtZWRpdCBtb2RlIGZvciB0aGUgYm9sZCBwYXJhbSB3aXRoIHRoZSBnaXZlbiBpZC4gKi9cbiAgc3RhcnRFZGl0aW5nUGFyYW0ocGFyYW1JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc3RhcnRFZGl0aW5nUGFyYW0ocGFyYW1JZCk7XG4gIH1cblxuICAvKiogRXhpdCByZS1lZGl0IG1vZGUgd2l0aG91dCBjaGFuZ2luZyB0aGUgYm9sZCBwYXJhbS4gKi9cbiAgZXhpdEVkaXRNb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmV4aXRFZGl0TW9kZSgpO1xuICB9XG5cbiAgLyoqIEZvcndhcmQgcG9zdC1pbnB1dCBjYXJldCBwb3NpdGlvbiAoZXh0ZW5kcyB0aGUgZWRpdCB0YWlsKS4gKi9cbiAgaGFuZGxlQ2FyZXRBZnRlcklucHV0KG9mZnNldDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmhhbmRsZUNhcmV0QWZ0ZXJJbnB1dChvZmZzZXQpO1xuICB9XG5cbiAgLyoqIEZvcndhcmQgc2VsZWN0aW9uLW9ubHkgY2FyZXQgbW92ZXMgKG1heSBleGl0IHJlLWVkaXQpLiAqL1xuICBoYW5kbGVDYXJldE1vdmUob2Zmc2V0OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuaGFuZGxlQ2FyZXRNb3ZlKG9mZnNldCk7XG4gIH1cblxuICAvKiogUmVwbGFjZSB0aGUgYm9sZCBwYXJhbSBiZWluZyByZS1lZGl0ZWQuIFJldHVybnMgdHJ1ZSB3aGVuIGFwcGxpZWQuICovXG4gIHJlcGxhY2VFZGl0aW5nUmFuZ2UocmVwbGFjZW1lbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuY29yZS5yZXBsYWNlRWRpdGluZ1JhbmdlKHJlcGxhY2VtZW50KTtcbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGhpZ2hsaWdodGVkIG9wdGlvbiBpbmRleCAodHlwaWNhbGx5IGRyaXZlbiBieSBob3ZlcikuICovXG4gIHNldEFjdGl2ZURyb3Bkb3duSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldEFjdGl2ZURyb3Bkb3duSW5kZXgoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwb2ludGVyIGxlZnQgb3B0aW9uIGBpbmRleGA6IGNsZWFyIHRoZSBoaWdobGlnaHQgaWYgaXQgaXMgc3RpbGwgb24gaXQsXG4gICAqIHNvIEVudGVyIGFmdGVyd2FyZHMgc3VibWl0cyBpbnN0ZWFkIG9mIHBpY2tpbmcgYW4gb3B0aW9uIHRoZSBwb2ludGVyIGlzIG5vXG4gICAqIGxvbmdlciBvbi4gQSBoaWdobGlnaHQgdGhlIGtleWJvYXJkIGhhcyBzaW5jZSBtb3ZlZCBpcyBsZWZ0IGFsb25lLlxuICAgKi9cbiAgY2xlYXJIaWdobGlnaHQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmNsZWFySGlnaGxpZ2h0KGluZGV4KTtcbiAgfVxuXG4gIC8qKiBQYWdlIHRoZSBkYXRlcGlja2VyIGJhY2sgb25lIG1vbnRoLiBOby1vcCB1bmxlc3MgYSBkYXRlIHBpbGwgaXMgYWN0aXZlLiAqL1xuICBzaG93UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zaG93UHJldmlvdXNNb250aCgpO1xuICB9XG5cbiAgLyoqIFBhZ2UgdGhlIGRhdGVwaWNrZXIgZm9yd2FyZCBvbmUgbW9udGguIE5vLW9wIHVubGVzcyBhIGRhdGUgcGlsbCBpcyBhY3RpdmUuICovXG4gIHNob3dOZXh0TW9udGgoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2hvd05leHRNb250aCgpO1xuICB9XG5cbiAgLy8gPT09IExpZmVjeWNsZSA9PT1cblxuICAvKipcbiAgICogQXBwbHkgcnVudGltZSBjaGFuZ2VzIHRvIGEgc3Vic2V0IG9mIG9wdGlvbnMuIEV2ZW50IGNhbGxiYWNrc1xuICAgKiAoYG9uU3VibWl0YCwgYG9uUmVzdWx0YCwgYG9uRXJyb3JgLCBldGMuKSBjYW5ub3QgYmUgc3dhcHBlZCB0aGlzIHdheSDigJQgdGhleSBhcmVcbiAgICogcmVnaXN0ZXJlZCBvbmNlIGF0IGNvbnN0cnVjdGlvbiAobWF0Y2hlcyB0aGUgUmVhY3QgaG9vaydzIGRlc2lnbikuIEZvclxuICAgKiBkeW5hbWljIGV2ZW50IHJlYWN0aXZpdHksIHN1YnNjcmliZSB0byB0aGUgY29ycmVzcG9uZGluZyBvYnNlcnZhYmxlXG4gICAqIChlLmcuIGB0ZXh0JGAgaW5zdGVhZCBvZiBgb25DaGFuZ2VgKS5cbiAgICovXG4gIHVwZGF0ZShvcHRzOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS51cGRhdGUob3B0cyk7XG4gICAgaWYgKG9wdHMub3B0aW9uc1Bvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3B0aW9uc1Bvc2l0aW9uJC5uZXh0KG9wdHMub3B0aW9uc1Bvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVsZWFzZSBhbGwgcmVzb3VyY2VzIOKAlCB1bnN1YnNjcmliZXMgZnJvbSB0aGUgY29yZSwgZGVzdHJveXMgdGhlIGNvcmUsXG4gICAqIGFuZCBjb21wbGV0ZXMgdGhlIGludGVybmFsIHN0YXRlIHN1YmplY3QuIFNhZmUgdG8gY2FsbCBtdWx0aXBsZSB0aW1lcy5cbiAgICogQWZ0ZXIgZGVzdHJ1Y3Rpb24sIGFjdGlvbiBtZXRob2RzIG5vLW9wIHNpbGVudGx5LlxuICAgKi9cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIHRoaXMudW5zdWJzY3JpYmVDb3JlKCk7XG4gICAgdGhpcy5jb3JlLmRlc3Ryb3koKTtcbiAgICB0aGlzLnJhd1N0YXRlJC5jb21wbGV0ZSgpO1xuICB9XG59XG5cbi8vID09PT09IFB1cmUgaGVscGVycyDigJQgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBzdXJmYWNlID09PT09XG5cbi8qKlxuICogU2hhbGxvdyBhcnJheSBlcXVhbGl0eS4gVGhlIHZhbmlsbGEgc3RvcmUgcmVhc3NpZ25zIGFycmF5IGZpZWxkcyBvbiBldmVyeVxuICogd3JpdGUgKGBzdG9yZS5zZXQoeyBjb21wbGV0ZWRQYXJhbXM6IFsuLi5wcmV2LCB4XSB9KWApLCBzbyByZWZlcmVuY2VcbiAqIGVxdWFsaXR5IGFsb25lIHdvdWxkIHJlLWVtaXQgZG93bnN0cmVhbSBldmVuIHdoZW4gdGhlIGNvbnRlbnRzIGFyZVxuICogaWRlbnRpY2FsLiBVc2VkIGZvciBgY29tcGxldGVkUGFyYW1zJGAsIGBzdWdnZXN0aW9ucyRgLCBgc3VnZ2VzdGlvblBpbGxzJGAsXG4gKiBhbmQgYHNlZ21lbnRzJGAuXG4gKi9cbmZ1bmN0aW9uIGFyckVxPFQ+KGE6IHJlYWRvbmx5IFRbXSwgYjogcmVhZG9ubHkgVFtdKTogYm9vbGVhbiB7XG4gIGlmIChhID09PSBiKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKiogVUktdmlzaWJsZSBsb2FkaW5nIOKAlCB0aGUgY29yZSdzIGBkcm9wZG93bkxvYWRpbmdgIChzZWUgaXRzIGRvY3MpLiAqL1xuZnVuY3Rpb24gY29tcHV0ZVVpTG9hZGluZyhzOiBDb3JlU3RhdGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIHMuZHJvcGRvd25Mb2FkaW5nO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlU3RhdGUoczogQ29yZVN0YXRlKTogQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUge1xuICByZXR1cm4ge1xuICAgIHRleHQ6IHMudGV4dCxcbiAgICBjb21wbGV0ZWRQYXJhbXM6IHMuY29tcGxldGVkUGFyYW1zLFxuICAgIHNraXBwZWRQYXJhbXM6IHMuc2tpcHBlZFBhcmFtcyxcbiAgICBpZGVudGlmaWVkUGFyYW1zOiBzLmlkZW50aWZpZWRQYXJhbXMsXG4gICAgc3VnZ2VzdGlvblBpbGxzOiBzLmFjdGlvbmFibGVTdWdnZXN0aW9ucyxcbiAgICBzZWdtZW50czogcy5zZWdtZW50cyxcbiAgICBuZXdQYXJhbUlkOiBzLm5ld1BhcmFtSWQsXG4gICAgc3VnZ2VzdGlvbnM6IHMuc3VnZ2VzdGlvbnMsXG4gICAgcHJvZHVjdHM6IHMucHJvZHVjdHMsXG4gICAgY3VzdG9tRmllbGRzOiBzLmN1c3RvbUZpZWxkcyxcbiAgICBhY3RpdmVJbmRleDogcy5hY3RpdmVEcm9wZG93bkluZGV4LFxuICAgIGlzTG9hZGluZzogY29tcHV0ZVVpTG9hZGluZyhzKSxcbiAgICBpc1JlYWR5OiBzLmlzUmVhZHksXG4gICAgaXNGb2N1c2VkOiBzLmlzRm9jdXNlZCxcbiAgICBpc0Ryb3Bkb3duT3Blbjogcy5pc0Ryb3Bkb3duT3BlbixcbiAgICBwbGFjZWhvbGRlclRleHQ6IHMucGxhY2Vob2xkZXJUZXh0LFxuICAgIGVycm9yOiBzLmVycm9yLFxuICAgIGVkaXRpbmdQYXJhbTogcy5lZGl0aW5nUGFyYW0sXG4gICAgZWRpdGluZ0lkZW50aWZpZWQ6IHMuZWRpdGluZ0lkZW50aWZpZWQsXG4gICAgZWRpdGluZ0FuY2hvcjogcy5lZGl0aW5nQW5jaG9yLFxuICAgIGNhcmV0T2Zmc2V0OiBzLmNhcmV0T2Zmc2V0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb21wdXRlRHJvcGRvd24oXG4gIHM6IENvcmVTdGF0ZSxcbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCIsXG4pOiBBSUF1dG9jb21wbGV0ZURyb3Bkb3duU3RhdGUge1xuICBjb25zdCBlZGl0aW5nUGFyYW0gPSBzLmVkaXRpbmdQYXJhbTtcbiAgY29uc3QgZWRpdGluZ0lkZW50aWZpZWQgPSBzLmVkaXRpbmdJZGVudGlmaWVkO1xuICBjb25zdCBkYXRlU2VsZWN0aW9uID0gZGF0ZVNlbGVjdGlvbkZvcihzKTtcbiAgY29uc3QgYWN0aXZlU3VnZ2VzdGlvbiA9IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zWzBdO1xuICBjb25zdCBkcm9wZG93blBpbGw6IFN1Z2dlc3Rpb24gfCBudWxsID0gZWRpdGluZ1BhcmFtXG4gICAgPyB7XG4gICAgICAgIHR5cGU6IGVkaXRpbmdQYXJhbS5zdWdnZXN0aW9uVHlwZSxcbiAgICAgICAgdGV4dDogZWRpdGluZ1BhcmFtLnN1Z2dlc3Rpb25QbGFjZWhvbGRlcixcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG9wdGlvbnM6IGVkaXRpbmdQYXJhbS5vcHRpb25zLFxuICAgICAgfVxuICAgIDogZWRpdGluZ0lkZW50aWZpZWRcbiAgICAgID8gLy8gQW5zd2VyaW5nIGEgc3BhbiB0aGUgdXNlciB3cm90ZSB0aGVtc2VsdmVzOiB0aGUgcGlsbCBuYW1lcyB0aGVcbiAgICAgICAgLy8gcGFyYW1ldGVyIHRoZSBzZXJ2ZXIgbWF0Y2hlZCBpdCB0bywgc28gdGhlIGNhbGVuZGFyIGlzbid0IHVubGFiZWxsZWQuXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBlZGl0aW5nSWRlbnRpZmllZC50eXBlLFxuICAgICAgICAgIHRleHQ6IGlkZW50aWZpZWRQYXJhbUxhYmVsKGVkaXRpbmdJZGVudGlmaWVkLnR5cGUpLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIGNvbnN0IGRyb3Bkb3duQWN0aXZlUGlsbCA9IHMuZHJvcGRvd25TdWdnZXN0aW9uID8/IGRyb3Bkb3duUGlsbCA/PyBhY3RpdmVTdWdnZXN0aW9uO1xuICBjb25zdCBkcm9wZG93blBpbGxzID0gZHJvcGRvd25QaWxsID8gW2Ryb3Bkb3duUGlsbF0gOiBzLmFjdGlvbmFibGVTdWdnZXN0aW9ucztcbiAgcmV0dXJuIHtcbiAgICBzdWdnZXN0aW9uczogZHJvcGRvd25BY3RpdmVQaWxsID8gW3sgLi4uZHJvcGRvd25BY3RpdmVQaWxsLCBvcHRpb25zOiBzLmRyb3Bkb3duT3B0aW9ucyB9XSA6IFtdLFxuICAgIGFjdGl2ZUluZGV4OiBzLmFjdGl2ZURyb3Bkb3duSW5kZXgsXG4gICAgaXNPcGVuOiBzLmlzRHJvcGRvd25PcGVuLFxuICAgIHBpbGxzOiBkcm9wZG93blBpbGxzLFxuICAgIGlzQWN0aXZlUGlsbFNlbGVjdGVkOiBzLmlzQWN0aXZlUGlsbFNlbGVjdGVkLFxuICAgIGlzTG9hZGluZzogY29tcHV0ZVVpTG9hZGluZyhzKSxcbiAgICBza2VsZXRvbkV4aXRpbmc6IHMuc2tlbGV0b25FeGl0aW5nLFxuICAgIGlzSW5wdXRFbXB0eTogcy50ZXh0LnRyaW0oKS5sZW5ndGggPT09IDAsXG4gICAgcHJvZHVjdHM6IHMucHJvZHVjdHMsXG4gICAgaXNFZGl0aW5nOiBCb29sZWFuKGVkaXRpbmdQYXJhbSkgfHwgQm9vbGVhbihlZGl0aW5nSWRlbnRpZmllZCksXG4gICAgaW5TZWxlY3Rpb25BbmltYXRpb246IHMuaW5TZWxlY3Rpb25BbmltYXRpb24sXG4gICAgLy8gRGF0ZXBpY2tlci4gYHMuZmlsdGVyZWRPcHRpb25zYCBhYm92ZSBhbHJlYWR5IGNhcnJpZXMgdGhlIHZpc2libGVcbiAgICAvLyBtb250aCdzIGNlbGxzIHJhdGhlciB0aGFuIHRoZSBzdWdnZXN0aW9uJ3Mgb3duIG9wdGlvbnMgd2hlbiB0aGlzIGlzXG4gICAgLy8gXCJkYXRlXCIg4oCUIHRoZSBjb3JlIHN3YXBwZWQgdGhlbSBpbiBpdHMgZGVyaXZlIGxheWVyLCBzbyB0aGUgZHJvcGRvd24gb25seVxuICAgIC8vIGhhcyB0byBrbm93IHdoaWNoIGJvZHkgdG8gZHJhdy5cbiAgICBmb3JtYXRUeXBlOiBzLmFjdGl2ZUZvcm1hdFR5cGUsXG4gICAgZGF0ZVZpZXc6IHMuZGF0ZVZpZXcsXG4gICAgc2VsZWN0ZWREYXRlSXNvOiBkYXRlU2VsZWN0aW9uLnNlbGVjdGVkSXNvLFxuICAgIHNlbGVjdGVkRGF0ZVJhbmdlOiBkYXRlU2VsZWN0aW9uLnNlbGVjdGVkUmFuZ2UsXG4gICAgZGF0ZVJhbmdlU3RhcnQ6IGRhdGVTZWxlY3Rpb24ucmFuZ2VTdGFydCxcbiAgICBvcHRpb25zUG9zaXRpb24sXG4gIH07XG59XG4iXX0=
|
|
422
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGNBQWMsSUFBSSxrQkFBa0IsRUFHcEMsZ0JBQWdCLEVBRWhCLG9CQUFvQixHQU1yQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBbUIsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQW1HbkM7OztPQUdHO0lBQ0gsWUFBWSxPQUF3QyxFQUFFO1FBcEd0RCw0RUFBNEU7UUFDNUUsNEVBQTRFO1FBQzVFLG1FQUFtRTtRQUNsRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFFNUUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFnRzFCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkRBQTJEO2dCQUN6RCx3RUFBd0UsQ0FDM0UsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLHFFQUFxRTtRQUNyRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsR0FBRyxJQUFJO1lBQ1AsVUFBVSxFQUFFLFVBQVU7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztZQUNyQyxpRUFBaUU7WUFDakUsb0VBQW9FO1lBQ3BFLDJDQUEyQztZQUMzQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPO1NBQ2pELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxVQUFVO1FBQ1YsRUFBRTtRQUNGLHFFQUFxRTtRQUNyRSx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLDBFQUEwRTtRQUMxRSxzRUFBc0U7UUFDdEUsbUVBQW1FO1FBQ25FLDREQUE0RDtRQUM1RCxFQUFFO1FBQ0YsdUVBQXVFO1FBQ3ZFLHFFQUFxRTtRQUNyRSx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0NBQWdDO1FBQ2hDLHlFQUF5RTtRQUN6RSxzRUFBc0U7UUFDdEUseUVBQXlFO1FBQ3pFLGdFQUFnRTtRQUNoRSx1RUFBdUU7UUFDdkUsY0FBYztRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMscUJBQXFCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0RSxnQ0FBZ0M7UUFDaEMscUVBQXFFO1FBQ3JFLDREQUE0RDtRQUM1RCxxRUFBcUU7UUFDckUscUVBQXFFO1FBQ3JFLG9FQUFvRTtRQUNwRSxpRUFBaUU7UUFDakUsc0VBQXNFO1FBQ3RFLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsWUFBWSxDQUFDLEVBQ2pCLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxFQUNsRSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELDhCQUE4QjtJQUU5Qix5RkFBeUY7SUFDekYsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsdUZBQXVGO0lBQ3ZGLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxFQUFFO0lBQ0YseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSwyRUFBMkU7SUFDM0UsMEVBQTBFO0lBQzFFLHdFQUF3RTtJQUN4RSx3RUFBd0U7SUFDeEUsaUVBQWlFO0lBQ2pFLDJCQUEyQjtJQUUzQiw2RUFBNkU7SUFDN0UsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxNQUEwQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0ZBQWtGO0lBQ2xGLFlBQVksQ0FBQyxNQUF3QjtRQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxhQUFhLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxvRkFBb0Y7SUFDcEYsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsOENBQThDO0lBQzlDLFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsa0JBQWtCLENBQUMsTUFBNkI7UUFDOUMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLGFBQWEsQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLFVBQVUsQ0FBQyxPQUFnQjtRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELGlCQUFpQixDQUFDLE9BQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpRUFBaUU7SUFDakUscUJBQXFCLENBQUMsTUFBcUI7UUFDekMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELGVBQWUsQ0FBQyxNQUFxQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLG1CQUFtQixDQUFDLFdBQW1CO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxzQkFBc0IsQ0FBQyxLQUFhO1FBQ2xDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsOEVBQThFO0lBQzlFLGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxvQkFBb0I7SUFFcEI7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLElBQW9DO1FBQ3pDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQUVELDREQUE0RDtBQUU1RDs7Ozs7O0dBTUc7QUFDSCxTQUFTLEtBQUssQ0FBSSxDQUFlLEVBQUUsQ0FBZTtJQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDekIsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsd0VBQXdFO0FBQ3hFLFNBQVMsZ0JBQWdCLENBQUMsQ0FBWTtJQUNwQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLENBQVk7SUFDaEMsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtRQUNaLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZTtRQUNsQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWE7UUFDOUIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUNwQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUN4QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1FBQ3hCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztRQUMxQixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQzVCLFdBQVcsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1FBQ2xDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztRQUN0QixjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWM7UUFDaEMsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlO1FBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztRQUNkLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWTtRQUM1QixpQkFBaUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCO1FBQ3RDLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtRQUM5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FDdEIsQ0FBWSxFQUNaLGVBQWtDO0lBRWxDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDcEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFDOUMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxZQUFZLEdBQXNCLFlBQVk7UUFDbEQsQ0FBQyxDQUFDO1lBQ0UsU0FBUyxFQUFFLFlBQVksQ0FBQyxtQkFBbUI7WUFDM0MsSUFBSSxFQUFFLFlBQVksQ0FBQyxxQkFBcUI7WUFDeEMsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU87U0FDOUI7UUFDSCxDQUFDLENBQUMsaUJBQWlCO1lBQ2pCLENBQUMsQ0FBQyxpRUFBaUU7Z0JBQ2pFLHdFQUF3RTtnQkFDeEU7b0JBQ0UsU0FBUyxFQUFFLGlCQUFpQixDQUFDLFNBQVM7b0JBQ3RDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZELFFBQVEsRUFBRSxJQUFJO29CQUNkLE9BQU8sRUFBRSxFQUFFO2lCQUNaO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixJQUFJLFlBQVksSUFBSSxnQkFBZ0IsQ0FBQztJQUNwRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztJQUM5RSxPQUFPO1FBQ0wsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDOUYsV0FBVyxFQUFFLENBQUMsQ0FBQyxtQkFBbUI7UUFDbEMsTUFBTSxFQUFFLENBQUMsQ0FBQyxjQUFjO1FBQ3hCLEtBQUssRUFBRSxhQUFhO1FBQ3BCLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxvQkFBb0I7UUFDNUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUM5QixlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWU7UUFDbEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDeEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDO1FBQzlELG9CQUFvQixFQUFFLENBQUMsQ0FBQyxvQkFBb0I7UUFDNUMsb0VBQW9FO1FBQ3BFLHNFQUFzRTtRQUN0RSwyRUFBMkU7UUFDM0Usa0NBQWtDO1FBQ2xDLFVBQVUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1FBQzlCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtRQUNwQixlQUFlLEVBQUUsYUFBYSxDQUFDLFdBQVc7UUFDMUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLGFBQWE7UUFDOUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxVQUFVO1FBQ3hDLGVBQWU7S0FDaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgdHlwZSBDb21wbGV0ZWRQYXJhbVN0YXRlLFxuICBBSUF1dG9jb21wbGV0ZSBhcyBDb3JlQUlBdXRvY29tcGxldGUsXG4gIHR5cGUgQ29yZVN0YXRlLFxuICB0eXBlIEN1c3RvbUZpZWxkc1JlcG9ydCxcbiAgZGF0ZVNlbGVjdGlvbkZvcixcbiAgdHlwZSBJZGVudGlmaWVkUGFyYW1TdGF0ZSxcbiAgaWRlbnRpZmllZFBhcmFtTGFiZWwsXG4gIHR5cGUgUHJvZHVjdCxcbiAgdHlwZSBTZWdtZW50LFxuICB0eXBlIFNraXBwZWRQYXJhbVN0YXRlLFxuICB0eXBlIFN1Z2dlc3Rpb24sXG4gIHR5cGUgU3VnZ2VzdGlvbk9wdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgdHlwZSBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMsXG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlLFxuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUsXG4gIEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZSxcbn0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgZGVyaXZlRmllbGQgfSBmcm9tIFwiLi9vYnNlcnZhYmxlc1wiO1xuXG4vKipcbiAqIFRpZXIgMiBsb2dpYyBzdXJmYWNlIGZvciBgQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLWFuZ3VsYXJgIOKAlCB0aGUgQW5ndWxhclxuICogZXF1aXZhbGVudCBvZiBSZWFjdCdzIGB1c2VBSUF1dG9jb21wbGV0ZSgpYCBob29rLiBXcmFwcyBhIGhlYWRsZXNzXG4gKiBgQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFgIGNvcmUgYW5kIGV4cG9zZXMgaXRzIHN0YXRlIGFzIFJ4SlNcbiAqIG9ic2VydmFibGVzIHBsdXMgdGhpbiBhY3Rpb24gbWV0aG9kcy5cbiAqXG4gKiBUaGUgY29udHJvbGxlciBpcyBjb25zdW1lci1tYW5hZ2VkIOKAlCB0aGUgY29uc3VtZXIgY3JlYXRlcyBpdFxuICogd2l0aCBgbmV3YCwgaG9sZHMgdGhlIHJlZmVyZW5jZSwgYW5kICoqbXVzdCBjYWxsIGBkZXN0cm95KClgKiogaW4gdGhlaXJcbiAqIG93biBgbmdPbkRlc3Ryb3lgLiBUaGUgVGllciAxIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50IGRvZXMgdGhpc1xuICogYXV0b21hdGljYWxseTsgVGllciAyIGNvbnN1bWVycyBkbyBub3QgZ2V0IGF1dG8tY2xlYW51cC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvcmU6IENvcmVBSUF1dG9jb21wbGV0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSByYXdTdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxDb3JlU3RhdGU+O1xuICAvLyBvcHRpb25zUG9zaXRpb24gaXNuJ3QgcGFydCBvZiBDb3JlU3RhdGUgKGl0J3MgYSBjb3JlIG9wdGlvbiksIHNvIHRyYWNrIGl0XG4gIC8vIGhlcmUgYW5kIGZvbGQgaXQgaW50byBgZHJvcGRvd24kYCBzbyB0aGUgZHJvcGRvd24gY2FuIHJlYWQgcGxhY2VtZW50IGZyb21cbiAgLy8gdGhlIGNvbnRyb2xsZXIg4oCUIGNvbmZpZ3VyZWQgb25jZSwga2VwdCBpbiBzeW5jIHRocm91Z2ggdXBkYXRlKCkuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uc1Bvc2l0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XCJhYm92ZVwiIHwgXCJiZWxvd1wiPihcImJlbG93XCIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlQ29yZTogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuXG4gIC8vID09PSBQZXItZmllbGQgb2JzZXJ2YWJsZXMgPT09XG4gIC8vIEVhY2ggb25lIHJ1bnMgdGhyb3VnaCBkZXJpdmVGaWVsZCwgd2hpY2ggYmFrZXMgaW4gZGlzdGluY3RVbnRpbENoYW5nZWRcbiAgLy8gYW5kIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSkgcGVyIMKnMTkuNC5cblxuICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSBlZGl0b3IuICovXG4gIHJlYWRvbmx5IHRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIC8qKiBDb21wbGV0ZWQgKGJvbGQpIHBhcmFtcyBjdXJyZW50bHkgaW4gdGhlIGVkaXRvci4gKi9cbiAgcmVhZG9ubHkgY29tcGxldGVkUGFyYW1zJDogT2JzZXJ2YWJsZTxDb21wbGV0ZWRQYXJhbVN0YXRlW10+O1xuICAvKipcbiAgICogU3VnZ2VzdGlvbnMgdGhlIHVzZXIgZGlzbWlzc2VkIHdpdGggdGhlIHNraXAga2V5ICjihpIpLiBOb3RoaW5nIHJlbmRlcnNcbiAgICogdGhlbTsgdGhleSBleGlzdCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYW4gcGFzcyB0aGVtIHRvXG4gICAqIGBidWlsZFN1Ym1pdFJlc3VsdGAgYW5kIGNhcnJ5IHRoZSBzYW1lIGB0ZXh0OiBcInNraXBwZWRcImAgZW50cmllcyB0aGVcbiAgICogU0RLJ3Mgb3duIHJlcXVlc3RzIGRvLlxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcHBlZFBhcmFtcyQ6IE9ic2VydmFibGU8U2tpcHBlZFBhcmFtU3RhdGVbXT47XG4gIC8qKlxuICAgKiBQYXJhbXMgdGhlIHNlcnZlciBpZGVudGlmaWVkIGluIHRoZSB1c2VyJ3Mgb3duIHdvcmRzLiBBbHJlYWR5IHJlbmRlcmVkXG4gICAqIHRocm91Z2ggYHNlZ21lbnRzJGA7IGV4cG9zZWQgc28gYSBoYW5kLXJvbGxlZCBzdWJtaXQgY2FuIHBhc3MgdGhlbSB0b1xuICAgKiBgYnVpbGRTdWJtaXRSZXN1bHRgIGFuZCByZXBvcnQgdGhlIHNhbWUgYGlkZW50aWZpZWRfcGFyYW1zYCB0aGUgU0RLJ3NcbiAgICogb3duIHJlc3VsdHMgY2FycnkuXG4gICAqL1xuICByZWFkb25seSBpZGVudGlmaWVkUGFyYW1zJDogT2JzZXJ2YWJsZTxJZGVudGlmaWVkUGFyYW1TdGF0ZVtdPjtcbiAgLyoqIEFjdGlvbmFibGUgc3VnZ2VzdGlvbiBwaWxscyAoZmlyc3Qgb25lIGlzIHRoZSBhY3RpdmUgcGlsbCkuICovXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25QaWxscyQ6IE9ic2VydmFibGU8U3VnZ2VzdGlvbltdPjtcbiAgLyoqIFRleHQgKyBjb21wbGV0ZWQtcGFyYW0gc2VnbWVudHMgZm9yIHJlbmRlcmluZyB0aGUgZWRpdG9yIGJvZHkuICovXG4gIHJlYWRvbmx5IHNlZ21lbnRzJDogT2JzZXJ2YWJsZTxTZWdtZW50W10+O1xuICAvKiogSUQgb2YgdGhlIG1vc3QtcmVjZW50bHktcHJvbW90ZWQgcGFyYW0gKGRyaXZlcyBzaGltbWVyIGFuaW1hdGlvbikuICovXG4gIHJlYWRvbmx5IG5ld1BhcmFtSWQkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+O1xuICAvKiogQWxsIHN1Z2dlc3Rpb25zIGZyb20gdGhlIHNlcnZlciAoaW5jbHVkaW5nIG5vbi1hY3Rpb25hYmxlIG9uZXMpLiAqL1xuICByZWFkb25seSBzdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8U3VnZ2VzdGlvbltdPjtcbiAgLyoqXG4gICAqIFdoYXQgdGhlIHByb2R1Y3Qgc3RyaXAgc2hvd3M6IHRoZSBpdGVtcyB0aGUgbGF0ZXN0IGAvc3VnZ2VzdGAgcmVzcG9uc2VcbiAgICogcmVwb3J0ZWQgYXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LCBvciDigJQgd2l0aCBgcHJvZHVjdHNgIGNvbmZpZ3VyZWQgb24gdGhlXG4gICAqIGNvbnRyb2xsZXIg4oCUIHRoZSByZXN1bHRzIG9mIHRoYXQgY3VzdG9tIHNlYXJjaC5cbiAgICovXG4gIHJlYWRvbmx5IHByb2R1Y3RzJDogT2JzZXJ2YWJsZTxQcm9kdWN0W10+O1xuICAvKipcbiAgICogVGhlIGNhdGFsb2cgZ3JvdW5kaW5nIHJlcG9ydCB0aGUgbGF0ZXN0IHJlc3BvbnNlIGNhcnJpZWQsIG9yIG51bGwgd2hlbiBpdFxuICAgKiBjYXJyaWVkIG5vbmU6IHdoaWNoIG9mIHRoZSBxdWVyeSdzIGNvbnN0cmFpbnRzIHRoZSBjYXRhbG9nIGFwcGxpZWQsIHdoaWNoXG4gICAqIGl0IGRyb3BwZWQsIGFuZCBob3cgbWFueSBpdGVtcyAoYW5kIHdoaWNoKSB0aGUgYXBwbGllZCBvbmVzIGxlZnRcbiAgICogc3RhbmRpbmcuIE51bGwgaXMgXCJubyBuZXdzXCIsIG5vdCBhbiBlbXB0eSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRmllbGRzJDogT2JzZXJ2YWJsZTxDdXN0b21GaWVsZHNSZXBvcnQgfCBudWxsPjtcbiAgLyoqIEN1cnJlbnRseSBoaWdobGlnaHRlZCBkcm9wZG93biBvcHRpb24gaW5kZXguIC0xID0gbm9uZS4gKi9cbiAgcmVhZG9ubHkgYWN0aXZlSW5kZXgkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIC8qKlxuICAgKiBVSS12aXNpYmxlIGxvYWRpbmcgZmxhZyDigJQgc3VwcHJlc3NlZCBkdXJpbmcgdGhlIHBvc3Qtc2VsZWN0IHByZXNzXG4gICAqIGFuaW1hdGlvbiBhbmQgZHVyaW5nIHJlLWVkaXQgKGNhY2hlZCBvcHRpb25zIHN0YXkgdmlzaWJsZSB0aGVyZSkuIFVzZVxuICAgKiB0aGlzIGluc3RlYWQgb2YgdGhlIHJhdyBjb3JlIHN0YXRlIGZvciBhbnkgbG9hZGluZy1za2VsZXRvbiBiaW5kaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFNlcnZlci1yZXBvcnRlZCBcInF1ZXJ5IGlzIGNvbXBsZXRlXCIgZmxhZy4gKi9cbiAgcmVhZG9ubHkgaXNSZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBXaGV0aGVyIHRoZSBlZGl0b3IgY3VycmVudGx5IGhhcyBmb2N1cy4gKi9cbiAgcmVhZG9ubHkgaXNGb2N1c2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFdoZXRoZXIgdGhlIGRyb3Bkb3duIHNob3VsZCBjdXJyZW50bHkgYmUgdmlzaWJsZS4gKi9cbiAgcmVhZG9ubHkgaXNEcm9wZG93bk9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYWN0aXZlIChsZWFkaW5nKSBwaWxsIHNob3VsZCByZW5kZXIgc2VsZWN0ZWQgKGZ1bGwgb3BhY2l0eSlcbiAgICogcmF0aGVyIHRoYW4gdGhlIGRlLWVtcGhhc2l6ZWQgYGZpcnN0YCB0aWVyLiBBdXRvIHRyaWdnZXIg4oeSIHRydWUgb25seSB3aGlsZVxuICAgKiBhIGRyb3Bkb3duIG9wdGlvbiBpcyBoaWdobGlnaHRlZDsgbWFudWFsIOKHkiB0cnVlIG9uY2UgdGhlIHBpbGwgaXMgdGFwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNBY3RpdmVQaWxsU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogU2VydmVyLXN1Z2dlc3RlZCBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgZWRpdG9yLiAqL1xuICByZWFkb25seSBwbGFjZWhvbGRlclRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIC8qKiBMYXN0IGZldGNoIGVycm9yLCBvciBudWxsLiAqL1xuICByZWFkb25seSBlcnJvciQ6IE9ic2VydmFibGU8RXJyb3IgfCBudWxsPjtcbiAgLyoqIFBhcmFtIGN1cnJlbnRseSBiZWluZyByZS1lZGl0ZWQsIG9yIG51bGwuICovXG4gIHJlYWRvbmx5IGVkaXRpbmdQYXJhbSQ6IE9ic2VydmFibGU8Q29tcGxldGVkUGFyYW1TdGF0ZSB8IG51bGw+O1xuICAvKiogUGxhaW4tdGV4dCBvZmZzZXQgd2hlcmUgdGhlIGVkaXQgcmVnaW9uIHN0YXJ0cywgb3IgbnVsbC4gKi9cbiAgcmVhZG9ubHkgZWRpdGluZ0FuY2hvciQ6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD47XG4gIC8qKiBMaXZlIGNhcmV0IG9mZnNldCB3aXRoaW4gdGhlIGVkaXRvci4gKi9cbiAgcmVhZG9ubHkgY2FyZXRPZmZzZXQkOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+O1xuXG4gIC8vID09PSBDb21wb3NpdGUgb2JzZXJ2YWJsZXMgPT09XG5cbiAgLyoqXG4gICAqIFNuYXBzaG90IG9mIGV2ZXJ5IHB1YmxpYyBmaWVsZCBpbiBvbmUgb2JqZWN0LiBDb252ZW5pZW50IGZvclxuICAgKiBgKm5nSWY9XCJjdHJsLnN0YXRlJCB8IGFzeW5jIGFzIHN0YXRlXCJgIHRlbXBsYXRpbmcg4oCUIGFsaWFzZXMgYWxsIGZpZWxkc1xuICAgKiB1bmRlciBhIHNpbmdsZSBzdWJzY3JpcHRpb24gaW5zdGVhZCBvZiBtdWx0aXBsZSBgfCBhc3luY2AgcGlwZXMuXG4gICAqL1xuICByZWFkb25seSBzdGF0ZSQ6IE9ic2VydmFibGU8QUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGU+O1xuXG4gIC8qKlxuICAgKiBDb21wb3NpdGUgc3RhdGUgZm9yIHRoZSBkcm9wZG93biB2aWV3LiBUaWVyIDIgY29uc3VtZXJzIHNwcmVhZCB0aGlzIGludG9cbiAgICogYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YDsgVGllciAxIHVzZXMgdGhlIHNhbWUgc2hhcGUgaW50ZXJuYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGRyb3Bkb3duJDogT2JzZXJ2YWJsZTxBSUF1dG9jb21wbGV0ZURyb3Bkb3duU3RhdGU+O1xuXG4gIC8qKlxuICAgKiBUaHJvd3MgaWYgaW52b2tlZCBvdXRzaWRlIGEgYnJvd3NlciBlbnZpcm9ubWVudC4gRm9yIFNTUiAvIEFuZ3VsYXJcbiAgICogVW5pdmVyc2FsLCBnYXRlIGNvbnN0cnVjdGlvbiB3aXRoIGBpc1BsYXRmb3JtQnJvd3NlcmAuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zID0ge30pIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQUlBdXRvY29tcGxldGVDb250cm9sbGVyIHJlcXVpcmVzIGEgYnJvd3NlciBlbnZpcm9ubWVudC4gXCIgK1xuICAgICAgICAgIFwiRm9yIFNTUiAvIEFuZ3VsYXIgVW5pdmVyc2FsLCBnYXRlIGNvbnN0cnVjdGlvbiB3aXRoIGlzUGxhdGZvcm1Ccm93c2VyLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBIZWFkbGVzcyBtb2RlIG5ldmVyIHJlbmRlcnMgdG8gdGhlIGhvc3QsIHNvIGEgdGhyb3dhd2F5IGRpdiBpcyBmaW5lIOKAlFxuICAgIC8vIGl0J3MgcmVxdWlyZWQgYnkgdGhlIGNvcmUncyBzaWduYXR1cmUgZm9yIHN5bW1ldHJ5IHdpdGggZnVsbCBtb2RlLlxuICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVBSUF1dG9jb21wbGV0ZShob3N0LCB7XG4gICAgICAuLi5vcHRzLFxuICAgICAgcmVuZGVyTW9kZTogXCJoZWFkbGVzc1wiLFxuICAgICAgc291cmNlOiBvcHRzLnNvdXJjZSA/PyBcImhlYWRsZXNzLXNka1wiLFxuICAgICAgLy8gSGVhZGxlc3MgbW9kZSBuZXZlciByZW5kZXJzIHRoZSBkcm9wZG93biBET00sIGJ1dCB0aGUga2V5Ym9hcmRcbiAgICAgIC8vIGNvbnRyb2xsZXIgc3RpbGwgcmVhZHMgYG9wdGlvbnNQb3NpdGlvbmAgdG8gZGVjaWRlIHdoaWNoIHZlcnRpY2FsXG4gICAgICAvLyBhcnJvdyBvcGVucyB0aGUgZHJvcGRvd24gZnJvbSB0aGUgaW5wdXQuXG4gICAgICBvcHRpb25zUG9zaXRpb246IG9wdHMub3B0aW9uc1Bvc2l0aW9uID8/IFwiYmVsb3dcIixcbiAgICB9KTtcblxuICAgIHRoaXMucmF3U3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb3JlU3RhdGU+KHRoaXMuY29yZS5nZXRTdGF0ZSgpKTtcbiAgICAvLyBQdXNoIHRoZSBzdG9yZSdzICpjdXJyZW50KiBzdGF0ZSwgbm90IHRoZSBzbmFwc2hvdCB0aGUgbGlzdGVuZXIgd2FzXG4gICAgLy8gaGFuZGVkLiBUaGUgY29yZSBub3RpZmllcyBsaXN0ZW5lcnMgc3luY2hyb25vdXNseSwgYW5kIHNvbWUgYWN0aW9uc1xuICAgIC8vIHRyaWdnZXIgcmVlbnRyYW50IGBzdG9yZS5zZXRgIGNhbGxzIChlLmcuIHR5cGluZyBhIG5vbi1tYXRjaGluZyBjaGFyXG4gICAgLy8gZHVyaW5nIHJlLWVkaXQgbWFrZXMgdGhlIGNvcmUgc3luY2hyb25vdXNseSBleGl0IHJlLWVkaXQgYW5kIGtpY2sgb2ZmIGFcbiAgICAvLyBmZXRjaCkuXG4gICAgLy9cbiAgICAvLyBUaGUgY29yZSdzIHN0b3JlIHVzZWQgdG8gZGVsaXZlciBzdWNoIGEgbmVzdGVkIHNldCBpbmxpbmUgYW5kIHRoZW5cbiAgICAvLyByZXN1bWUgdGhlIG91dGVyIGxpc3RlbmVyIGxvb3AsIHNvIGEgbGlzdGVuZXIgY291bGQgYmUgaGFuZGVkIGFuIG9sZGVyXG4gICAgLy8gc3RhdGUgKHN0aWxsIGluIHJlLWVkaXQpICphZnRlciogYSBuZXdlciBvbmUgKHJlLWVkaXQgZXhpdGVkKSDigJQgd2hpY2hcbiAgICAvLyByZXN1cnJlY3RlZCBhIHN0YWxlIGBlZGl0aW5nUGFyYW1gIGFuZCByZXRyaWdnZXJlZCB0aGUgZWRpdG9yJ3MgcmUtZWRpdFxuICAgIC8vIGNhcmV0LXBhcmssIHlhbmtpbmcgdGhlIGNhcmV0IGJhY2sgdG8gd2hlcmUgcmUtZWRpdGluZyBzdGFydGVkLiBUaGVcbiAgICAvLyBzdG9yZSBub3cgcXVldWVzIG5vdGlmaWNhdGlvbnMgYW5kIGRyYWlucyB0aGVtIGluIG9yZGVyLCBzbyB0aGF0XG4gICAgLy8gb3V0LW9mLW9yZGVyIGRlbGl2ZXJ5IGNhbiBubyBsb25nZXIgaGFwcGVuIGF0IHRoZSBzb3VyY2UuXG4gICAgLy9cbiAgICAvLyBSZWFkaW5nIGBnZXRTdGF0ZSgpYCBhdCBlbWlzc2lvbiB0aW1lIGlzIGtlcHQgYXMgYmVsdC1hbmQtYnJhY2VzOiBpdFxuICAgIC8vIGNvc3RzIG5vdGhpbmcgKGRpc3RpbmN0VW50aWxDaGFuZ2VkIGRvd25zdHJlYW0gZHJvcHMgdGhlIGR1cGxpY2F0ZVxuICAgIC8vIGVtaXNzaW9ucykgYW5kIGtlZXBzIHRoaXMgYnJpZGdlIGNvcnJlY3QgZm9yIGFueSBmdXR1cmUgY29uc3VtZXIgdGhhdFxuICAgIC8vIGVtaXRzIG1pZC1jYXNjYWRlLiBSZWFjdCBuZWVkcyBuZWl0aGVyLCBzaW5jZSBpdCBiYXRjaGVzIHJlbmRlcnMgYW5kXG4gICAgLy8gZ2F0ZXMgaXRzIGNhcmV0IGVmZmVjdHMgb24gZGVwZW5kZW5jaWVzLlxuICAgIHRoaXMudW5zdWJzY3JpYmVDb3JlID0gdGhpcy5jb3JlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHRoaXMucmF3U3RhdGUkLm5leHQodGhpcy5jb3JlLmdldFN0YXRlKCkpO1xuICAgIH0pO1xuXG4gICAgLy8gPT09IFBlci1maWVsZCBvYnNlcnZhYmxlcyA9PT1cbiAgICAvLyBBcnJheS12YWx1ZWQgZmllbGRzIHVzZSBzaGFsbG93IGVxdWFsaXR5LiBUaGUgdmFuaWxsYSBzdG9yZSBzcHJlYWRzIG9uXG4gICAgLy8gZXZlcnkgd3JpdGUgKGBzdG9yZS5zZXQoeyBjb21wbGV0ZWRQYXJhbXM6IFsuLi5dIH0pYCksIHNvIHJlZmVyZW5jZVxuICAgIC8vIGVxdWFsaXR5IHdvdWxkIHJlLWZpcmUgZG93bnN0cmVhbSBzdWJzY3JpYmVycyBvbiBldmVyeSBzdGF0ZSB0aWNrIGV2ZW5cbiAgICAvLyB3aGVuIHRoZSBhcnJheSdzIGNvbnRlbnRzIGFyZSB1bmNoYW5nZWQuIFRoZSBvdGhlciBmaWVsZHMgYXJlXG4gICAgLy8gcHJpbWl0aXZlcyBvciBzdGFibGUgb2JqZWN0IHJlZmVyZW5jZXMsIHNvIGRlZmF1bHQgaWRlbnRpdHkgZXF1YWxpdHlcbiAgICAvLyB3b3JrcyBmaW5lLlxuICAgIHRoaXMudGV4dCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMudGV4dCk7XG4gICAgdGhpcy5jb21wbGV0ZWRQYXJhbXMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmNvbXBsZXRlZFBhcmFtcywgYXJyRXEpO1xuICAgIHRoaXMuc2tpcHBlZFBhcmFtcyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuc2tpcHBlZFBhcmFtcywgYXJyRXEpO1xuICAgIHRoaXMuaWRlbnRpZmllZFBhcmFtcyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaWRlbnRpZmllZFBhcmFtcywgYXJyRXEpO1xuICAgIHRoaXMuc3VnZ2VzdGlvblBpbGxzJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5hY3Rpb25hYmxlU3VnZ2VzdGlvbnMsIGFyckVxKTtcbiAgICB0aGlzLnNlZ21lbnRzJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5zZWdtZW50cywgYXJyRXEpO1xuICAgIHRoaXMubmV3UGFyYW1JZCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMubmV3UGFyYW1JZCk7XG4gICAgdGhpcy5zdWdnZXN0aW9ucyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuc3VnZ2VzdGlvbnMsIGFyckVxKTtcbiAgICB0aGlzLnByb2R1Y3RzJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5wcm9kdWN0cywgYXJyRXEpO1xuICAgIHRoaXMuY3VzdG9tRmllbGRzJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5jdXN0b21GaWVsZHMpO1xuICAgIHRoaXMuYWN0aXZlSW5kZXgkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmFjdGl2ZURyb3Bkb3duSW5kZXgpO1xuICAgIHRoaXMuaXNMb2FkaW5nJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCBjb21wdXRlVWlMb2FkaW5nKTtcbiAgICB0aGlzLmlzUmVhZHkkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmlzUmVhZHkpO1xuICAgIHRoaXMuaXNGb2N1c2VkJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pc0ZvY3VzZWQpO1xuICAgIHRoaXMuaXNEcm9wZG93bk9wZW4kID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmlzRHJvcGRvd25PcGVuKTtcbiAgICB0aGlzLmlzQWN0aXZlUGlsbFNlbGVjdGVkJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pc0FjdGl2ZVBpbGxTZWxlY3RlZCk7XG4gICAgdGhpcy5wbGFjZWhvbGRlclRleHQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnBsYWNlaG9sZGVyVGV4dCk7XG4gICAgdGhpcy5lcnJvciQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuZXJyb3IpO1xuICAgIHRoaXMuZWRpdGluZ1BhcmFtJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5lZGl0aW5nUGFyYW0pO1xuICAgIHRoaXMuZWRpdGluZ0FuY2hvciQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuZWRpdGluZ0FuY2hvcik7XG4gICAgdGhpcy5jYXJldE9mZnNldCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuY2FyZXRPZmZzZXQpO1xuXG4gICAgLy8gPT09IENvbXBvc2l0ZSBvYnNlcnZhYmxlcyA9PT1cbiAgICAvLyBQcm9qZWN0IGRpcmVjdGx5IG9mZiBgcmF3U3RhdGUkYCB3aXRoIGEgc2luZ2xlIG1hcCgpIHNvIGVhY2ggc3RvcmVcbiAgICAvLyB0aWNrIHByb2R1Y2VzIGV4YWN0bHkgT05FIGNvaGVyZW50IHN0YXRlJCBlbWlzc2lvbi4gVXNpbmdcbiAgICAvLyBgY29tYmluZUxhdGVzdGAgb3ZlciB0aGUgcGVyLWZpZWxkIG9ic2VydmFibGVzIGhlcmUgd291bGQgZmlyZSBvbmVcbiAgICAvLyBlbWlzc2lvbiBwZXIgaW5uZXItc291cmNlIHRpY2sgKHVwIHRvIE4gcGVyIHN0b3JlIHVwZGF0ZSksIGFuZCB0aGVcbiAgICAvLyBlZGl0b3ItaG9zdCBkaXJlY3RpdmUncyBwb3N0LXByb21vdGUgcmVmb2N1cyB3b3VsZCBydW4gYWdhaW5zdCBhblxuICAgIC8vIGludGVybWVkaWF0ZSBzdGF0ZSB3aGVyZSBgbmV3UGFyYW1JZGAgd2FzIHNldCBidXQgYHNlZ21lbnRzYCAvXG4gICAgLy8gYGNhcmV0T2Zmc2V0YCBzdGlsbCBoZWxkIHRoZWlyIG9sZCB2YWx1ZXMg4oCUIGxlYXZpbmcgdGhlIGNhcmV0IHN0dWNrXG4gICAgLy8gYXQgdGhlIHByZS1jbGljayBwb3NpdGlvbi5cbiAgICB0aGlzLnN0YXRlJCA9IHRoaXMucmF3U3RhdGUkLnBpcGUoXG4gICAgICBtYXAoY29tcHV0ZVN0YXRlKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKTtcblxuICAgIHRoaXMub3B0aW9uc1Bvc2l0aW9uJC5uZXh0KG9wdHMub3B0aW9uc1Bvc2l0aW9uID8/IFwiYmVsb3dcIik7XG4gICAgdGhpcy5kcm9wZG93biQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJhd1N0YXRlJCwgdGhpcy5vcHRpb25zUG9zaXRpb24kXSkucGlwZShcbiAgICAgIG1hcCgoW3MsIG9wdGlvbnNQb3NpdGlvbl0pID0+IGNvbXB1dGVEcm9wZG93bihzLCBvcHRpb25zUG9zaXRpb24pKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8vID09PSBSZWFkLW9ubHkgYWNjZXNzb3JzID09PVxuXG4gIC8qKiBTdGFibGUgQVJJQSBsaXN0Ym94IElEIGZvciB0aGUgZHJvcGRvd24uIFBhc3MgdG8gYDx0ZXh0YXJlYSBhcmlhLWNvbnRyb2xzPVwiLi4uXCI+YC4gKi9cbiAgZ2V0IGxpc3Rib3hJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvcmUubGlzdGJveElkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgYGRlc3Ryb3koKWAgaGFzIGJlZW4gY2FsbGVkLiBBZnRlciBkZXN0cnVjdGlvbiBhbGwgYWN0aW9uIG1ldGhvZHMgbm8tb3AuICovXG4gIGdldCBkZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZXN0cm95ZWQ7XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25vdXMgc25hcHNob3Qgb2YgdGhlIGNvbnRyb2xsZXIncyBjdXJyZW50IHB1YmxpYyBzdGF0ZS4gTWlycm9yc1xuICAgKiB0aGUgbGF0ZXN0IGVtaXNzaW9uIG9mIGBzdGF0ZSRgLiBVc2VmdWwgaW4gY2FsbGJhY2tzIHdoZXJlIHlvdSBjYW4ndFxuICAgKiBgc3Vic2NyaWJlYCAoZS5nLiBpbnNpZGUgYW4gZXZlbnQgaGFuZGxlcikuXG4gICAqL1xuICBnZXRTdGF0ZSgpOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gICAgcmV0dXJuIGNvbXB1dGVTdGF0ZSh0aGlzLnJhd1N0YXRlJC52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0cnVjdHVyZWQgcXVlcnkgYXMgdGhlIFNESyB1bmRlcnN0YW5kcyBpdCByaWdodCBub3cg4oCUIHRoZSBzYW1lXG4gICAqIG9iamVjdCBgb25SZXN1bHRgIGRlbGl2ZXJzIGFmdGVyIGVhY2ggcmVzcG9uc2UgYW5kIGBvblN1Ym1pdGAgZGVsaXZlcnNcbiAgICogb24gc3VibWl0LiBSZWFkIGl0IG9uIGRlbWFuZCBmcm9tIGEgcGxhY2UgdGhhdCBoYXMgbm8gZXZlbnQgaGFuZHkgKGFcbiAgICogY3VzdG9tIHN1Ym1pdCBidXR0b24sIGEgXCJzYXZlIGRyYWZ0XCIgYWN0aW9uKS5cbiAgICovXG4gIGdldFJlc3VsdCgpOiBBdXRvY29tcGxldGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLmNvcmUuZ2V0UmVzdWx0KCk7XG4gIH1cblxuICAvLyA9PT0gQWN0aW9uIG1ldGhvZHMgKHBhc3MtdGhyb3VnaCB0byB0aGUgY29yZSkgPT09XG4gIC8vXG4gIC8vIEV2ZXJ5IGFjdGlvbiBtZXRob2QgYmVnaW5zIHdpdGggYW4gYGlzRGVzdHJveWVkYCBndWFyZCBzbyB0aGF0IGNhbGxlcnNcbiAgLy8gd2hvIGhvbGQgYSBzdGFsZSByZWZlcmVuY2UgYWZ0ZXIgYGRlc3Ryb3koKWAgZG9uJ3QgYWNjaWRlbnRhbGx5IHRyaWdnZXJcbiAgLy8gd29yayBvbiBhIHRvcm4tZG93biBjb3JlLiBUaGUgdmFuaWxsYSBjb3JlIGRvZXMgbm90IGdhdGUgaXRzIG93biBtZXRob2RzXG4gIC8vIHBvc3QtZGlzcG9zZSDigJQgYHJlc2V0KClgLCBgaGFuZGxlVGV4dENoYW5nZSgpYCwgYW5kIGZyaWVuZHMgd291bGQgc3RpbGxcbiAgLy8gc2NoZWR1bGUgZmV0Y2hlcyBvciBmaXJlIEhUVFAgcmVxdWVzdHMgYWdhaW5zdCBhbiBhYm9ydGVkIGNvbnRyb2xsZXIsXG4gIC8vIGFuZCB0aGUgcmVzcG9uc2VzIHdvdWxkIGhhdmUgbm93aGVyZSB0byBzdXJmYWNlIChyYXdTdGF0ZSQgaXMgYWxyZWFkeVxuICAvLyBjb21wbGV0ZSkuIFRoZSBndWFyZCBtYWtlcyB0aGUgSlNEb2MtcHJvbWlzZWQgXCJuby1vcCBzaWxlbnRseVwiXG4gIC8vIHNlbWFudGljcyBhY3R1YWxseSB0cnVlLlxuXG4gIC8qKiBDbGVhciBhbGwgc3RhdGUsIHJvdGF0ZSBgc2Vzc2lvbl9pZGAsIGFuZCByZS1mZXRjaC4gQ2FsbCBhZnRlciBzdWJtaXQuICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnJlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkcyBhIHN1Ym1pdCBpbiB0ZWxlbWV0cnkuIEVudGVyIGlzIHJlY29yZGVkIGJ5IHRoZSBTREs7IGNhbGwgdGhpc1xuICAgKiBmcm9tIGEgc3VibWl0IGJ1dHRvbiB5b3UgcmVuZGVyLCBzbyBlYWNoIHN1Ym1pdCBpcyBjb3VudGVkIG9uY2UuXG4gICAqL1xuICByZWNvcmRTdWJtaXQocmVzdWx0OiBBdXRvY29tcGxldGVSZXN1bHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5yZWNvcmRTdWJtaXQocmVzdWx0KTtcbiAgfVxuXG4gIC8qKiBQaWNrIGEgZHJvcGRvd24gb3B0aW9uIChvciByZXBsYWNlIHRoZSByZS1lZGl0ZWQgcGFyYW0gaWYgaW4gcmUtZWRpdCBtb2RlKS4gKi9cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogU3VnZ2VzdGlvbk9wdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNlbGVjdE9wdGlvbihvcHRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFubm91bmNlIGEgcHJvZHVjdCBzZWxlY3Rpb24g4oCUIGZpcmVzIHRoZSBgb25Qcm9kdWN0U2VsZWN0YCBjYWxsYmFjayB0aGVcbiAgICogY29udHJvbGxlciB3YXMgY29uc3RydWN0ZWQgd2l0aC4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCBjYWxscyB0aGlzXG4gICAqIGZvciB5b3U7IGNvbnN1bWVycyByZW5kZXJpbmcgdGhlaXIgb3duIHN0cmlwIGNhbGwgaXQgdGhlbXNlbHZlcy5cbiAgICpcbiAgICogRW1pdHRpbmcgaXMgdGhlIHdob2xlIGJlaGF2aW91cjogdGhlIFNESyBkZWxpYmVyYXRlbHkgZG9lcyBub3QgbmF2aWdhdGUgdG9cbiAgICogYHByb2R1Y3QudXJsYCwgYmVjYXVzZSBvbmx5IHRoZSBpbnRlZ3JhdGlvbiBrbm93cyB3aGV0aGVyIGEgc2VsZWN0aW9uXG4gICAqIG1lYW5zIFwib3BlbiB0aGUgUERQXCIsIFwiYWRkIHRvIGNhcnRcIiwgb3IgXCJmaWxsIHRoZSBpbnB1dFwiLlxuICAgKi9cbiAgc2VsZWN0UHJvZHVjdChwcm9kdWN0OiBQcm9kdWN0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2VsZWN0UHJvZHVjdChwcm9kdWN0KTtcbiAgfVxuXG4gIC8qKiBQcm9tb3RlIHRoZSBwaWxsIGF0IGBpbmRleGAgdG8gYWN0aXZlIChmcm9udCBvZiB0aGUgbGlzdCkuICovXG4gIHNldEFjdGl2ZVBpbGwoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldEFjdGl2ZVBpbGwoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNraXAgdGhlIGFjdGl2ZSBwaWxsIOKAlCBzYW1lIGFjdGlvbiBhcyBwcmVzc2luZyDihpIgYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQuXG4gICAqIFRoZSBkcm9wZG93bidzIHNraXAgYnV0dG9uIGNhbGxzIHRoaXM7IGNvbnN1bWVycyByZW5kZXJpbmcgdGhlaXIgb3duIHNraXBcbiAgICogYWZmb3JkYW5jZSBjYWxsIGl0IGRpcmVjdGx5LiBUaGUgc2tpcHBlZCBzdWdnZXN0aW9uIGpvaW5zIGBza2lwcGVkUGFyYW1zJGAuXG4gICAqL1xuICBza2lwQWN0aXZlUGlsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5za2lwQWN0aXZlUGlsbCgpO1xuICB9XG5cbiAgLyoqIERyb3AgdGhlIGxhc3QgY29tcGxldGVkIHBhcmFtJ3MgXCJjb21wbGV0ZWRcIiBzdGF0dXMuIFRleHQgc3RheXMgYXMgcGxhaW4gdGV4dC4gKi9cbiAgcmVtb3ZlTGFzdFBhcmFtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnJlbW92ZUxhc3RQYXJhbSgpO1xuICB9XG5cbiAgLyoqIENsZWFyIHRoZSBzaGltbWVyIGFuaW1hdGlvbiBzdGF0ZSBmb3IgdGhlIG1vc3QtcmVjZW50bHktYWRkZWQgcGFyYW0uICovXG4gIGNsZWFyTmV3UGFyYW1JZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5jbGVhck5ld1BhcmFtSWQoKTtcbiAgfVxuXG4gIC8qKiBDb250cm9sbGVkLW1vZGUgc2V0dGVyIGZvciBlZGl0b3IgdGV4dC4gKi9cbiAgc2V0VmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0VmFsdWUodGV4dCk7XG4gIH1cblxuICAvKiogQ29udHJvbGxlZC1tb2RlIHNldHRlciBmb3IgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgc2V0Q29tcGxldGVkUGFyYW1zKHBhcmFtczogQ29tcGxldGVkUGFyYW1TdGF0ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0Q29tcGxldGVkUGFyYW1zKHBhcmFtcyk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBwbGFpbi10ZXh0IGlucHV0IGZyb20gdGhlIGNvbnN1bWVyJ3MgYDx0ZXh0YXJlYT5gIHRvIHRoZSBjb3JlLiAqL1xuICBoYW5kbGVUZXh0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5oYW5kbGVUZXh0Q2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBGb3J3YXJkIGtleWJvYXJkIGV2ZW50cyBmcm9tIHRoZSBjb25zdW1lcidzIGA8dGV4dGFyZWE+YCB0byB0aGUgY29yZS4gKi9cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmhhbmRsZUtleURvd24oZXZlbnQpO1xuICB9XG5cbiAgLyoqIE5vdGlmeSB0aGUgY29yZSBvZiBmb2N1cyBzdGF0ZS4gKi9cbiAgc2V0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0Rm9jdXNlZChmb2N1c2VkKTtcbiAgfVxuXG4gIC8qKiBFbnRlciByZS1lZGl0IG1vZGUgZm9yIHRoZSBib2xkIHBhcmFtIHdpdGggdGhlIGdpdmVuIGlkLiAqL1xuICBzdGFydEVkaXRpbmdQYXJhbShwYXJhbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zdGFydEVkaXRpbmdQYXJhbShwYXJhbUlkKTtcbiAgfVxuXG4gIC8qKiBFeGl0IHJlLWVkaXQgbW9kZSB3aXRob3V0IGNoYW5naW5nIHRoZSBib2xkIHBhcmFtLiAqL1xuICBleGl0RWRpdE1vZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuZXhpdEVkaXRNb2RlKCk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBwb3N0LWlucHV0IGNhcmV0IHBvc2l0aW9uIChleHRlbmRzIHRoZSBlZGl0IHRhaWwpLiAqL1xuICBoYW5kbGVDYXJldEFmdGVySW5wdXQob2Zmc2V0OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuaGFuZGxlQ2FyZXRBZnRlcklucHV0KG9mZnNldCk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBzZWxlY3Rpb24tb25seSBjYXJldCBtb3ZlcyAobWF5IGV4aXQgcmUtZWRpdCkuICovXG4gIGhhbmRsZUNhcmV0TW92ZShvZmZzZXQ6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5oYW5kbGVDYXJldE1vdmUob2Zmc2V0KTtcbiAgfVxuXG4gIC8qKiBSZXBsYWNlIHRoZSBib2xkIHBhcmFtIGJlaW5nIHJlLWVkaXRlZC4gUmV0dXJucyB0cnVlIHdoZW4gYXBwbGllZC4gKi9cbiAgcmVwbGFjZUVkaXRpbmdSYW5nZShyZXBsYWNlbWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5jb3JlLnJlcGxhY2VFZGl0aW5nUmFuZ2UocmVwbGFjZW1lbnQpO1xuICB9XG5cbiAgLyoqIFNldCB0aGUgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4ICh0eXBpY2FsbHkgZHJpdmVuIGJ5IGhvdmVyKS4gKi9cbiAgc2V0QWN0aXZlRHJvcGRvd25JbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0QWN0aXZlRHJvcGRvd25JbmRleChpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBvaW50ZXIgbGVmdCBvcHRpb24gYGluZGV4YDogY2xlYXIgdGhlIGhpZ2hsaWdodCBpZiBpdCBpcyBzdGlsbCBvbiBpdCxcbiAgICogc28gRW50ZXIgYWZ0ZXJ3YXJkcyBzdWJtaXRzIGluc3RlYWQgb2YgcGlja2luZyBhbiBvcHRpb24gdGhlIHBvaW50ZXIgaXMgbm9cbiAgICogbG9uZ2VyIG9uLiBBIGhpZ2hsaWdodCB0aGUga2V5Ym9hcmQgaGFzIHNpbmNlIG1vdmVkIGlzIGxlZnQgYWxvbmUuXG4gICAqL1xuICBjbGVhckhpZ2hsaWdodChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuY2xlYXJIaWdobGlnaHQoaW5kZXgpO1xuICB9XG5cbiAgLyoqIFBhZ2UgdGhlIGRhdGVwaWNrZXIgYmFjayBvbmUgbW9udGguIE5vLW9wIHVubGVzcyBhIGRhdGUgcGlsbCBpcyBhY3RpdmUuICovXG4gIHNob3dQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNob3dQcmV2aW91c01vbnRoKCk7XG4gIH1cblxuICAvKiogUGFnZSB0aGUgZGF0ZXBpY2tlciBmb3J3YXJkIG9uZSBtb250aC4gTm8tb3AgdW5sZXNzIGEgZGF0ZSBwaWxsIGlzIGFjdGl2ZS4gKi9cbiAgc2hvd05leHRNb250aCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zaG93TmV4dE1vbnRoKCk7XG4gIH1cblxuICAvLyA9PT0gTGlmZWN5Y2xlID09PVxuXG4gIC8qKlxuICAgKiBBcHBseSBydW50aW1lIGNoYW5nZXMgdG8gYSBzdWJzZXQgb2Ygb3B0aW9ucy4gRXZlbnQgY2FsbGJhY2tzXG4gICAqIChgb25TdWJtaXRgLCBgb25SZXN1bHRgLCBgb25FcnJvcmAsIGV0Yy4pIGNhbm5vdCBiZSBzd2FwcGVkIHRoaXMgd2F5IOKAlCB0aGV5IGFyZVxuICAgKiByZWdpc3RlcmVkIG9uY2UgYXQgY29uc3RydWN0aW9uIChtYXRjaGVzIHRoZSBSZWFjdCBob29rJ3MgZGVzaWduKS4gRm9yXG4gICAqIGR5bmFtaWMgZXZlbnQgcmVhY3Rpdml0eSwgc3Vic2NyaWJlIHRvIHRoZSBjb3JyZXNwb25kaW5nIG9ic2VydmFibGVcbiAgICogKGUuZy4gYHRleHQkYCBpbnN0ZWFkIG9mIGBvbkNoYW5nZWApLlxuICAgKi9cbiAgdXBkYXRlKG9wdHM6IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnVwZGF0ZShvcHRzKTtcbiAgICBpZiAob3B0cy5vcHRpb25zUG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vcHRpb25zUG9zaXRpb24kLm5leHQob3B0cy5vcHRpb25zUG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWxlYXNlIGFsbCByZXNvdXJjZXMg4oCUIHVuc3Vic2NyaWJlcyBmcm9tIHRoZSBjb3JlLCBkZXN0cm95cyB0aGUgY29yZSxcbiAgICogYW5kIGNvbXBsZXRlcyB0aGUgaW50ZXJuYWwgc3RhdGUgc3ViamVjdC4gU2FmZSB0byBjYWxsIG11bHRpcGxlIHRpbWVzLlxuICAgKiBBZnRlciBkZXN0cnVjdGlvbiwgYWN0aW9uIG1ldGhvZHMgbm8tb3Agc2lsZW50bHkuXG4gICAqL1xuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy51bnN1YnNjcmliZUNvcmUoKTtcbiAgICB0aGlzLmNvcmUuZGVzdHJveSgpO1xuICAgIHRoaXMucmF3U3RhdGUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuLy8gPT09PT0gUHVyZSBoZWxwZXJzIOKAlCBub3QgcGFydCBvZiB0aGUgcHVibGljIHN1cmZhY2UgPT09PT1cblxuLyoqXG4gKiBTaGFsbG93IGFycmF5IGVxdWFsaXR5LiBUaGUgdmFuaWxsYSBzdG9yZSByZWFzc2lnbnMgYXJyYXkgZmllbGRzIG9uIGV2ZXJ5XG4gKiB3cml0ZSAoYHN0b3JlLnNldCh7IGNvbXBsZXRlZFBhcmFtczogWy4uLnByZXYsIHhdIH0pYCksIHNvIHJlZmVyZW5jZVxuICogZXF1YWxpdHkgYWxvbmUgd291bGQgcmUtZW1pdCBkb3duc3RyZWFtIGV2ZW4gd2hlbiB0aGUgY29udGVudHMgYXJlXG4gKiBpZGVudGljYWwuIFVzZWQgZm9yIGBjb21wbGV0ZWRQYXJhbXMkYCwgYHN1Z2dlc3Rpb25zJGAsIGBzdWdnZXN0aW9uUGlsbHMkYCxcbiAqIGFuZCBgc2VnbWVudHMkYC5cbiAqL1xuZnVuY3Rpb24gYXJyRXE8VD4oYTogcmVhZG9ubHkgVFtdLCBiOiByZWFkb25seSBUW10pOiBib29sZWFuIHtcbiAgaWYgKGEgPT09IGIpIHJldHVybiB0cnVlO1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKiBVSS12aXNpYmxlIGxvYWRpbmcg4oCUIHRoZSBjb3JlJ3MgYGRyb3Bkb3duTG9hZGluZ2AgKHNlZSBpdHMgZG9jcykuICovXG5mdW5jdGlvbiBjb21wdXRlVWlMb2FkaW5nKHM6IENvcmVTdGF0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gcy5kcm9wZG93bkxvYWRpbmc7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVTdGF0ZShzOiBDb3JlU3RhdGUpOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdGV4dDogcy50ZXh0LFxuICAgIGNvbXBsZXRlZFBhcmFtczogcy5jb21wbGV0ZWRQYXJhbXMsXG4gICAgc2tpcHBlZFBhcmFtczogcy5za2lwcGVkUGFyYW1zLFxuICAgIGlkZW50aWZpZWRQYXJhbXM6IHMuaWRlbnRpZmllZFBhcmFtcyxcbiAgICBzdWdnZXN0aW9uUGlsbHM6IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zLFxuICAgIHNlZ21lbnRzOiBzLnNlZ21lbnRzLFxuICAgIG5ld1BhcmFtSWQ6IHMubmV3UGFyYW1JZCxcbiAgICBzdWdnZXN0aW9uczogcy5zdWdnZXN0aW9ucyxcbiAgICBwcm9kdWN0czogcy5wcm9kdWN0cyxcbiAgICBjdXN0b21GaWVsZHM6IHMuY3VzdG9tRmllbGRzLFxuICAgIGFjdGl2ZUluZGV4OiBzLmFjdGl2ZURyb3Bkb3duSW5kZXgsXG4gICAgaXNMb2FkaW5nOiBjb21wdXRlVWlMb2FkaW5nKHMpLFxuICAgIGlzUmVhZHk6IHMuaXNSZWFkeSxcbiAgICBpc0ZvY3VzZWQ6IHMuaXNGb2N1c2VkLFxuICAgIGlzRHJvcGRvd25PcGVuOiBzLmlzRHJvcGRvd25PcGVuLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogcy5wbGFjZWhvbGRlclRleHQsXG4gICAgZXJyb3I6IHMuZXJyb3IsXG4gICAgZWRpdGluZ1BhcmFtOiBzLmVkaXRpbmdQYXJhbSxcbiAgICBlZGl0aW5nSWRlbnRpZmllZDogcy5lZGl0aW5nSWRlbnRpZmllZCxcbiAgICBlZGl0aW5nQW5jaG9yOiBzLmVkaXRpbmdBbmNob3IsXG4gICAgY2FyZXRPZmZzZXQ6IHMuY2FyZXRPZmZzZXQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVEcm9wZG93bihcbiAgczogQ29yZVN0YXRlLFxuICBvcHRpb25zUG9zaXRpb246IFwiYWJvdmVcIiB8IFwiYmVsb3dcIixcbik6IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZSB7XG4gIGNvbnN0IGVkaXRpbmdQYXJhbSA9IHMuZWRpdGluZ1BhcmFtO1xuICBjb25zdCBlZGl0aW5nSWRlbnRpZmllZCA9IHMuZWRpdGluZ0lkZW50aWZpZWQ7XG4gIGNvbnN0IGRhdGVTZWxlY3Rpb24gPSBkYXRlU2VsZWN0aW9uRm9yKHMpO1xuICBjb25zdCBhY3RpdmVTdWdnZXN0aW9uID0gcy5hY3Rpb25hYmxlU3VnZ2VzdGlvbnNbMF07XG4gIGNvbnN0IGRyb3Bkb3duUGlsbDogU3VnZ2VzdGlvbiB8IG51bGwgPSBlZGl0aW5nUGFyYW1cbiAgICA/IHtcbiAgICAgICAgcGFyYW1ldGVyOiBlZGl0aW5nUGFyYW0uc3VnZ2VzdGlvblBhcmFtZXRlcixcbiAgICAgICAgdGV4dDogZWRpdGluZ1BhcmFtLnN1Z2dlc3Rpb25QbGFjZWhvbGRlcixcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG9wdGlvbnM6IGVkaXRpbmdQYXJhbS5vcHRpb25zLFxuICAgICAgfVxuICAgIDogZWRpdGluZ0lkZW50aWZpZWRcbiAgICAgID8gLy8gQW5zd2VyaW5nIGEgc3BhbiB0aGUgdXNlciB3cm90ZSB0aGVtc2VsdmVzOiB0aGUgcGlsbCBuYW1lcyB0aGVcbiAgICAgICAgLy8gcGFyYW1ldGVyIHRoZSBzZXJ2ZXIgbWF0Y2hlZCBpdCB0bywgc28gdGhlIGNhbGVuZGFyIGlzbid0IHVubGFiZWxsZWQuXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbWV0ZXI6IGVkaXRpbmdJZGVudGlmaWVkLnBhcmFtZXRlcixcbiAgICAgICAgICB0ZXh0OiBpZGVudGlmaWVkUGFyYW1MYWJlbChlZGl0aW5nSWRlbnRpZmllZC5wYXJhbWV0ZXIpLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIGNvbnN0IGRyb3Bkb3duQWN0aXZlUGlsbCA9IHMuZHJvcGRvd25TdWdnZXN0aW9uID8/IGRyb3Bkb3duUGlsbCA/PyBhY3RpdmVTdWdnZXN0aW9uO1xuICBjb25zdCBkcm9wZG93blBpbGxzID0gZHJvcGRvd25QaWxsID8gW2Ryb3Bkb3duUGlsbF0gOiBzLmFjdGlvbmFibGVTdWdnZXN0aW9ucztcbiAgcmV0dXJuIHtcbiAgICBzdWdnZXN0aW9uczogZHJvcGRvd25BY3RpdmVQaWxsID8gW3sgLi4uZHJvcGRvd25BY3RpdmVQaWxsLCBvcHRpb25zOiBzLmRyb3Bkb3duT3B0aW9ucyB9XSA6IFtdLFxuICAgIGFjdGl2ZUluZGV4OiBzLmFjdGl2ZURyb3Bkb3duSW5kZXgsXG4gICAgaXNPcGVuOiBzLmlzRHJvcGRvd25PcGVuLFxuICAgIHBpbGxzOiBkcm9wZG93blBpbGxzLFxuICAgIGlzQWN0aXZlUGlsbFNlbGVjdGVkOiBzLmlzQWN0aXZlUGlsbFNlbGVjdGVkLFxuICAgIGlzTG9hZGluZzogY29tcHV0ZVVpTG9hZGluZyhzKSxcbiAgICBza2VsZXRvbkV4aXRpbmc6IHMuc2tlbGV0b25FeGl0aW5nLFxuICAgIGlzSW5wdXRFbXB0eTogcy50ZXh0LnRyaW0oKS5sZW5ndGggPT09IDAsXG4gICAgcHJvZHVjdHM6IHMucHJvZHVjdHMsXG4gICAgaXNFZGl0aW5nOiBCb29sZWFuKGVkaXRpbmdQYXJhbSkgfHwgQm9vbGVhbihlZGl0aW5nSWRlbnRpZmllZCksXG4gICAgaW5TZWxlY3Rpb25BbmltYXRpb246IHMuaW5TZWxlY3Rpb25BbmltYXRpb24sXG4gICAgLy8gRGF0ZXBpY2tlci4gYHMuZmlsdGVyZWRPcHRpb25zYCBhYm92ZSBhbHJlYWR5IGNhcnJpZXMgdGhlIHZpc2libGVcbiAgICAvLyBtb250aCdzIGNlbGxzIHJhdGhlciB0aGFuIHRoZSBzdWdnZXN0aW9uJ3Mgb3duIG9wdGlvbnMgd2hlbiB0aGlzIGlzXG4gICAgLy8gXCJkYXRlXCIg4oCUIHRoZSBjb3JlIHN3YXBwZWQgdGhlbSBpbiBpdHMgZGVyaXZlIGxheWVyLCBzbyB0aGUgZHJvcGRvd24gb25seVxuICAgIC8vIGhhcyB0byBrbm93IHdoaWNoIGJvZHkgdG8gZHJhdy5cbiAgICBmb3JtYXRUeXBlOiBzLmFjdGl2ZUZvcm1hdFR5cGUsXG4gICAgZGF0ZVZpZXc6IHMuZGF0ZVZpZXcsXG4gICAgc2VsZWN0ZWREYXRlSXNvOiBkYXRlU2VsZWN0aW9uLnNlbGVjdGVkSXNvLFxuICAgIHNlbGVjdGVkRGF0ZVJhbmdlOiBkYXRlU2VsZWN0aW9uLnNlbGVjdGVkUmFuZ2UsXG4gICAgZGF0ZVJhbmdlU3RhcnQ6IGRhdGVTZWxlY3Rpb24ucmFuZ2VTdGFydCxcbiAgICBvcHRpb25zUG9zaXRpb24sXG4gIH07XG59XG4iXX0=
|
|
@@ -32,7 +32,7 @@ export class PillListComponent {
|
|
|
32
32
|
this.selectPill = new EventEmitter();
|
|
33
33
|
/** Fallback widths when loading with zero cached pills (matches React). */
|
|
34
34
|
this.fallbackSkeletonWidths = [125, 69];
|
|
35
|
-
this.trackByType = (_, pill) => pill.
|
|
35
|
+
this.trackByType = (_, pill) => pill.parameter;
|
|
36
36
|
this.trackByWidth = (_, w) => w;
|
|
37
37
|
}
|
|
38
38
|
/** The active pill is "selected" only when `activeSelected` is set. */
|
|
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
81
81
|
}], selectPill: [{
|
|
82
82
|
type: Output
|
|
83
83
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3BpbGwtbGlzdC9waWxsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZCOzs7Ozs7O0dBT0c7QUFVSCxNQUFNLE9BQU8saUJBQWlCO0lBVDlCO1FBVVcsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qjs7Ozs7V0FLRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekI7Ozs7O1dBS0c7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUViLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTNELDJFQUEyRTtRQUNsRSwyQkFBc0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQW1CNUMsZ0JBQVcsR0FBRyxDQUFDLENBQVMsRUFBRSxJQUFnQixFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RFLGlCQUFZLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FXcEQ7SUE3QkMsdUVBQXVFO0lBQ3ZFLFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFDakQsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUTtRQUNyQyxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPO1FBQ3BDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTztJQUNyQixDQUFDO0lBS0QsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLDhEQUE4RDtRQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7K0dBcERVLGlCQUFpQjttR0FBakIsaUJBQWlCLDBQQzVCOUIsMm9DQW9DQSxtc0NEZFksWUFBWTs0RkFNWCxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUs1QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRWEsVUFBVTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IFN1Z2dlc3Rpb24gfSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBwaWxsIGxpc3QgdXNlZCBieSBib3RoIHRoZSBkcm9wZG93biBhbmQgVGllciAxJ3MgaW5saW5lIHBpbGxiYXIuXG4gKiBNaXJyb3JzIGBwYWNrYWdlcy9yZWFjdC9zcmMvY29tcG9uZW50cy9QaWxsTGlzdC50c3hgIG9uZS1mb3Itb25lIOKAlCBpbmNsdWRpbmdcbiAqIHRoZSBwZXItaW5kZXggb3BhY2l0eSByYW1wICgxIC8gMC43IC8gMC40IC8gMC4yKSBhbmQgdGhlIHNrZWxldG9uLWxvYWRpbmdcbiAqIGZhbGxiYWNrIHRoYXQgcHJlc2VydmVzIGxheW91dCB3aGlsZSB0aGUgbmV4dCBmZXRjaCBpcyBpbiBmbGlnaHQuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtcGlsbC1saXN0XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9waWxsLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3BpbGwtbGlzdC5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBQaWxsTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBpbGxzOiBTdWdnZXN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlUGlsbEluZGV4ID0gMDtcbiAgQElucHV0KCkgcm91bmRlZCA9IGZhbHNlO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBwaWxscyBiZWNvbWUgbm9uLWludGVyYWN0aXZlIHNoaW1tZXJpbmcgc2tlbGV0b25zLiBSZWFsIHBpbGxzXG4gICAqICh3aXRoIHRoZWlyIHRleHQpIGFyZSByZW5kZXJlZCB3aGVuIHByb3ZpZGVkIHNvIHdpZHRocy9wb3NpdGlvbnMgbWF0Y2hcbiAgICogdGhlIHByZXZpb3VzIHN0YXRlOyB3aXRoIG5vIHBpbGxzLCBmaXhlZC13aWR0aCBmYWxsYmFjayBwbGFjZWhvbGRlcnMgYXJlXG4gICAqIHJlbmRlcmVkIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY3RpdmUgKGxlYWRpbmcpIHBpbGwgc2hvdWxkIHJlbmRlciBzZWxlY3RlZCAoZnVsbCBvcGFjaXR5KVxuICAgKiByYXRoZXIgdGhhbiBpdHMgcG9zaXRpb25hbCBgZmlyc3RgIHRpZXIuIEF1dG8gdHJpZ2dlciDih5IgdHJ1ZSB3aGlsZSBhXG4gICAqIGRyb3Bkb3duIG9wdGlvbiBpcyBoaWdobGlnaHRlZDsgbWFudWFsIHRyaWdnZXIg4oeSIHRydWUgYWZ0ZXIgdGhlIHVzZXIgdGFwc1xuICAgKiB0aGUgcGlsbC4gU2VlIGBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIuaXNBY3RpdmVQaWxsU2VsZWN0ZWQkYC5cbiAgICovXG4gIEBJbnB1dCgpIGFjdGl2ZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdFBpbGwgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKiogRmFsbGJhY2sgd2lkdGhzIHdoZW4gbG9hZGluZyB3aXRoIHplcm8gY2FjaGVkIHBpbGxzIChtYXRjaGVzIFJlYWN0KS4gKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tTa2VsZXRvbldpZHRocyA9IFsxMjUsIDY5XTtcblxuICAvKiogVGhlIGFjdGl2ZSBwaWxsIGlzIFwic2VsZWN0ZWRcIiBvbmx5IHdoZW4gYGFjdGl2ZVNlbGVjdGVkYCBpcyBzZXQuICovXG4gIGlzU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZVNlbGVjdGVkICYmIGluZGV4ID09PSB0aGlzLmFjdGl2ZVBpbGxJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGFjaXR5IHBlciBwaWxsIHN0YXRlIOKAlCBtaXJyb3JzIFBpbGxMaXN0LnRzeCBgUElMTF9PUEFDSVRZYC4gVGhlIHNlbGVjdGVkXG4gICAqIHBpbGwgaXMgZnVsbCBvcGFjaXR5OyBvdGhlcndpc2UgcGlsbHMgdGFrZSBhIHBvc2l0aW9uYWwgdGllciAoZmlyc3QgLyBuZXh0XG4gICAqIC8gbGFzdCkuXG4gICAqL1xuICBwaWxsT3BhY2l0eShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGluZGV4KSkgcmV0dXJuIDE7IC8vIFNlbGVjdGVkXG4gICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gMC43OyAvLyBGaXJzdFxuICAgIGlmIChpbmRleCA9PT0gMSkgcmV0dXJuIDAuNDsgLy8gTmV4dFxuICAgIHJldHVybiAwLjI7IC8vIExhc3RcbiAgfVxuXG4gIHRyYWNrQnlUeXBlID0gKF86IG51bWJlciwgcGlsbDogU3VnZ2VzdGlvbik6IHN0cmluZyA9PiBwaWxsLnBhcmFtZXRlcjtcbiAgdHJhY2tCeVdpZHRoID0gKF86IG51bWJlciwgdzogbnVtYmVyKTogbnVtYmVyID0+IHc7XG5cbiAgb25QaWxsQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdFBpbGwuZW1pdChpbmRleCk7XG4gIH1cblxuICBvblBpbGxNb3VzZURvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gUHJldmVudCB0aGUgZWRpdG9yIGZyb20gbG9zaW5nIGZvY3VzIHdoZW4gYSBwaWxsIGlzIHRhcHBlZC5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZyAmJiBwaWxscy5sZW5ndGggPT09IDA7IGVsc2UgcmVhbFBpbGxzXCI+XG4gIDxzcGFuIGNsYXNzPVwiYWlhLXBpbGwtbGlzdFwiIGRhdGEtYWlhLXBpbGwtbGlzdC1sb2FkaW5nPVwiXCI+XG4gICAgPHNwYW5cbiAgICAgICpuZ0Zvcj1cImxldCB3IG9mIGZhbGxiYWNrU2tlbGV0b25XaWR0aHM7IHRyYWNrQnk6IHRyYWNrQnlXaWR0aDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBkYXRhLWFpYS1waWxsLXNrZWxldG9uPVwiXCJcbiAgICAgIGNsYXNzPVwiYWlhLXBpbGwgYWlhLXBpbGwtc2tlbGV0b25cIlxuICAgICAgW2NsYXNzLmFpYS1waWxsLXJvdW5kZWRdPVwicm91bmRlZFwiXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwid1wiXG4gICAgICBbc3R5bGUub3BhY2l0eV09XCJwaWxsT3BhY2l0eShpKVwiXG4gICAgPjwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcmVhbFBpbGxzPlxuICA8c3BhblxuICAgIGNsYXNzPVwiYWlhLXBpbGwtbGlzdFwiXG4gICAgW2F0dHIuZGF0YS1haWEtcGlsbC1saXN0LWxvYWRpbmddPVwibG9hZGluZyA/ICcnIDogbnVsbFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcGlsbCBvZiBwaWxsczsgdHJhY2tCeTogdHJhY2tCeVR5cGU7IGxldCBpID0gaW5kZXhcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBkYXRhLWFpYS1waWxsPVwiXCJcbiAgICAgIFthdHRyLmRhdGEtYWlhLWxvYWRpbmddPVwibG9hZGluZyA/ICcnIDogbnVsbFwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGNsYXNzPVwiYWlhLXBpbGxcIlxuICAgICAgW2NsYXNzLmFpYS1waWxsLXJvdW5kZWRdPVwicm91bmRlZFwiXG4gICAgICBbY2xhc3MuYWlhLXBpbGwtc2tlbGV0b25dPVwibG9hZGluZ1wiXG4gICAgICBbc3R5bGUub3BhY2l0eV09XCJwaWxsT3BhY2l0eShpKVwiXG4gICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAobW91c2Vkb3duKT1cIm9uUGlsbE1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCJvblBpbGxDbGljayhpKVwiXG4gICAgPlxuICAgICAge3sgcGlsbC50ZXh0IH19XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBUElDb25maWcsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQ3VzdG9tRmllbGRzUmVwb3J0LFxuICBEYXRlTW9udGhWaWV3LFxuICBEYXRlUmFuZ2UsXG4gIEZvcm1hdFR5cGUsXG4gIElkZW50aWZpZWRQYXJhbVN0YXRlLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBTZWdtZW50LFxuICBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgU3VnZ2VzdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uLXRpbWUgb3B0aW9ucyBmb3Ige0BsaW5rIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlcn0uXG4gKlxuICogTWlycm9ycyB0aGUgcHJvcHMgdGhlIFJlYWN0IGB1c2VBSUF1dG9jb21wbGV0ZSgpYCBob29rIGFjY2VwdHMsIG1pbnVzIHRoZVxuICogZmllbGRzIHRoYXQgb25seSBtYWtlIHNlbnNlIGZvciBhIFJlYWN0IGNvbXBvbmVudCBzaGVsbCAoYGNvbHVtbnNgIGlzIGhlcmU7XG4gKiBgYXV0b0ZvY3VzYCwgYGNsYXNzTmFtZWAsIGBwaWxsUGxhY2VtZW50YCwgZXRjLiBsaXZlIG9uIHRoZSBUaWVyIDFcbiAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50KS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyB7XG4gIC8qKiBSdW50aW1lIEFQSSBjb25maWd1cmF0aW9uIChhcGlLZXksIGVuZHBvaW50LCBldGMuKS4gKi9cbiAgYXBpQ29uZmlnPzogQVBJQ29uZmlnO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBjb250ZXh0LiBJbmNsdWRlIHdoYXRldmVyIHlvdSBrbm93IGFib3V0IHRoZSB1c2VyIOKAlCBhXG4gICAqIHByb2ZpbGUsIHByZWZlcmVuY2VzLCB3b3Jrc3BhY2UsIGFueXRoaW5nIOKAlCB0byBwZXJzb25hbGl6ZSBzdWdnZXN0ZWRcbiAgICogcGFyYW1ldGVycyBhbmQgb3B0aW9ucyB0byB0aGVtLlxuICAgKi9cbiAgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIFN0YWJsZSBpZCBmb3IgdGhpcyB2aXNpdG9yLCBrZXB0IGJ5IHRoZSBob3N0IGFjcm9zcyBwYWdlIGxvYWRzLiBSaWRlcyBvblxuICAgKiB0ZWxlbWV0cnkgZXZlbnRzIHNvIHNlYXJjaGVzIGNhbiBiZSBqb2luZWQgdG8gd2hhdCB0aGUgdmlzaXRvciBkb2VzXG4gICAqIGFmdGVyd2FyZHMuIE11c3QgYmUgYSBVVUlEIHY0OyBvbWl0IHRvIHNlbmQgbm9uZS4gQSBmdW5jdGlvbiBpcyBjYWxsZWRcbiAgICogb25seSBvbmNlIHRoZSBzZXJ2ZXIgaGFzIGZ1bm5lbCB0ZWxlbWV0cnkgb24uXG4gICAqL1xuICB2aXNpdG9ySWQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgLyoqIFBlci1zdWdnZXN0aW9uLXR5cGUgY2xpZW50LXNpZGUgb3B0aW9uIG92ZXJyaWRlcy4gKi9cbiAgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICAvKiogV2hlbiB0cnVlLCBjb21wbGV0ZWQgcGFyYW1zJyBsaXRlcmFsIHRleHQgaXMgb21pdHRlZCBmcm9tIEFQSSByZXF1ZXN0cy4gKi9cbiAgbWFza0NvbXBsZXRlZFRleHQ/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGRyb3Bkb3duIGdyaWQuIERlZmF1bHQ6IDIuICovXG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZHJvcGRvd24gb3BlbnMgcmVsYXRpdmUgdG8gdGhlIGlucHV0LiBEZWZhdWx0OiBcImJlbG93XCIuXG4gICAqXG4gICAqIFJlYWQgYnkgdGhlIGtleWJvYXJkIGNvbnRyb2xsZXIgdG8gZGVjaWRlIHdoaWNoIHZlcnRpY2FsLWFycm93IGtleSBvcGVuc1xuICAgKiB0aGUgZHJvcGRvd24gZnJvbSB0aGUgaW5wdXQg4oCUIEFycm93RG93biB3aGVuIHRoZSBkcm9wZG93biBpcyBiZWxvdyxcbiAgICogQXJyb3dVcCB3aGVuIGl0J3MgYWJvdmUuXG4gICAqL1xuICBvcHRpb25zUG9zaXRpb24/OiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBhcHBlYXJzLiBcImF1dG9cIiAoZGVmYXVsdCkgc2hvd3Mgd2hlbiBvcHRpb25zIGFyZVxuICAgKiBhdmFpbGFibGU7IFwibWFudWFsXCIgc2hvd3Mgb25seSBvbiBwaWxsIHRhcDsgXCJoaWRkZW5cIiBuZXZlciBzaG93cy5cbiAgICovXG4gIGRyb3Bkb3duVHJpZ2dlcj86IFwiYXV0b1wiIHwgXCJtYW51YWxcIiB8IFwiaGlkZGVuXCI7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gY2xvc2VzIGlmIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBub24tdGFwcGFibGUgb3B0aW9ucyByZW5kZXIgYWxvbmdzaWRlIHRhcHBhYmxlIG9uZXMuICovXG4gIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogU0RLIHN1cmZhY2UgaWRlbnRpZmllciDigJQgc2VudCBhcyBtZXRhLnNvdXJjZSBvbiBib3RoIC9hcGkvc3VnZ2VzdCBhbmRcbiAgICogdGVsZW1ldHJ5IGV2ZW50cy4gU2V0IGF1dG9tYXRpY2FsbHkgdG8gXCJmdWxsLXNka1wiIGJ5IHRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQuIERlZmF1bHRzIHRvIFwiaGVhZGxlc3Mtc2RrXCIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc291cmNlPzogXCJmdWxsLXNka1wiIHwgXCJoZWFkbGVzcy1zZGtcIjtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgKEVudGVyIGtleSBvciBgc3VibWl0KClgIGFjdGlvbikuICovXG4gIG9uU3VibWl0PzogKHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBvblN1Ym1pdGAgZGVsaXZlcnMsIHNvIGEgY29uc3VtZXIgY2FuIG1pcnJvciB0aGUgcXVlcnkgYXMgaXQgaXMgYnVpbHRcbiAgICogKGEgbGl2ZSBwcmV2aWV3LCBhIGRyYWZ0LCBhbmFseXRpY3MpIHdpdGhvdXQgd2FpdGluZyBmb3Igc3VibWl0LlxuICAgKlxuICAgKiBGaXJlcyBvbmNlIHBlciByZXNwb25zZSB0aGF0IHdhcyBhcHBsaWVkLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgcmVxdWVzdFxuICAgKiBvbiBjb25zdHJ1Y3Rpb24gKGFuIGVtcHR5IHJlc3VsdCkuIERvZXMgbm90IGZpcmUgZm9yIGEgcmVxdWVzdCB0aGF0XG4gICAqIGZhaWxlZCwgd2FzIGFib3J0ZWQsIG9yIHdhcyBzdXBlcnNlZGVkIGJlZm9yZSBpdCByZXR1cm5lZCwgYW5kIG5vdGhpbmdcbiAgICogZmlyZXMgZm9yIGEga2V5c3Ryb2tlIHRoYXQgaGFzbid0IGJlZW4gc2VudCB5ZXQg4oCUIHJlYWQgYGdldFJlc3VsdCgpYCBmb3JcbiAgICogdGhlIGN1cnJlbnQgdmFsdWUgb24gZGVtYW5kLlxuICAgKi9cbiAgb25SZXN1bHQ/OiAocmVzdWx0OiBBdXRvY29tcGxldGVSZXN1bHQpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZldGNoIGZhaWxzLiAqL1xuICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgdGV4dCBjaGFuZ2VzIChjb250cm9sbGVkLW1vZGUgc2lnbmFsKS4gKi9cbiAgb25DaGFuZ2U/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gY29tcGxldGVkIHBhcmFtcyBjaGFuZ2UgKGNvbnRyb2xsZWQtbW9kZSBzaWduYWwpLiAqL1xuICBvblBhcmFtc0NoYW5nZT86IChwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy4gKi9cbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mIHByb2R1Y3RcbiAgICogY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCB3aGVuZXZlciBpdCBoYXMgcHJvZHVjdHMgdG8gc2hvdzogYnkgZGVmYXVsdFxuICAgKiB0aGUgaXRlbXMgdGhlIGAvc3VnZ2VzdGAgcmVzcG9uc2UgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZVxuICAgKiByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2Agc2VhcmNoLiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG5vIHN0cmlwXG4gICAqIGFuZCBydW4gbm8gY3VzdG9tIHNlYXJjaC5cbiAgICovXG4gIHNob3dQcm9kdWN0cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIGZvciB0aGUgcHJvZHVjdCBzdHJpcC4gT21pdCBpdCBhbmQgdGhlIHN0cmlwIHNob3dzIHRoZVxuICAgKiBpdGVtcyB0aGUgYC9zdWdnZXN0YCByZXNwb25zZSBpdHNlbGYgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIHdpdGhcbiAgICogbm8gZXh0cmEgcmVxdWVzdC4gU2V0IGl0IGFuZCB0aGUgZHJvcGRvd24gaXMgZmVkIGJ5IHRoZSBpbnRlZ3JhdGlvbidzIG93blxuICAgKiBzZWFyY2ggZW5kcG9pbnQgb24gdGhlIFNESydzIGV4aXN0aW5nIGZldGNoIGNhZGVuY2UgaW5zdGVhZDsgdGhlIHNlcnZlcidzXG4gICAqIGl0ZW1zIGFyZSB0aGVuIG5vdCByZW5kZXJlZC5cbiAgICovXG4gIHByb2R1Y3RzPzogUHJvZHVjdHNDb25maWc7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBhY3RpdmF0ZXMgYSBwcm9kdWN0IGNhcmQuIFRoZSBTREsgZG9lcyBub3QgbmF2aWdhdGUg4oCUXG4gICAqIHRoZSBpbnRlZ3JhdGlvbiBkZWNpZGVzIHdoYXQgYSBzZWxlY3Rpb24gbWVhbnMuIE1vZGlmaWVyIC8gbWlkZGxlIGNsaWNrc1xuICAgKiBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciAoY21kLWNsaWNrIHN0aWxsIG9wZW5zIGEgdGFiKSBhbmQgZG9uJ3QgZmlyZSB0aGlzLlxuICAgKi9cbiAgb25Qcm9kdWN0U2VsZWN0PzogKHByb2R1Y3Q6IFByb2R1Y3QpID0+IHZvaWQ7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgdGV4dCB2YWx1ZS4gKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgY29tcGxldGVkUGFyYW1zPzogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogQ2FyZXQtc2V0IGNhbGxiYWNrLiBJbnZva2VkIGJ5IHRoZSBjb3JlIHdoZW4gcmUtZWRpdCAvIEJhY2tzcGFjZSBmbG93c1xuICAgKiBuZWVkIHRoZSBlZGl0b3IgY2FyZXQgcGFya2VkIGF0IGEgc3BlY2lmaWMgcGxhaW4tdGV4dCBvZmZzZXQuIFRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQgd2lyZXMgdGhpcyBmcm9tIGl0cyBlZGl0b3IgaG9zdDsgaGVhZGxlc3NcbiAgICogY29uc3VtZXJzIGNhbiBsZWF2ZSBpdCB1bnNldC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXRDdXJzb3I/OiAob2Zmc2V0OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3Vic2V0IG9mIHtAbGluayBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zfSB0aGF0IGNhbiBiZSBjaGFuZ2VkIGFmdGVyXG4gKiBjb25zdHJ1Y3Rpb24uIEV4Y2x1ZGVzIGV2ZW50IGNhbGxiYWNrcyAodGhvc2UgYXJlIHJlZ2lzdGVyZWQgb25jZSBhdFxuICogY29uc3RydWN0aW9uIOKAlCBzZWUgdmFuaWxsYSBgQ29yZVVwZGF0ZU9wdGlvbnNgKS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSA9IFBhcnRpYWw8XG4gIE9taXQ8XG4gICAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyxcbiAgICB8IFwib25TdWJtaXRcIlxuICAgIHwgXCJvblJlc3VsdFwiXG4gICAgfCBcIm9uRXJyb3JcIlxuICAgIHwgXCJvbkNoYW5nZVwiXG4gICAgfCBcIm9uUGFyYW1zQ2hhbmdlXCJcbiAgICB8IFwib25Gb2N1c1wiXG4gICAgfCBcIm9uQmx1clwiXG4gICAgfCBcIm9uUHJvZHVjdFNlbGVjdFwiXG4gICAgfCBcInNldEN1cnNvclwiXG4gID5cbj47XG5cbi8qKlxuICogU25hcHNob3Qgb2YgdGhlIGNvbnRyb2xsZXIncyByZWFjdGl2ZSBzdGF0ZS4gRWFjaCBmaWVsZCBpcyBhbHNvIGV4cG9zZWQgYXNcbiAqIGEgc3RhbmQtYWxvbmUgb2JzZXJ2YWJsZSBvbiB0aGUgY29udHJvbGxlciAoZS5nLiBgY29udHJvbGxlci50ZXh0JGApLlxuICpcbiAqIGBzdWdnZXN0aW9uUGlsbHNgIG1pcnJvcnMgUmVhY3QncyBgc3VnZ2VzdGlvblBpbGxzYCDigJQgdGhlIGFjdGlvbmFibGVcbiAqIHN1YnNldCBvZiBgc3VnZ2VzdGlvbnNgIHJlYWR5IGZvciBwaWxsIHJlbmRlcmluZy4gYGlzTG9hZGluZ2AgaXMgdGhlXG4gKiBVSS12aXNpYmxlIGxvYWRpbmcgZmxhZyAoc3VwcHJlc3NlZCBkdXJpbmcgdGhlIHBvc3Qtc2VsZWN0IHByZXNzXG4gKiBhbmltYXRpb24gYW5kIGR1cmluZyByZS1lZGl0LCB3aGVyZSBjYWNoZWQgb3B0aW9ucyBzdGF5IHZpc2libGUpLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgY29tcGxldGVkUGFyYW1zOiBDb21wbGV0ZWRQYXJhbVN0YXRlW107XG4gIC8qKlxuICAgKiBTdWdnZXN0aW9ucyB0aGUgdXNlciBkaXNtaXNzZWQgd2l0aCB0aGUgc2tpcCBrZXkgKOKGkikuIE5vdGhpbmcgcmVuZGVyc1xuICAgKiB0aGVtIOKAlCBwYXNzIHRoZW0gdG8gYGJ1aWxkU3VibWl0UmVzdWx0YCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYXJyaWVzXG4gICAqIHRoZSBzYW1lIGB0ZXh0OiBcInNraXBwZWRcImAgZW50cmllcyB0aGUgU0RLJ3Mgb3duIHJlcXVlc3RzIGRvLlxuICAgKi9cbiAgc2tpcHBlZFBhcmFtczogU2tpcHBlZFBhcmFtU3RhdGVbXTtcbiAgLyoqXG4gICAqIFBhcmFtcyB0aGUgc2VydmVyIGlkZW50aWZpZWQgaW4gdGhlIHVzZXIncyBvd24gd29yZHMuIEFscmVhZHkgcmVuZGVyZWRcbiAgICogdGhyb3VnaCBgc2VnbWVudHNgOyBleHBvc2VkIHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgcmVwb3J0IHRoZSBzYW1lIGBpZGVudGlmaWVkX3BhcmFtc2AgdGhlIFNESydzXG4gICAqIG93biByZXN1bHRzIGNhcnJ5LlxuICAgKi9cbiAgaWRlbnRpZmllZFBhcmFtczogSWRlbnRpZmllZFBhcmFtU3RhdGVbXTtcbiAgc3VnZ2VzdGlvblBpbGxzOiBTdWdnZXN0aW9uW107XG4gIHNlZ21lbnRzOiBTZWdtZW50W107XG4gIG5ld1BhcmFtSWQ6IHN0cmluZyB8IG51bGw7XG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKlxuICAgKiBXaGF0IHRoZSBwcm9kdWN0IHN0cmlwIHNob3dzOiB0aGUgaXRlbXMgdGhlIGxhdGVzdCBgL3N1Z2dlc3RgIHJlc3BvbnNlXG4gICAqIHJlcG9ydGVkIGFzIG1hdGNoaW5nIHRoZSBxdWVyeSwgb3IgdGhlIHJlc3VsdHMgb2YgYSBjdXN0b20gYHByb2R1Y3RzYFxuICAgKiBzZWFyY2guIEFscmVhZHkgZm9sZGVkIGludG8gdGhlIGRyb3Bkb3duIHNuYXBzaG90IOKAlCByZWFkIGl0IGhlcmUgb25seVxuICAgKiB3aGVuIHJlbmRlcmluZyB5b3VyIG93biBzdHJpcC5cbiAgICovXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBncm91bmRpbmcgcmVwb3J0IHRoZSBsYXRlc3QgcmVzcG9uc2UgY2FycmllZCwgb3IgbnVsbCB3aGVuIGl0XG4gICAqIGNhcnJpZWQgbm9uZTogd2hpY2ggb2YgdGhlIHF1ZXJ5J3MgY29uc3RyYWludHMgdGhlIGNhdGFsb2cgYXBwbGllZCwgd2hpY2hcbiAgICogaXQgZHJvcHBlZCwgYW5kIGhvdyBtYW55IGl0ZW1zIChhbmQgd2hpY2gpIHRoZSBhcHBsaWVkIG9uZXMgbGVmdFxuICAgKiBzdGFuZGluZy4gTnVsbCBpcyBcIm5vIG5ld3NcIiwgbm90IGFuIGVtcHR5IGNhdGFsb2cuXG4gICAqL1xuICBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc1JlcG9ydCB8IG51bGw7XG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNSZWFkeTogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Ryb3Bkb3duT3BlbjogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG4gIGVycm9yOiBFcnJvciB8IG51bGw7XG4gIGVkaXRpbmdQYXJhbTogQ29tcGxldGVkUGFyYW1TdGF0ZSB8IG51bGw7XG4gIC8qKlxuICAgKiBTZXQgd2hpbGUgdGhlIHVzZXIgaXMgcGlja2luZyBhIGRhdGUgZm9yIGEgc3BhbiB0aGUgc2VydmVyIGlkZW50aWZpZWQgYXNcbiAgICogb25lIOKAlCBcInNlcHRlbWJlciA1dGhcIiBpbiBcImZseSB0byB2ZWdhcyBvbiBzZXB0ZW1iZXIgNXRoXCIuIE51bGwgb3RoZXJ3aXNlLlxuICAgKi9cbiAgZWRpdGluZ0lkZW50aWZpZWQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBhbmNob3I6IG51bWJlcjtcbiAgICB0YWlsOiBudW1iZXI7XG4gICAgLyoqIFRoZSBkYXRlIHRoZSBzcGFuIHdhcyByZWFkIGFzLCBvciBhIHJhbmdlJ3Mgc3RhcnQuIE51bGwgd2hlbiBpdCBjb3VsZG4ndCBiZSByZWFkLiAqL1xuICAgIGlzbzogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogVGhlIG90aGVyIGVuZCwgd2hlbiB0aGUgc3BhbiByZWFkcyBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIGFzIG9uZSBkYXkuICovXG4gICAgaXNvRW5kOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBXaGV0aGVyIHRoYXQgc3BhbiBpcyBhbnN3ZXJlZCBieSBhIGNhbGVuZGFyLCBvciBhIGNhbGVuZGFyIGluIHR3byB0YXBzLiAqL1xuICAgIGZvcm1hdDogRm9ybWF0VHlwZTtcbiAgfSB8IG51bGw7XG4gIGVkaXRpbmdBbmNob3I6IG51bWJlciB8IG51bGw7XG4gIGNhcmV0T2Zmc2V0OiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIENvbXBvc2l0ZSBzdGF0ZSBzaGFwZSBmb3IgdGhlIGRyb3Bkb3duIHZpZXcgbGF5ZXIuIFRpZXIgMiBjb25zdW1lcnMgYmluZFxuICogdGhlIGRyb3Bkb3duIGNvbXBvbmVudCB0byB0aGlzIHNuYXBzaG90OyBUaWVyIDEgdXNlcyB0aGUgc2FtZSBzaGFwZVxuICogaW50ZXJuYWxseS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlIHtcbiAgLyoqIEFjdGl2ZSBzdWdnZXN0aW9uICsgZmlsdGVyZWQgb3B0aW9ucyB0byByZW5kZXIgaW4gdGhlIGdyaWQuICovXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4LiAtMSB3aGVuIG5vbmUuICovXG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbiAgaXNPcGVuOiBib29sZWFuO1xuICAvKiogUGlsbHMgdG8gcmVuZGVyIGluIHRoZSBkcm9wZG93bidzIHBpbGxiYXIgKHJlLWVkaXQgcGlsbCBvciBhbGwgc3VnZ2VzdGlvbiBwaWxscykuICovXG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIC8qKiBXaGV0aGVyIHRoZSBhY3RpdmUgcGlsbCByZW5kZXJzIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpIHZzLiB0aGUgYGZpcnN0YCB0aWVyLiAqL1xuICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFRydWUgd2hlbiB0aGUgZHJvcGRvd24gc2hvdWxkIHJlbmRlciBpdHMgbG9hZGluZyBza2VsZXRvbi4gKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaGFzIG5vIHR5cGVkIHRleHQg4oCUIHRoZSBzb2xlIHN0YXRlIHRoYXQgc3VyZmFjZXMgXCJ0YWIgdG8gc2VsZWN0XCIgaW4gdGhlIGZvb3RlciBoaW50LiAqL1xuICBpc0lucHV0RW1wdHk6IGJvb2xlYW47XG4gIC8qKiBQcm9kdWN0IGNhcmRzIHRvIHJlbmRlciBiZWxvdyB0aGUgb3B0aW9ucyBncmlkLiBFbXB0eSByZW5kZXJzIG5vIHN0cmlwLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSBhIGNvbXBsZXRlZCBwYXJhbSBpcyBiZWluZyByZS1lZGl0ZWQuIFRoZSBwaWxsYmFyIHRoZW4gc2hvd3NcbiAgICogdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCDigJQgbm90IHNraXBwYWJsZSDigJQgc28gdGhlIHNraXAgYnV0dG9uIGhpZGVzLlxuICAgKiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBub3QgZWRpdGluZykgc28gZXhpc3RpbmcgY29uc3VtZXIgY29kZSBjb25zdHJ1Y3RpbmdcbiAgICogdGhpcyBzdGF0ZSDigJQgdGVzdCBmaXh0dXJlcywgZmFrZSBjb250cm9sbGVycyDigJQga2VlcHMgY29tcGlsaW5nIGFjcm9zcyB0aGVcbiAgICogbWlub3IgYnVtcCB0aGF0IGludHJvZHVjZWQgaXQuXG4gICAqL1xuICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBmb3IgdGhlIH4xNzBtcyB3aW5kb3cgYWZ0ZXIgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB3aGlsZSB0aGUgYW5zd2VyZWRcbiAgICogc3VnZ2VzdGlvbiBhbmltYXRlcyBvdXQuIGBpc0xvYWRpbmdgIGlzIGRlbGliZXJhdGVseSBzdXBwcmVzc2VkIGluIHRoYXRcbiAgICogd2luZG93LCBidXQgdGhlIGNvcmUncyBgc2tpcEFjdGl2ZVBpbGwoKWAgbm8tb3BzIGluIGl0IOKAlCB0aGUgc2tpcCBidXR0b25cbiAgICogcmVuZGVycyBkaXNhYmxlZCBvZmYgdGhpcyBmbGFnIGluc3RlYWQgb2Ygc3dhbGxvd2luZyBjbGlja3Mgc2lsZW50bHkuXG4gICAqIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGZhbHNlKSBmb3IgdGhlIHNhbWUgY29tcGlsZS1jb21wYXQgcmVhc29uIGFzXG4gICAqIGBpc0VkaXRpbmdgLlxuICAgKi9cbiAgaW5TZWxlY3Rpb25BbmltYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSB0aGUgbG9hZGluZyBza2VsZXRvbiBmYWRlcyBvdXQgYmVmb3JlIHRoZSByZXNwb25zZSdzIG9wdGlvbnNcbiAgICogcmVwbGFjZSBpdC4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgZmFsc2UpIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdFxuICAgKiByZWFzb24gYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBza2VsZXRvbkV4aXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlcmUgdGhlIGRyb3Bkb3duIG9wZW5zIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCDigJQgbWlycm9ycyB0aGUgY29udHJvbGxlcidzXG4gICAqIGBvcHRpb25zUG9zaXRpb25gIG9wdGlvbi4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCByZWFkcyBpdCBmcm9tIGhlcmUsIHNvXG4gICAqIHBsYWNlbWVudCBpcyBjb25maWd1cmVkIG9uY2Ugb24gdGhlIGNvbnRyb2xsZXIgKG5vIHNlcGFyYXRlIGlucHV0IHRvIHN5bmMpLlxuICAgKi9cbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBIb3cgdGhlIGFjdGl2ZSBwaWxsIGlzIGFuc3dlcmVkLiBgXCJkYXRlXCJgIGFuZCBgXCJkYXRlLXJhbmdlXCJgIHJlbmRlciBhXG4gICAqIGNhbGVuZGFyIGluIHBsYWNlIG9mIHRoZSBvcHRpb25zIGdyaWQsIGFuZCBgc3VnZ2VzdGlvbnNbMF0ub3B0aW9uc2AgdGhlblxuICAgKiBjYXJyaWVzIHRoYXQgbW9udGgncyBjZWxscyByYXRoZXIgdGhhbiB0aGUgcGFyYW1ldGVyJ3Mgb3duIG9wdGlvbnMg4oCUIHRoZVxuICAgKiBjb3JlIHN3YXBzIHRoZW0gYmVmb3JlIHRoZXkgcmVhY2ggaGVyZS4gQSBgXCJkYXRlLXJhbmdlXCJgIHBhcmFtZXRlciBpc1xuICAgKiBhbnN3ZXJlZCBieSB0d28gdGFwcyBvZiB0aGF0IGNhbGVuZGFyLCBhIHN0YXJ0IGFuZCBhbiBlbmQsIGNvbW1pdHRlZCBhcyBvbmVcbiAgICogc3Bhbi4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgYFwib3B0aW9uc1wiYCkgZm9yIHRoZSBzYW1lIGNvbXBpbGUtY29tcGF0IHJlYXNvblxuICAgKiBhcyBgaXNFZGl0aW5nYC5cbiAgICovXG4gIGZvcm1hdFR5cGU/OiBGb3JtYXRUeXBlO1xuICAvKiogVGhlIG1vbnRoIHRoZSBjYWxlbmRhciBzaG93cy4gTnVsbC91bmRlZmluZWQgdW5sZXNzIGBmb3JtYXRUeXBlYCBpcyBhIGNhbGVuZGFyIG9uZS4gKi9cbiAgZGF0ZVZpZXc/OiBEYXRlTW9udGhWaWV3IHwgbnVsbDtcbiAgLyoqIGBZWVlZLU1NLUREYCBhbHJlYWR5IGhlbGQgYnkgdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCwgc28gaXRzIGNlbGwgcmVhZHMgYXMgdGhlIGN1cnJlbnQgYW5zd2VyLiAqL1xuICBzZWxlY3RlZERhdGVJc28/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogQm90aCBlbmRzIG9mIGEgcmFuZ2UgcGFyYW0gYmVpbmcgcmUtZWRpdGVkLCBzbyBib3RoIGNlbGxzIHJlYWQgYXMgdGhlIGN1cnJlbnQgYW5zd2VyLiAqL1xuICBzZWxlY3RlZERhdGVSYW5nZT86IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBUaGUgZmlyc3QgZW5kIG9mIGEgcmFuZ2UgcGlja2VkIHNvIGZhciwgd2hpbGUgdGhlIHVzZXIgY2hvb3NlcyB0aGUgc2Vjb25kLiAqL1xuICBkYXRlUmFuZ2VTdGFydD86IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBUElDb25maWcsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQ3VzdG9tRmllbGRzUmVwb3J0LFxuICBEYXRlTW9udGhWaWV3LFxuICBEYXRlUmFuZ2UsXG4gIEZvcm1hdFR5cGUsXG4gIElkZW50aWZpZWRQYXJhbVN0YXRlLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBTZWdtZW50LFxuICBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgU3VnZ2VzdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uLXRpbWUgb3B0aW9ucyBmb3Ige0BsaW5rIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlcn0uXG4gKlxuICogTWlycm9ycyB0aGUgcHJvcHMgdGhlIFJlYWN0IGB1c2VBSUF1dG9jb21wbGV0ZSgpYCBob29rIGFjY2VwdHMsIG1pbnVzIHRoZVxuICogZmllbGRzIHRoYXQgb25seSBtYWtlIHNlbnNlIGZvciBhIFJlYWN0IGNvbXBvbmVudCBzaGVsbCAoYGNvbHVtbnNgIGlzIGhlcmU7XG4gKiBgYXV0b0ZvY3VzYCwgYGNsYXNzTmFtZWAsIGBwaWxsUGxhY2VtZW50YCwgZXRjLiBsaXZlIG9uIHRoZSBUaWVyIDFcbiAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50KS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyB7XG4gIC8qKiBSdW50aW1lIEFQSSBjb25maWd1cmF0aW9uIChhcGlLZXksIGVuZHBvaW50LCBldGMuKS4gKi9cbiAgYXBpQ29uZmlnPzogQVBJQ29uZmlnO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBjb250ZXh0LiBJbmNsdWRlIHdoYXRldmVyIHlvdSBrbm93IGFib3V0IHRoZSB1c2VyIOKAlCBhXG4gICAqIHByb2ZpbGUsIHByZWZlcmVuY2VzLCB3b3Jrc3BhY2UsIGFueXRoaW5nIOKAlCB0byBwZXJzb25hbGl6ZSBzdWdnZXN0ZWRcbiAgICogcGFyYW1ldGVycyBhbmQgb3B0aW9ucyB0byB0aGVtLlxuICAgKi9cbiAgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIFN0YWJsZSBpZCBmb3IgdGhpcyB2aXNpdG9yLCBrZXB0IGJ5IHRoZSBob3N0IGFjcm9zcyBwYWdlIGxvYWRzLiBSaWRlcyBvblxuICAgKiB0ZWxlbWV0cnkgZXZlbnRzIHNvIHNlYXJjaGVzIGNhbiBiZSBqb2luZWQgdG8gd2hhdCB0aGUgdmlzaXRvciBkb2VzXG4gICAqIGFmdGVyd2FyZHMuIE11c3QgYmUgYSBVVUlEIHY0OyBvbWl0IHRvIHNlbmQgbm9uZS4gQSBmdW5jdGlvbiBpcyBjYWxsZWRcbiAgICogb25seSBvbmNlIHRoZSBzZXJ2ZXIgaGFzIGZ1bm5lbCB0ZWxlbWV0cnkgb24uXG4gICAqL1xuICB2aXNpdG9ySWQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgLyoqIFBlci1zdWdnZXN0aW9uLXR5cGUgY2xpZW50LXNpZGUgb3B0aW9uIG92ZXJyaWRlcy4gKi9cbiAgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICAvKiogV2hlbiB0cnVlLCBjb21wbGV0ZWQgcGFyYW1zJyBsaXRlcmFsIHRleHQgaXMgb21pdHRlZCBmcm9tIEFQSSByZXF1ZXN0cy4gKi9cbiAgbWFza0NvbXBsZXRlZFRleHQ/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGRyb3Bkb3duIGdyaWQuIERlZmF1bHQ6IDIuICovXG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZHJvcGRvd24gb3BlbnMgcmVsYXRpdmUgdG8gdGhlIGlucHV0LiBEZWZhdWx0OiBcImJlbG93XCIuXG4gICAqXG4gICAqIFJlYWQgYnkgdGhlIGtleWJvYXJkIGNvbnRyb2xsZXIgdG8gZGVjaWRlIHdoaWNoIHZlcnRpY2FsLWFycm93IGtleSBvcGVuc1xuICAgKiB0aGUgZHJvcGRvd24gZnJvbSB0aGUgaW5wdXQg4oCUIEFycm93RG93biB3aGVuIHRoZSBkcm9wZG93biBpcyBiZWxvdyxcbiAgICogQXJyb3dVcCB3aGVuIGl0J3MgYWJvdmUuXG4gICAqL1xuICBvcHRpb25zUG9zaXRpb24/OiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBhcHBlYXJzLiBcImF1dG9cIiAoZGVmYXVsdCkgc2hvd3Mgd2hlbiBvcHRpb25zIGFyZVxuICAgKiBhdmFpbGFibGU7IFwibWFudWFsXCIgc2hvd3Mgb25seSBvbiBwaWxsIHRhcDsgXCJoaWRkZW5cIiBuZXZlciBzaG93cy5cbiAgICovXG4gIGRyb3Bkb3duVHJpZ2dlcj86IFwiYXV0b1wiIHwgXCJtYW51YWxcIiB8IFwiaGlkZGVuXCI7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gY2xvc2VzIGlmIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBub24tdGFwcGFibGUgb3B0aW9ucyByZW5kZXIgYWxvbmdzaWRlIHRhcHBhYmxlIG9uZXMuICovXG4gIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogU0RLIHN1cmZhY2UgaWRlbnRpZmllciDigJQgc2VudCBhcyBtZXRhLnNvdXJjZSBvbiBib3RoIC9hcGkvc3VnZ2VzdCBhbmRcbiAgICogdGVsZW1ldHJ5IGV2ZW50cy4gU2V0IGF1dG9tYXRpY2FsbHkgdG8gXCJmdWxsLXNka1wiIGJ5IHRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQuIERlZmF1bHRzIHRvIFwiaGVhZGxlc3Mtc2RrXCIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc291cmNlPzogXCJmdWxsLXNka1wiIHwgXCJoZWFkbGVzcy1zZGtcIjtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgKEVudGVyIGtleSBvciBgc3VibWl0KClgIGFjdGlvbikuICovXG4gIG9uU3VibWl0PzogKHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBvblN1Ym1pdGAgZGVsaXZlcnMsIHNvIGEgY29uc3VtZXIgY2FuIG1pcnJvciB0aGUgcXVlcnkgYXMgaXQgaXMgYnVpbHRcbiAgICogKGEgbGl2ZSBwcmV2aWV3LCBhIGRyYWZ0LCBhbmFseXRpY3MpIHdpdGhvdXQgd2FpdGluZyBmb3Igc3VibWl0LlxuICAgKlxuICAgKiBGaXJlcyBvbmNlIHBlciByZXNwb25zZSB0aGF0IHdhcyBhcHBsaWVkLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgcmVxdWVzdFxuICAgKiBvbiBjb25zdHJ1Y3Rpb24gKGFuIGVtcHR5IHJlc3VsdCkuIERvZXMgbm90IGZpcmUgZm9yIGEgcmVxdWVzdCB0aGF0XG4gICAqIGZhaWxlZCwgd2FzIGFib3J0ZWQsIG9yIHdhcyBzdXBlcnNlZGVkIGJlZm9yZSBpdCByZXR1cm5lZCwgYW5kIG5vdGhpbmdcbiAgICogZmlyZXMgZm9yIGEga2V5c3Ryb2tlIHRoYXQgaGFzbid0IGJlZW4gc2VudCB5ZXQg4oCUIHJlYWQgYGdldFJlc3VsdCgpYCBmb3JcbiAgICogdGhlIGN1cnJlbnQgdmFsdWUgb24gZGVtYW5kLlxuICAgKi9cbiAgb25SZXN1bHQ/OiAocmVzdWx0OiBBdXRvY29tcGxldGVSZXN1bHQpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZldGNoIGZhaWxzLiAqL1xuICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgdGV4dCBjaGFuZ2VzIChjb250cm9sbGVkLW1vZGUgc2lnbmFsKS4gKi9cbiAgb25DaGFuZ2U/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gY29tcGxldGVkIHBhcmFtcyBjaGFuZ2UgKGNvbnRyb2xsZWQtbW9kZSBzaWduYWwpLiAqL1xuICBvblBhcmFtc0NoYW5nZT86IChwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy4gKi9cbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mIHByb2R1Y3RcbiAgICogY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCB3aGVuZXZlciBpdCBoYXMgcHJvZHVjdHMgdG8gc2hvdzogYnkgZGVmYXVsdFxuICAgKiB0aGUgaXRlbXMgdGhlIGAvc3VnZ2VzdGAgcmVzcG9uc2UgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZVxuICAgKiByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2Agc2VhcmNoLiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG5vIHN0cmlwXG4gICAqIGFuZCBydW4gbm8gY3VzdG9tIHNlYXJjaC5cbiAgICovXG4gIHNob3dQcm9kdWN0cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIGZvciB0aGUgcHJvZHVjdCBzdHJpcC4gT21pdCBpdCBhbmQgdGhlIHN0cmlwIHNob3dzIHRoZVxuICAgKiBpdGVtcyB0aGUgYC9zdWdnZXN0YCByZXNwb25zZSBpdHNlbGYgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIHdpdGhcbiAgICogbm8gZXh0cmEgcmVxdWVzdC4gU2V0IGl0IGFuZCB0aGUgZHJvcGRvd24gaXMgZmVkIGJ5IHRoZSBpbnRlZ3JhdGlvbidzIG93blxuICAgKiBzZWFyY2ggZW5kcG9pbnQgb24gdGhlIFNESydzIGV4aXN0aW5nIGZldGNoIGNhZGVuY2UgaW5zdGVhZDsgdGhlIHNlcnZlcidzXG4gICAqIGl0ZW1zIGFyZSB0aGVuIG5vdCByZW5kZXJlZC5cbiAgICovXG4gIHByb2R1Y3RzPzogUHJvZHVjdHNDb25maWc7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBhY3RpdmF0ZXMgYSBwcm9kdWN0IGNhcmQuIFRoZSBTREsgZG9lcyBub3QgbmF2aWdhdGUg4oCUXG4gICAqIHRoZSBpbnRlZ3JhdGlvbiBkZWNpZGVzIHdoYXQgYSBzZWxlY3Rpb24gbWVhbnMuIE1vZGlmaWVyIC8gbWlkZGxlIGNsaWNrc1xuICAgKiBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciAoY21kLWNsaWNrIHN0aWxsIG9wZW5zIGEgdGFiKSBhbmQgZG9uJ3QgZmlyZSB0aGlzLlxuICAgKi9cbiAgb25Qcm9kdWN0U2VsZWN0PzogKHByb2R1Y3Q6IFByb2R1Y3QpID0+IHZvaWQ7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgdGV4dCB2YWx1ZS4gKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgY29tcGxldGVkUGFyYW1zPzogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogQ2FyZXQtc2V0IGNhbGxiYWNrLiBJbnZva2VkIGJ5IHRoZSBjb3JlIHdoZW4gcmUtZWRpdCAvIEJhY2tzcGFjZSBmbG93c1xuICAgKiBuZWVkIHRoZSBlZGl0b3IgY2FyZXQgcGFya2VkIGF0IGEgc3BlY2lmaWMgcGxhaW4tdGV4dCBvZmZzZXQuIFRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQgd2lyZXMgdGhpcyBmcm9tIGl0cyBlZGl0b3IgaG9zdDsgaGVhZGxlc3NcbiAgICogY29uc3VtZXJzIGNhbiBsZWF2ZSBpdCB1bnNldC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXRDdXJzb3I/OiAob2Zmc2V0OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3Vic2V0IG9mIHtAbGluayBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zfSB0aGF0IGNhbiBiZSBjaGFuZ2VkIGFmdGVyXG4gKiBjb25zdHJ1Y3Rpb24uIEV4Y2x1ZGVzIGV2ZW50IGNhbGxiYWNrcyAodGhvc2UgYXJlIHJlZ2lzdGVyZWQgb25jZSBhdFxuICogY29uc3RydWN0aW9uIOKAlCBzZWUgdmFuaWxsYSBgQ29yZVVwZGF0ZU9wdGlvbnNgKS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSA9IFBhcnRpYWw8XG4gIE9taXQ8XG4gICAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyxcbiAgICB8IFwib25TdWJtaXRcIlxuICAgIHwgXCJvblJlc3VsdFwiXG4gICAgfCBcIm9uRXJyb3JcIlxuICAgIHwgXCJvbkNoYW5nZVwiXG4gICAgfCBcIm9uUGFyYW1zQ2hhbmdlXCJcbiAgICB8IFwib25Gb2N1c1wiXG4gICAgfCBcIm9uQmx1clwiXG4gICAgfCBcIm9uUHJvZHVjdFNlbGVjdFwiXG4gICAgfCBcInNldEN1cnNvclwiXG4gID5cbj47XG5cbi8qKlxuICogU25hcHNob3Qgb2YgdGhlIGNvbnRyb2xsZXIncyByZWFjdGl2ZSBzdGF0ZS4gRWFjaCBmaWVsZCBpcyBhbHNvIGV4cG9zZWQgYXNcbiAqIGEgc3RhbmQtYWxvbmUgb2JzZXJ2YWJsZSBvbiB0aGUgY29udHJvbGxlciAoZS5nLiBgY29udHJvbGxlci50ZXh0JGApLlxuICpcbiAqIGBzdWdnZXN0aW9uUGlsbHNgIG1pcnJvcnMgUmVhY3QncyBgc3VnZ2VzdGlvblBpbGxzYCDigJQgdGhlIGFjdGlvbmFibGVcbiAqIHN1YnNldCBvZiBgc3VnZ2VzdGlvbnNgIHJlYWR5IGZvciBwaWxsIHJlbmRlcmluZy4gYGlzTG9hZGluZ2AgaXMgdGhlXG4gKiBVSS12aXNpYmxlIGxvYWRpbmcgZmxhZyAoc3VwcHJlc3NlZCBkdXJpbmcgdGhlIHBvc3Qtc2VsZWN0IHByZXNzXG4gKiBhbmltYXRpb24gYW5kIGR1cmluZyByZS1lZGl0LCB3aGVyZSBjYWNoZWQgb3B0aW9ucyBzdGF5IHZpc2libGUpLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgY29tcGxldGVkUGFyYW1zOiBDb21wbGV0ZWRQYXJhbVN0YXRlW107XG4gIC8qKlxuICAgKiBTdWdnZXN0aW9ucyB0aGUgdXNlciBkaXNtaXNzZWQgd2l0aCB0aGUgc2tpcCBrZXkgKOKGkikuIE5vdGhpbmcgcmVuZGVyc1xuICAgKiB0aGVtIOKAlCBwYXNzIHRoZW0gdG8gYGJ1aWxkU3VibWl0UmVzdWx0YCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYXJyaWVzXG4gICAqIHRoZSBzYW1lIGB0ZXh0OiBcInNraXBwZWRcImAgZW50cmllcyB0aGUgU0RLJ3Mgb3duIHJlcXVlc3RzIGRvLlxuICAgKi9cbiAgc2tpcHBlZFBhcmFtczogU2tpcHBlZFBhcmFtU3RhdGVbXTtcbiAgLyoqXG4gICAqIFBhcmFtcyB0aGUgc2VydmVyIGlkZW50aWZpZWQgaW4gdGhlIHVzZXIncyBvd24gd29yZHMuIEFscmVhZHkgcmVuZGVyZWRcbiAgICogdGhyb3VnaCBgc2VnbWVudHNgOyBleHBvc2VkIHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgcmVwb3J0IHRoZSBzYW1lIGBpZGVudGlmaWVkX3BhcmFtc2AgdGhlIFNESydzXG4gICAqIG93biByZXN1bHRzIGNhcnJ5LlxuICAgKi9cbiAgaWRlbnRpZmllZFBhcmFtczogSWRlbnRpZmllZFBhcmFtU3RhdGVbXTtcbiAgc3VnZ2VzdGlvblBpbGxzOiBTdWdnZXN0aW9uW107XG4gIHNlZ21lbnRzOiBTZWdtZW50W107XG4gIG5ld1BhcmFtSWQ6IHN0cmluZyB8IG51bGw7XG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKlxuICAgKiBXaGF0IHRoZSBwcm9kdWN0IHN0cmlwIHNob3dzOiB0aGUgaXRlbXMgdGhlIGxhdGVzdCBgL3N1Z2dlc3RgIHJlc3BvbnNlXG4gICAqIHJlcG9ydGVkIGFzIG1hdGNoaW5nIHRoZSBxdWVyeSwgb3IgdGhlIHJlc3VsdHMgb2YgYSBjdXN0b20gYHByb2R1Y3RzYFxuICAgKiBzZWFyY2guIEFscmVhZHkgZm9sZGVkIGludG8gdGhlIGRyb3Bkb3duIHNuYXBzaG90IOKAlCByZWFkIGl0IGhlcmUgb25seVxuICAgKiB3aGVuIHJlbmRlcmluZyB5b3VyIG93biBzdHJpcC5cbiAgICovXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBncm91bmRpbmcgcmVwb3J0IHRoZSBsYXRlc3QgcmVzcG9uc2UgY2FycmllZCwgb3IgbnVsbCB3aGVuIGl0XG4gICAqIGNhcnJpZWQgbm9uZTogd2hpY2ggb2YgdGhlIHF1ZXJ5J3MgY29uc3RyYWludHMgdGhlIGNhdGFsb2cgYXBwbGllZCwgd2hpY2hcbiAgICogaXQgZHJvcHBlZCwgYW5kIGhvdyBtYW55IGl0ZW1zIChhbmQgd2hpY2gpIHRoZSBhcHBsaWVkIG9uZXMgbGVmdFxuICAgKiBzdGFuZGluZy4gTnVsbCBpcyBcIm5vIG5ld3NcIiwgbm90IGFuIGVtcHR5IGNhdGFsb2cuXG4gICAqL1xuICBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc1JlcG9ydCB8IG51bGw7XG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNSZWFkeTogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Ryb3Bkb3duT3BlbjogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG4gIGVycm9yOiBFcnJvciB8IG51bGw7XG4gIGVkaXRpbmdQYXJhbTogQ29tcGxldGVkUGFyYW1TdGF0ZSB8IG51bGw7XG4gIC8qKlxuICAgKiBTZXQgd2hpbGUgdGhlIHVzZXIgaXMgcGlja2luZyBhIGRhdGUgZm9yIGEgc3BhbiB0aGUgc2VydmVyIGlkZW50aWZpZWQgYXNcbiAgICogb25lIOKAlCBcInNlcHRlbWJlciA1dGhcIiBpbiBcImZseSB0byB2ZWdhcyBvbiBzZXB0ZW1iZXIgNXRoXCIuIE51bGwgb3RoZXJ3aXNlLlxuICAgKi9cbiAgZWRpdGluZ0lkZW50aWZpZWQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHBhcmFtZXRlcjogc3RyaW5nO1xuICAgIGFuY2hvcjogbnVtYmVyO1xuICAgIHRhaWw6IG51bWJlcjtcbiAgICAvKiogVGhlIGRhdGUgdGhlIHNwYW4gd2FzIHJlYWQgYXMsIG9yIGEgcmFuZ2UncyBzdGFydC4gTnVsbCB3aGVuIGl0IGNvdWxkbid0IGJlIHJlYWQuICovXG4gICAgaXNvOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBUaGUgb3RoZXIgZW5kLCB3aGVuIHRoZSBzcGFuIHJlYWRzIGFzIGEgcmFuZ2UgcmF0aGVyIHRoYW4gYXMgb25lIGRheS4gKi9cbiAgICBpc29FbmQ6IHN0cmluZyB8IG51bGw7XG4gICAgLyoqIFdoZXRoZXIgdGhhdCBzcGFuIGlzIGFuc3dlcmVkIGJ5IGEgY2FsZW5kYXIsIG9yIGEgY2FsZW5kYXIgaW4gdHdvIHRhcHMuICovXG4gICAgZm9ybWF0OiBGb3JtYXRUeXBlO1xuICB9IHwgbnVsbDtcbiAgZWRpdGluZ0FuY2hvcjogbnVtYmVyIHwgbnVsbDtcbiAgY2FyZXRPZmZzZXQ6IG51bWJlciB8IG51bGw7XG59XG5cbi8qKlxuICogQ29tcG9zaXRlIHN0YXRlIHNoYXBlIGZvciB0aGUgZHJvcGRvd24gdmlldyBsYXllci4gVGllciAyIGNvbnN1bWVycyBiaW5kXG4gKiB0aGUgZHJvcGRvd24gY29tcG9uZW50IHRvIHRoaXMgc25hcHNob3Q7IFRpZXIgMSB1c2VzIHRoZSBzYW1lIHNoYXBlXG4gKiBpbnRlcm5hbGx5LlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBSUF1dG9jb21wbGV0ZURyb3Bkb3duU3RhdGUge1xuICAvKiogQWN0aXZlIHN1Z2dlc3Rpb24gKyBmaWx0ZXJlZCBvcHRpb25zIHRvIHJlbmRlciBpbiB0aGUgZ3JpZC4gKi9cbiAgc3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25bXTtcbiAgLyoqIEN1cnJlbnRseSBoaWdobGlnaHRlZCBvcHRpb24gaW5kZXguIC0xIHdoZW4gbm9uZS4gKi9cbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgdGhlIGRyb3Bkb3duIHNob3VsZCBiZSB2aXNpYmxlLiAqL1xuICBpc09wZW46IGJvb2xlYW47XG4gIC8qKiBQaWxscyB0byByZW5kZXIgaW4gdGhlIGRyb3Bkb3duJ3MgcGlsbGJhciAocmUtZWRpdCBwaWxsIG9yIGFsbCBzdWdnZXN0aW9uIHBpbGxzKS4gKi9cbiAgcGlsbHM6IFN1Z2dlc3Rpb25bXTtcbiAgLyoqIFdoZXRoZXIgdGhlIGFjdGl2ZSBwaWxsIHJlbmRlcnMgc2VsZWN0ZWQgKGZ1bGwgb3BhY2l0eSkgdnMuIHRoZSBgZmlyc3RgIHRpZXIuICovXG4gIGlzQWN0aXZlUGlsbFNlbGVjdGVkOiBib29sZWFuO1xuICAvKiogVHJ1ZSB3aGVuIHRoZSBkcm9wZG93biBzaG91bGQgcmVuZGVyIGl0cyBsb2FkaW5nIHNrZWxldG9uLiAqL1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBpbnB1dCBoYXMgbm8gdHlwZWQgdGV4dCDigJQgdGhlIHNvbGUgc3RhdGUgdGhhdCBzdXJmYWNlcyBcInRhYiB0byBzZWxlY3RcIiBpbiB0aGUgZm9vdGVyIGhpbnQuICovXG4gIGlzSW5wdXRFbXB0eTogYm9vbGVhbjtcbiAgLyoqIFByb2R1Y3QgY2FyZHMgdG8gcmVuZGVyIGJlbG93IHRoZSBvcHRpb25zIGdyaWQuIEVtcHR5IHJlbmRlcnMgbm8gc3RyaXAuICovXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIC8qKlxuICAgKiBUcnVlIHdoaWxlIGEgY29tcGxldGVkIHBhcmFtIGlzIGJlaW5nIHJlLWVkaXRlZC4gVGhlIHBpbGxiYXIgdGhlbiBzaG93c1xuICAgKiB0aGUgcGFyYW0gYmVpbmcgcmUtZWRpdGVkIOKAlCBub3Qgc2tpcHBhYmxlIOKAlCBzbyB0aGUgc2tpcCBidXR0b24gaGlkZXMuXG4gICAqIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIG5vdCBlZGl0aW5nKSBzbyBleGlzdGluZyBjb25zdW1lciBjb2RlIGNvbnN0cnVjdGluZ1xuICAgKiB0aGlzIHN0YXRlIOKAlCB0ZXN0IGZpeHR1cmVzLCBmYWtlIGNvbnRyb2xsZXJzIOKAlCBrZWVwcyBjb21waWxpbmcgYWNyb3NzIHRoZVxuICAgKiBtaW5vciBidW1wIHRoYXQgaW50cm9kdWNlZCBpdC5cbiAgICovXG4gIGlzRWRpdGluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcnVlIGZvciB0aGUgfjE3MG1zIHdpbmRvdyBhZnRlciBhbiBvcHRpb24gaXMgc2VsZWN0ZWQsIHdoaWxlIHRoZSBhbnN3ZXJlZFxuICAgKiBzdWdnZXN0aW9uIGFuaW1hdGVzIG91dC4gYGlzTG9hZGluZ2AgaXMgZGVsaWJlcmF0ZWx5IHN1cHByZXNzZWQgaW4gdGhhdFxuICAgKiB3aW5kb3csIGJ1dCB0aGUgY29yZSdzIGBza2lwQWN0aXZlUGlsbCgpYCBuby1vcHMgaW4gaXQg4oCUIHRoZSBza2lwIGJ1dHRvblxuICAgKiByZW5kZXJzIGRpc2FibGVkIG9mZiB0aGlzIGZsYWcgaW5zdGVhZCBvZiBzd2FsbG93aW5nIGNsaWNrcyBzaWxlbnRseS5cbiAgICogT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgZmFsc2UpIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdCByZWFzb24gYXNcbiAgICogYGlzRWRpdGluZ2AuXG4gICAqL1xuICBpblNlbGVjdGlvbkFuaW1hdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcnVlIHdoaWxlIHRoZSBsb2FkaW5nIHNrZWxldG9uIGZhZGVzIG91dCBiZWZvcmUgdGhlIHJlc3BvbnNlJ3Mgb3B0aW9uc1xuICAgKiByZXBsYWNlIGl0LiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBmYWxzZSkgZm9yIHRoZSBzYW1lIGNvbXBpbGUtY29tcGF0XG4gICAqIHJlYXNvbiBhcyBgaXNFZGl0aW5nYC5cbiAgICovXG4gIHNrZWxldG9uRXhpdGluZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZHJvcGRvd24gb3BlbnMgcmVsYXRpdmUgdG8gdGhlIGlucHV0IOKAlCBtaXJyb3JzIHRoZSBjb250cm9sbGVyJ3NcbiAgICogYG9wdGlvbnNQb3NpdGlvbmAgb3B0aW9uLiBgPGFpLWF1dG9jb21wbGV0ZS1kcm9wZG93bj5gIHJlYWRzIGl0IGZyb20gaGVyZSwgc29cbiAgICogcGxhY2VtZW50IGlzIGNvbmZpZ3VyZWQgb25jZSBvbiB0aGUgY29udHJvbGxlciAobm8gc2VwYXJhdGUgaW5wdXQgdG8gc3luYykuXG4gICAqL1xuICBvcHRpb25zUG9zaXRpb246IFwiYWJvdmVcIiB8IFwiYmVsb3dcIjtcbiAgLyoqXG4gICAqIEhvdyB0aGUgYWN0aXZlIHBpbGwgaXMgYW5zd2VyZWQuIGBcImRhdGVcImAgYW5kIGBcImRhdGUtcmFuZ2VcImAgcmVuZGVyIGFcbiAgICogY2FsZW5kYXIgaW4gcGxhY2Ugb2YgdGhlIG9wdGlvbnMgZ3JpZCwgYW5kIGBzdWdnZXN0aW9uc1swXS5vcHRpb25zYCB0aGVuXG4gICAqIGNhcnJpZXMgdGhhdCBtb250aCdzIGNlbGxzIHJhdGhlciB0aGFuIHRoZSBwYXJhbWV0ZXIncyBvd24gb3B0aW9ucyDigJQgdGhlXG4gICAqIGNvcmUgc3dhcHMgdGhlbSBiZWZvcmUgdGhleSByZWFjaCBoZXJlLiBBIGBcImRhdGUtcmFuZ2VcImAgcGFyYW1ldGVyIGlzXG4gICAqIGFuc3dlcmVkIGJ5IHR3byB0YXBzIG9mIHRoYXQgY2FsZW5kYXIsIGEgc3RhcnQgYW5kIGFuIGVuZCwgY29tbWl0dGVkIGFzIG9uZVxuICAgKiBzcGFuLiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBgXCJvcHRpb25zXCJgKSBmb3IgdGhlIHNhbWUgY29tcGlsZS1jb21wYXQgcmVhc29uXG4gICAqIGFzIGBpc0VkaXRpbmdgLlxuICAgKi9cbiAgZm9ybWF0VHlwZT86IEZvcm1hdFR5cGU7XG4gIC8qKiBUaGUgbW9udGggdGhlIGNhbGVuZGFyIHNob3dzLiBOdWxsL3VuZGVmaW5lZCB1bmxlc3MgYGZvcm1hdFR5cGVgIGlzIGEgY2FsZW5kYXIgb25lLiAqL1xuICBkYXRlVmlldz86IERhdGVNb250aFZpZXcgfCBudWxsO1xuICAvKiogYFlZWVktTU0tRERgIGFscmVhZHkgaGVsZCBieSB0aGUgcGFyYW0gYmVpbmcgcmUtZWRpdGVkLCBzbyBpdHMgY2VsbCByZWFkcyBhcyB0aGUgY3VycmVudCBhbnN3ZXIuICovXG4gIHNlbGVjdGVkRGF0ZUlzbz86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBCb3RoIGVuZHMgb2YgYSByYW5nZSBwYXJhbSBiZWluZyByZS1lZGl0ZWQsIHNvIGJvdGggY2VsbHMgcmVhZCBhcyB0aGUgY3VycmVudCBhbnN3ZXIuICovXG4gIHNlbGVjdGVkRGF0ZVJhbmdlPzogRGF0ZVJhbmdlIHwgbnVsbDtcbiAgLyoqIFRoZSBmaXJzdCBlbmQgb2YgYSByYW5nZSBwaWNrZWQgc28gZmFyLCB3aGlsZSB0aGUgdXNlciBjaG9vc2VzIHRoZSBzZWNvbmQuICovXG4gIGRhdGVSYW5nZVN0YXJ0Pzogc3RyaW5nIHwgbnVsbDtcbn1cbiJdfQ==
|