oxpi-nglib 2.0.34 → 2.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.mjs +28 -3
- package/esm2022/lib/cadastros/produtos/produto-form/produto-form.component.mjs +2 -2
- package/esm2022/lib/models/infra/utils-methods.mjs +73 -1
- package/esm2022/lib/oxpi-nglib.module.mjs +10 -4
- package/esm2022/lib/providers/common-web-service.mjs +4 -2
- package/fesm2022/oxpi-nglib.mjs +127 -23
- package/fesm2022/oxpi-nglib.mjs.map +1 -1
- package/lib/cadastros/fornecedores/fornecedores/fornecedores-form.component.d.ts +5 -1
- package/lib/models/infra/utils-methods.d.ts +2 -0
- package/lib/oxpi-nglib.module.d.ts +2 -1
- package/lib/providers/common-web-service.d.ts +2 -1
- package/package.json +1 -1
- package/styles/cadastros-listagens-form.scss +17 -0
|
@@ -1,19 +1,44 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { validaCnpj, validCpf } from '../../../models/infra/utils-methods';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common";
|
|
4
5
|
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "ngx-mask";
|
|
5
7
|
export class FornecedoresFormComponent {
|
|
8
|
+
get model() {
|
|
9
|
+
return this._model;
|
|
10
|
+
}
|
|
11
|
+
set model(val) {
|
|
12
|
+
this._model = val;
|
|
13
|
+
this.validarCpfCnpj();
|
|
14
|
+
}
|
|
6
15
|
constructor() {
|
|
16
|
+
this.boolCpfCnpjValidado = false;
|
|
7
17
|
}
|
|
8
18
|
ngOnInit() {
|
|
9
19
|
}
|
|
20
|
+
validarCpfCnpj() {
|
|
21
|
+
if (this.model?.cnpjCpf == null || this.model?.cnpjCpf == undefined) {
|
|
22
|
+
this.boolCpfCnpjValidado = false;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (this.model.cnpjCpf.length == 11) {
|
|
26
|
+
this.boolCpfCnpjValidado = validCpf(this.model.cnpjCpf);
|
|
27
|
+
}
|
|
28
|
+
else if (this.model.cnpjCpf.length == 14) {
|
|
29
|
+
this.boolCpfCnpjValidado = validaCnpj(this.model.cnpjCpf);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.boolCpfCnpjValidado = false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
10
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FornecedoresFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: { model: "model" }, ngImport: i0, template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n\n <h4 class=\"margin-top-16\">Dados Complementares</h4>\n\n <div class=\"form-group\">\n <label>Nome Fantasia</label>\n <input [(ngModel)]=\"model.fantasia\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FornecedoresFormComponent, selector: "app-fornecedores-form", inputs: { model: "model" }, ngImport: i0, template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" maxlength=\"60\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n \n <h4 class=\"margin-top-16\">Dados Complementares</h4>\n \n <div class=\"form-group\">\n <label>Nome Fantasia</label>\n <input [(ngModel)]=\"model.fantasia\" maxlength=\"60\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <div class=\"hbox gap-4\">\n <input [(ngModel)]=\"model.cnpjCpf\" (change)=\"validarCpfCnpj()\" mask=\"000.000.000-00||00.000.000/0000-00\"\n class=\"form-control input-180\" tabindex=\"3\">\n <i class=\"material-icons\" style=\"align-self: center; color: #03a928;\" *ngIf=\"boolCpfCnpjValidado === true\">\n check_circle\n </i>\n <i class=\"material-icons\" style=\"align-self: center; color: #a98203;\" *ngIf=\"boolCpfCnpjValidado === false\">\n cancel\n </i>\n \n </div>\n </div>\n <div class=\"form-group\">\n <label>Observa\u00E7\u00F5es</label>\n <input [(ngModel)]=\"model.obs\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" maxlength=\"30\" class=\"form-control input-180\">\n </div>\n <div class=\"form-group\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" maxlength=\"30\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" maxlength=\"60\" class=\"form-control input-200\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Endere\u00E7o</label>\n <input [(ngModel)]=\"model.endereco\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n \n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>N\u00FAmero</label>\n <input [(ngModel)]=\"model.numero\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" maxlength=\"9\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" maxlength=\"60\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" maxlength=\"30\" class=\"form-control input-200\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" maxlength=\"20\" class=\"form-control input-120\">\n </div>\n </div>\n</ng-container>", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
|
|
12
37
|
}
|
|
13
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FornecedoresFormComponent, decorators: [{
|
|
14
39
|
type: Component,
|
|
15
|
-
args: [{ selector: 'app-fornecedores-form', template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n\n <h4 class=\"margin-top-16\">Dados Complementares</h4>\n\n <div class=\"form-group\">\n <label>Nome Fantasia</label>\n <input [(ngModel)]=\"model.fantasia\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"
|
|
40
|
+
args: [{ selector: 'app-fornecedores-form', template: "<ng-container *ngIf=\"model\">\n <div class=\"form-block\">\n <label>Nome</label>\n <input id=\"nome\" maxlength=\"60\" required cdkFocusInitial [(ngModel)]=\"model.nome\" class=\"form-control input-300\" tabindex=\"1\">\n </div>\n \n <h4 class=\"margin-top-16\">Dados Complementares</h4>\n \n <div class=\"form-group\">\n <label>Nome Fantasia</label>\n <input [(ngModel)]=\"model.fantasia\" maxlength=\"60\" class=\"form-control input-300\" tabindex=\"2\">\n </div>\n <div class=\"form-group\">\n <label>CPF/CNPJ</label>\n <div class=\"hbox gap-4\">\n <input [(ngModel)]=\"model.cnpjCpf\" (change)=\"validarCpfCnpj()\" mask=\"000.000.000-00||00.000.000/0000-00\"\n class=\"form-control input-180\" tabindex=\"3\">\n <i class=\"material-icons\" style=\"align-self: center; color: #03a928;\" *ngIf=\"boolCpfCnpjValidado === true\">\n check_circle\n </i>\n <i class=\"material-icons\" style=\"align-self: center; color: #a98203;\" *ngIf=\"boolCpfCnpjValidado === false\">\n cancel\n </i>\n \n </div>\n </div>\n <div class=\"form-group\">\n <label>Observa\u00E7\u00F5es</label>\n <input [(ngModel)]=\"model.obs\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Telefone</label>\n <input [(ngModel)]=\"model.telefone\" maxlength=\"30\" class=\"form-control input-180\">\n </div>\n <div class=\"form-group\">\n <label>Fax</label>\n <input [(ngModel)]=\"model.fax\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Contato</label>\n <input [(ngModel)]=\"model.contato\" maxlength=\"30\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>E-mail</label>\n <input [(ngModel)]=\"model.email\" maxlength=\"60\" class=\"form-control input-200\">\n </div>\n </div>\n <div class=\"form-group\">\n <label>Endere\u00E7o</label>\n <input [(ngModel)]=\"model.endereco\" maxlength=\"60\" class=\"form-control input-300\">\n </div>\n \n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>N\u00FAmero</label>\n <input [(ngModel)]=\"model.numero\" maxlength=\"15\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>CEP</label>\n <input [(ngModel)]=\"model.cep\" maxlength=\"9\" class=\"form-control input-120\">\n </div>\n <div class=\"form-group\">\n <label>Bairro</label>\n <input [(ngModel)]=\"model.bairro\" maxlength=\"60\" class=\"form-control input-120\">\n </div>\n </div>\n <div class=\"hbox gap-8\">\n <div class=\"form-group\">\n <label>Complemento</label>\n <input [(ngModel)]=\"model.complemento\" maxlength=\"30\" class=\"form-control input-200\">\n </div>\n <div class=\"form-group\">\n <label>IE/RG</label>\n <input [(ngModel)]=\"model.ieRg\" maxlength=\"20\" class=\"form-control input-120\">\n </div>\n </div>\n</ng-container>", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
16
41
|
}], ctorParameters: function () { return []; }, propDecorators: { model: [{
|
|
17
42
|
type: Input
|
|
18
43
|
}] } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybmVjZWRvcmVzLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9mb3JuZWNlZG9yZXMvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvZm9ybmVjZWRvcmVzL2Zvcm5lY2Vkb3Jlcy9mb3JuZWNlZG9yZXMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFPM0UsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEdBQTJCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0Q7UUFGQSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7SUFHckMsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsY0FBYztRQUVaLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFDbkU7WUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFDbkM7WUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekQ7YUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQ3hDO1lBQ0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNEO2FBRUQ7WUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs4R0F2Q1UseUJBQXlCO2tHQUF6Qix5QkFBeUIseUZDVHRDLDQyR0ErRWU7OzJGRHRFRix5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCOzBFQVE3QixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm5lY2Vkb3IgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW50aWRhZGVzL3Blc3NvYSc7XG5pbXBvcnQgeyB2YWxpZGFDbnBqLCB2YWxpZENwZiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS91dGlscy1tZXRob2RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm5lY2Vkb3Jlcy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm5lY2Vkb3Jlcy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybmVjZWRvcmVzLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JuZWNlZG9yZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgX21vZGVsPzogRm9ybmVjZWRvcjtcblxuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogRm9ybmVjZWRvciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICB9XG5cbiAgc2V0IG1vZGVsKHZhbDogRm9ybmVjZWRvciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21vZGVsID0gdmFsO1xuICAgIHRoaXMudmFsaWRhckNwZkNucGooKTtcbiAgfVxuICBib29sQ3BmQ25walZhbGlkYWRvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHZhbGlkYXJDcGZDbnBqKClcbiAge1xuICAgIGlmICh0aGlzLm1vZGVsPy5jbnBqQ3BmID09IG51bGwgfHwgdGhpcy5tb2RlbD8uY25wakNwZiA9PSB1bmRlZmluZWQpXG4gICAge1xuICAgICAgdGhpcy5ib29sQ3BmQ25walZhbGlkYWRvID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGVsLmNucGpDcGYubGVuZ3RoID09IDExKVxuICAgIHtcbiAgICAgIHRoaXMuYm9vbENwZkNucGpWYWxpZGFkbyA9IHZhbGlkQ3BmKHRoaXMubW9kZWwuY25wakNwZik7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMubW9kZWwuY25wakNwZi5sZW5ndGggPT0gMTQpXG4gICAge1xuICAgICAgdGhpcy5ib29sQ3BmQ25walZhbGlkYWRvID0gdmFsaWRhQ25waih0aGlzLm1vZGVsLmNucGpDcGYpO1xuICAgIH1cbiAgICBlbHNlXG4gICAge1xuICAgICAgdGhpcy5ib29sQ3BmQ25walZhbGlkYWRvID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJsb2NrXCI+XG4gICAgICAgIDxsYWJlbD5Ob21lPC9sYWJlbD5cbiAgICAgICAgPGlucHV0IGlkPVwibm9tZVwiIG1heGxlbmd0aD1cIjYwXCIgcmVxdWlyZWQgY2RrRm9jdXNJbml0aWFsIFsobmdNb2RlbCldPVwibW9kZWwubm9tZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiIHRhYmluZGV4PVwiMVwiPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxoNCBjbGFzcz1cIm1hcmdpbi10b3AtMTZcIj5EYWRvcyBDb21wbGVtZW50YXJlczwvaDQ+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPk5vbWUgRmFudGFzaWE8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5mYW50YXNpYVwiIG1heGxlbmd0aD1cIjYwXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCIgdGFiaW5kZXg9XCIyXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkNQRi9DTlBKPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLTRcIj5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmNucGpDcGZcIiAoY2hhbmdlKT1cInZhbGlkYXJDcGZDbnBqKClcIiBtYXNrPVwiMDAwLjAwMC4wMDAtMDB8fDAwLjAwMC4wMDAvMDAwMC0wMFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTgwXCIgdGFiaW5kZXg9XCIzXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJhbGlnbi1zZWxmOiBjZW50ZXI7IGNvbG9yOiAjMDNhOTI4O1wiICpuZ0lmPVwiYm9vbENwZkNucGpWYWxpZGFkbyA9PT0gdHJ1ZVwiPlxuICAgICAgICAgICAgICAgIGNoZWNrX2NpcmNsZVxuICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwiYWxpZ24tc2VsZjogY2VudGVyOyBjb2xvcjogI2E5ODIwMztcIiAqbmdJZj1cImJvb2xDcGZDbnBqVmFsaWRhZG8gPT09IGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgY2FuY2VsXG4gICAgICAgICAgICA8L2k+XG4gICAgXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5PYnNlcnZhw6fDtWVzPC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibW9kZWwub2JzXCIgbWF4bGVuZ3RoPVwiNjBcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlRlbGVmb25lPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLnRlbGVmb25lXCIgbWF4bGVuZ3RoPVwiMzBcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xODBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+RmF4PC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmZheFwiIG1heGxlbmd0aD1cIjE1XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q29udGF0bzwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5jb250YXRvXCIgbWF4bGVuZ3RoPVwiMzBcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+RS1tYWlsPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmVtYWlsXCIgbWF4bGVuZ3RoPVwiNjBcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0yMDBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkVuZGVyZcOnbzwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmVuZGVyZWNvXCIgbWF4bGVuZ3RoPVwiNjBcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPk7Dum1lcm88L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibW9kZWwubnVtZXJvXCIgbWF4bGVuZ3RoPVwiMTVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q0VQPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmNlcFwiIG1heGxlbmd0aD1cIjlcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+QmFpcnJvPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1vZGVsLmJhaXJyb1wiIG1heGxlbmd0aD1cIjYwXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q29tcGxlbWVudG88L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibW9kZWwuY29tcGxlbWVudG9cIiBtYXhsZW5ndGg9XCIzMFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTIwMFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5JRS9SRzwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJtb2RlbC5pZVJnXCIgbWF4bGVuZ3RoPVwiMjBcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
@@ -303,7 +303,7 @@ export class ProdutoFormComponent {
|
|
|
303
303
|
let fileToUpload = files[0];
|
|
304
304
|
const formData = new FormData();
|
|
305
305
|
formData.append('file', fileToUpload, fileToUpload.name);
|
|
306
|
-
this.http.post(this.ws.
|
|
306
|
+
this.http.post(this.ws.UPLOAD_CONTENT_BASE_URL + "Produto?produtoId=" + this.model.id, formData, {
|
|
307
307
|
reportProgress: true,
|
|
308
308
|
observe: 'events',
|
|
309
309
|
headers: {
|
|
@@ -367,4 +367,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
367
367
|
}], model: [{
|
|
368
368
|
type: Input
|
|
369
369
|
}] } });
|
|
370
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvcHJvZHV0b3MvcHJvZHV0by1mb3JtL3Byb2R1dG8tZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tZm9ybS9wcm9kdXRvLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBaUMsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFXLE1BQU0sbUNBQW1DLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU9uRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxpSUFBaUksQ0FBQztBQUNqTSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyRkFBMkYsQ0FBQztBQUMvSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxvR0FBb0csQ0FBQztBQUMzSixPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw4SEFBOEgsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUUzTCxNQUFNLENBQUMsTUFBTSxnQkFB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LEtBQUssQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBeFVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGtKQ3RDakMsazFxQkEwYU0sOHBGRHRZUSxDQUFDLGdCQUFnQixDQUFDOzsyRkFFbkIsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGlCQUFpQixjQUdmLENBQUMsZ0JBQWdCLENBQUM7MFBBeUhyQixRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBU00sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkdyb3VwRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NvbnRyb2xzL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IGNyZWF0ZVByb2R1Y3QsIFByb2R1dG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8nO1xuaW1wb3J0IHsgU2V0b3JFc3RvcXVlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9zZXRvci1lc3RvcXVlJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBOdW1iZXJQYXJzZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvbnVtYmVyLXBhcnNlcic7XG5pbXBvcnQgeyBUdXBsZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90dXBsZSc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5cbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9HcnVwb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdXRvcy1ncnVwb3MvcHJvZHV0by1ncnVwby1zZWxlY2FvLWRpYWxvZy9wcm9kdXRvLWdydXBvLXNlbGVjYW8tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdXRvc05jbURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Byb2R1dG9zLW5jbS1kaWFsb2cvcHJvZHV0b3MtbmNtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b1N1YmdydXBvU2VsZWNhb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Byb2R1dG9zLXN1YmdydXBvcy9wcm9kdXRvLXN1YmdydXBvLXNlbGVjYW8tZGlhbG9nL3Byb2R1dG8tc3ViZ3J1cG8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9WZXJpZmljYW9HcnVwb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdXRvcy12ZXJpZmljYWNhby1ncnVwby9wcm9kdXRvLXZlcmlmaWNhY2FvLWdydXBvLXNlbGVjYW8tZGlhbG9nL3Byb2R1dG8tdmVyaWZpY2FjYW8tZ3J1cG8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGxhdGVyYWxBbmltYXRpb24gPSB0cmlnZ2VyKFxuICAnbWVudUxhdGVyYWwnLFxuICBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICc6ZW50ZXInLCBbXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICBhbmltYXRlKCc2MDBtcycsIHN0eWxlKHsgJ29wYWNpdHknOiAxIH0pKVxuICAgIF1cbiAgICApXVxuKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdveC1wcm9kdXRvLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0by1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHV0by1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtsYXRlcmFsQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNmb3BMaXN0OiBUdXBsZTxzdHJpbmcsIHN0cmluZz5bXSA9IFtcbiAgICB7IGl0ZW0xOiAnNTEwMScsIGl0ZW0yOiAnVmVuZGEgZGUgcHJvZHXDp8OjbyBkbyBlc3RhYmVsZWNpbWVudG8nIH0sXG4gICAgeyBpdGVtMTogJzUxMDInLCBpdGVtMjogJ1ZlbmRhIGRlIG1lcmNhZG9yaWEgYWRxdWlyaWRhIG91IHJlY2ViaWRhIGRlIHRlcmNlaXJvcycgfSxcbiAgICB7IGl0ZW0xOiAnNTQwNScsIGl0ZW0yOiAnVmVuZGEgZGUgbWVyY2Fkb3JpYSwgYWRxdWlyaWRhIG91IHJlY2ViaWRhIGRlIHRlcmNlaXJvcywgc3VqZWl0YSBhbyByZWdpbWUgZGUgc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEsIG5hIGNvbmRpw6fDo28gZGUgY29udHJpYnVpbnRlLXN1YnN0aXR1w61kbycgfSxcbiAgICB7IGl0ZW0xOiAnNTkzMycsIGl0ZW0yOiAnU2VydmnDp28nIH0sXG4gIF07XG4gIHN0TGlzdDogVHVwbGU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXG4gICAgeyBpdGVtMTogJ0YnLCBpdGVtMjogJ1N1YnMuIFRyaWIuJyB9LFxuICAgIHsgaXRlbTE6ICdJJywgaXRlbTI6ICdJc2VudG8nIH0sXG4gICAgeyBpdGVtMTogJ04nLCBpdGVtMjogJ07Do28gVHJpYnV0YWRvJyB9LFxuICAgIHsgaXRlbTE6ICdRJywgaXRlbTI6ICdJc2VudG8gSVNTUU4nIH0sXG4gICAgeyBpdGVtMTogJ1MnLCBpdGVtMjogJ1RyaWJ1dGFkbyBJU1NRTicgfSxcbiAgICB7IGl0ZW0xOiAnVCcsIGl0ZW0yOiAnVHJpYnV0YWRvIElDTVMnIH0sXG4gIF07XG4gIG1vZEJhc2VJQ01TOiBUdXBsZTxudW1iZXIsIHN0cmluZz5bXSA9IFtcbiAgICB7IGl0ZW0xOiAwLCBpdGVtMjogJ01hcmdlbSBWYWxvciBBZ3JlZ2FkbyAoJSknIH0sXG4gICAgeyBpdGVtMTogMSwgaXRlbTI6ICdQYXV0YSAoVmFsb3IpJyB9LFxuICAgIHsgaXRlbTE6IDIsIGl0ZW0yOiAnUHJlw6dvIFRhYmVsYWRvIE3DoXguICh2YWxvciknIH0sXG4gICAgeyBpdGVtMTogMywgaXRlbTI6ICdWYWxvciBkYSBvcGVyYcOnw6NvJyB9LFxuICBdO1xuICBjc3RJQ01TTGlzdDogVHVwbGU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXG4gICAgeyBpdGVtMTogJzAwJywgaXRlbTI6ICdUcmlidXRhZGEgaW50ZWdyYWxtZW50ZScgfSxcbiAgICB7IGl0ZW0xOiAnMTAnLCBpdGVtMjogJ1RyaWJ1dGFkYSBlIGNvbSBjb2JyYW7Dp2EgZG8gSUNNUyBwb3Igc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEnIH0sXG4gICAgeyBpdGVtMTogJzIwJywgaXRlbTI6ICdDb20gcmVkdcOnw6NvIGRlIGJhc2UgZGUgY8OhbGN1bG8nIH0sXG4gICAgeyBpdGVtMTogJzMwJywgaXRlbTI6ICdJc2VudGEgb3UgbsOjbyB0cmlidXRhZGEgZSBjb20gY29icmFuw6dhIGRvIElDTVMgcG9yIHN1YnN0aXR1acOnw6NvIHRyaWJ1dMOhcmlhJyB9LFxuICAgIHsgaXRlbTE6ICc0MCcsIGl0ZW0yOiAnSXNlbnRhJyB9LFxuICAgIHsgaXRlbTE6ICc0MScsIGl0ZW0yOiAnTsOjbyB0cmlidXRhZGEnIH0sXG4gICAgeyBpdGVtMTogJzUwJywgaXRlbTI6ICdTdXNwZW5zw6NvJyB9LFxuICAgIHsgaXRlbTE6ICc1MScsIGl0ZW0yOiAnRGlmZXJpbWVudG8nIH0sXG4gICAgeyBpdGVtMTogJzYwJywgaXRlbTI6ICdJQ01TIGNvYnJhZG8gYW50ZXJpb3JtZW50ZSBwb3Igc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEnIH0sXG4gICAgeyBpdGVtMTogJzcwJywgaXRlbTI6ICdDb20gcmVkdcOnw6NvIGRlIGJhc2UgZGUgY8OhbGN1bG8gZSBjb2JyYW7Dp2EgZG8gSUNNUyBwb3Igc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEnIH0sXG4gICAgeyBpdGVtMTogJzkwJywgaXRlbTI6ICdPdXRyb3MnIH0sXG4gICAgeyBpdGVtMTogJzEwMScsIGl0ZW0yOiAnVHJpYnV0YWRhIHBlbG8gU2ltcGxlcyBOYWNpb25hbCBjb20gcGVybWlzc8OjbyBkZSBjcsOpZGl0bycgfSxcbiAgICB7IGl0ZW0xOiAnMTAyJywgaXRlbTI6ICdUcmlidXRhZGEgcGVsbyBTaW1wbGVzIE5hY2lvbmFsIHNlbSBwZXJtaXNzw6NvIGRlIGNyw6lkaXRvJyB9LFxuICAgIHsgaXRlbTE6ICcxMDMnLCBpdGVtMjogJ0lzZW7Dp8OjbyBkbyBJQ01TIG5vIFNpbXBsZXMgTmFjaW9uYWwgcGFyYSBmYWl4YSBkZSByZWNlaXRhIGJydXRhJyB9LFxuICAgIHsgaXRlbTE6ICczMDAnLCBpdGVtMjogJ0ltdW5lJyB9LFxuICAgIHsgaXRlbTE6ICc0MDAnLCBpdGVtMjogJ07Do28gdHJpYnV0YWRhIHBlbG8gU2ltcGxlcyBOYWNpb25hbCcgfSxcbiAgICB7IGl0ZW0xOiAnMjAxJywgaXRlbTI6ICdUcmlidXRhZGEgcGVsbyBTaW1wbGVzIE5hY2lvbmFsIGNvbSBwZXJtaXNzw6NvIGRlIGNyw6lkaXRvIGUgY29tIGNvYnJhbsOnYSBkbyBJQ01TIHBvciBTdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYScgfSxcbiAgICB7IGl0ZW0xOiAnMjAyJywgaXRlbTI6ICdUcmlidXRhZGEgcGVsbyBTaW1wbGVzIE5hY2lvbmFsIHNlbSBwZXJtaXNzw6NvIGRlIGNyw6lkaXRvIGUgY29tIGNvYnJhbsOnYSBkbyBJQ01TIHBvciBTdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYScgfSxcbiAgICB7IGl0ZW0xOiAnMjAzJywgaXRlbTI6ICdJc2Vuw6fDo28gZG8gSUNNUyBub3MgU2ltcGxlcyBOYWNpb25hbCBwYXJhIGZhaXhhIGRlIHJlY2VpdGEgYnJ1dGEgZSBjb20gY29icmFuw6dhIGRvIElDTVMgcG9yIFN1YnN0aXR1acOnw6NvIFRyaWJ1dMOhcmlhJyB9LFxuICAgIHsgaXRlbTE6ICc1MDAnLCBpdGVtMjogJ0lDTVMgY29icmFkbyBhbnRlcmlvcm1lbnRlIHBvciBzdWJzdGl0dWnDp8OjbyB0cmlidXTDoXJpYSAoc3Vic3RpdHXDrWRvKSBvdSBwb3IgYW50ZWNpcGHDp8OjbycgfSxcbiAgICB7IGl0ZW0xOiAnOTAwJywgaXRlbTI6ICdPdXRyb3MnIH1cbiAgXTtcbiAgY3N0Q29maW5zTGlzdDogVHVwbGU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXG4gICAgeyBpdGVtMTogJzAxJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAoYmFzZSBkZSBjw6FsY3VsbyA9IHZhbG9yIGRhIG9wZXJhw6fDo28gYWzDrXF1b3RhIG5vcm1hbCAoY3VtdWxhdGl2by9uw6NvIGN1bXVsYXRpdm8pKTsnIH0sXG4gICAgeyBpdGVtMTogJzAyJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAoYmFzZSBkZSBjw6FsY3VsbyA9IHZhbG9yIGRhIG9wZXJhw6fDo28gKGFsw61xdW90YSBkaWZlcmVuY2lhZGEpKTsnIH0sXG4gICAgeyBpdGVtMTogJzAzJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAoYmFzZSBkZSBjw6FsY3VsbyA9IHF1YW50aWRhZGUgdmVuZGlkYSB4IGFsw61xdW90YSBwb3IgdW5pZGFkZSBkZSBwcm9kdXRvKTsnIH0sXG4gICAgeyBpdGVtMTogJzA0JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAodHJpYnV0YcOnw6NvIG1vbm9mw6FzaWNhIChhbMOtcXVvdGEgemVybykpOycgfSxcbiAgICB7IGl0ZW0xOiAnMDUnLCBpdGVtMjogJyBPcGVyYcOnw6NvIFRyaWJ1dMOhdmVsIChTdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYSk7JyB9LFxuICAgIHsgaXRlbTE6ICcwNicsIGl0ZW0yOiAnIE9wZXJhw6fDo28gVHJpYnV0w6F2ZWwgKGFsw61xdW90YSB6ZXJvKTsnIH0sXG4gICAgeyBpdGVtMTogJzA3JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBJc2VudGEgZGEgQ29udHJpYnVpw6fDo287JyB9LFxuICAgIHsgaXRlbTE6ICcwOCcsIGl0ZW0yOiAnIE9wZXJhw6fDo28gU2VtIEluY2lkw6puY2lhIGRhIENvbnRyaWJ1acOnw6NvOycgfSxcbiAgICB7IGl0ZW0xOiAnMDknLCBpdGVtMjogJyBPcGVyYcOnw6NvIGNvbSBTdXNwZW5zw6NvIGRhIENvbnRyaWJ1acOnw6NvOycgfSxcbiAgICB7IGl0ZW0xOiAnOTknLCBpdGVtMjogJyBPdXRyYXMgT3BlcmHDp8O1ZXM7JyB9LFxuICAgIHsgaXRlbTE6ICc0OScsIGl0ZW0yOiAnIE91dHJhcyBPcGVyYcOnw7VlcyBkZSBTYcOtZGE7ICcgfSxcbiAgICB7IGl0ZW0xOiAnNTAnLCBpdGVtMjogJyBPcGVyYcOnw6NvIGNvbSBEaXJlaXRvIGEgQ3LDqWRpdG8gIFZpbmN1bGFkYSBFeGNsdXNpdmFtZW50ZSBhIFJlY2VpdGEgVHJpYnV0YWRhIG5vIE1lcmNhZG8gSW50ZXJubzsgJyB9LFxuICAgIHsgaXRlbTE6ICc1MScsIGl0ZW0yOiAnIE9wZXJhw6fDo28gY29tIERpcmVpdG8gYSBDcsOpZGl0byAgVmluY3VsYWRhIEV4Y2x1c2l2YW1lbnRlIGEgUmVjZWl0YSBOw6NvIFRyaWJ1dGFkYSBubyBNZXJjYWRvIEludGVybm8gOycgfSxcbiAgICB7IGl0ZW0xOiAnNTInLCBpdGVtMjogJyBPcGVyYcOnw6NvIGNvbSBEaXJlaXRvIGEgQ3LDqWRpdG8gIFZpbmN1bGFkYSBFeGNsdXNpdmFtZW50ZSBhIFJlY2VpdGEgZGUgRXhwb3J0YcOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzUzJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBjb20gRGlyZWl0byBhIENyw6lkaXRvICBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vOyAnIH0sXG4gICAgeyBpdGVtMTogJzU0JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBjb20gRGlyZWl0byBhIENyw6lkaXRvICBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIG5vIE1lcmNhZG8gSW50ZXJubyBlIGRlIEV4cG9ydGHDp8OjbyA7JyB9LFxuICAgIHsgaXRlbTE6ICc1NScsIGl0ZW0yOiAnIE9wZXJhw6fDo28gY29tIERpcmVpdG8gYSBDcsOpZGl0byAgVmluY3VsYWRhIGEgUmVjZWl0YXMgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vIGUgZGUgRXhwb3J0YcOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzU2JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBjb20gRGlyZWl0byBhIENyw6lkaXRvICBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vLCBlIGRlIEV4cG9ydGHDp8OjbzsnIH0sXG4gICAgeyBpdGVtMTogJzYwJywgaXRlbTI6ICcgQ3LDqWRpdG8gUHJlc3VtaWRvICBPcGVyYcOnw6NvIGRlIEFxdWlzacOnw6NvIFZpbmN1bGFkYSBFeGNsdXNpdmFtZW50ZSBhIFJlY2VpdGEgVHJpYnV0YWRhIG5vIE1lcmNhZG8gSW50ZXJubzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2MScsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgRXhjbHVzaXZhbWVudGUgYSBSZWNlaXRhIE7Do28gVHJpYnV0YWRhIG5vIE1lcmNhZG8gSW50ZXJubzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2MicsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgRXhjbHVzaXZhbWVudGUgYSBSZWNlaXRhIGRlIEV4cG9ydGHDp8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2MycsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vOyAnIH0sXG4gICAgeyBpdGVtMTogJzY0JywgaXRlbTI6ICcgQ3LDqWRpdG8gUHJlc3VtaWRvICBPcGVyYcOnw6NvIGRlIEFxdWlzacOnw6NvIFZpbmN1bGFkYSBhIFJlY2VpdGFzIFRyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vIGUgZGUgRXhwb3J0YcOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzY1JywgaXRlbTI6ICcgQ3LDqWRpdG8gUHJlc3VtaWRvICBPcGVyYcOnw6NvIGRlIEFxdWlzacOnw6NvIFZpbmN1bGFkYSBhIFJlY2VpdGFzIE7Do29UcmlidXRhZGFzIG5vIE1lcmNhZG8gSW50ZXJubyBlIGRlIEV4cG9ydGHDp8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2NicsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vLCBlIGRlIEV4cG9ydGHDp8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2NycsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3V0cmFzIE9wZXJhw6fDtWVzOyAnIH0sXG4gICAgeyBpdGVtMTogJzcwJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBzZW0gRGlyZWl0byBhIENyw6lkaXRvOyAnIH0sXG4gICAgeyBpdGVtMTogJzcxJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBjb20gSXNlbsOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzcyJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBjb20gU3VzcGVuc8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc3MycsIGl0ZW0yOiAnIE9wZXJhw6fDo28gZGUgQXF1aXNpw6fDo28gYSBBbMOtcXVvdGEgWmVybzsgJyB9LFxuICAgIHsgaXRlbTE6ICc3NCcsIGl0ZW0yOiAnIE9wZXJhw6fDo28gZGUgQXF1aXNpw6fDo28gc2VtIEluY2lkw6puY2lhIGRhIENvbnRyaWJ1acOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzc1JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBwb3IgU3Vic3RpdHVpw6fDo28gVHJpYnV0w6FyaWE7JyB9LFxuICAgIHsgaXRlbTE6ICc5OCcsIGl0ZW0yOiAnIE91dHJhcyBPcGVyYcOnw7VlcyBkZSBFbnRyYWRhOycgfSxcbiAgXTtcbiAgbmNtRW5jb250cmFkbzogYm9vbGVhbiA9IGZhbHNlO1xuICBuY21OYW9FbmNvbnRyYWRvOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHBSZWRCQ0VmZXRfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBSZWRCQ0VmZXRfaWNtcyA9IHYsICgpID0+IHRoaXMubW9kZWwucFJlZEJDRWZldF9pY21zKTtcbiAgcGljbXNFZmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC5waWNtc0VmZXRfaWNtcyA9IHYsICgpID0+IHRoaXMubW9kZWwucGljbXNFZmV0X2ljbXMpO1xuICB2YmNFZmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YmNFZmV0X2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZiY0VmZXRfaWNtcyk7XG4gIHZpY21zRWZldF9pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcih2ID0+IHRoaXMubW9kZWwudmljbXNFZmV0X2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZpY21zRWZldF9pY21zKTtcblxuICBwc1RfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBzVF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wc1RfaWNtcyk7XG4gIHZiY3N0UmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YmNzdFJldF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YmNzdFJldF9pY21zKTtcbiAgdmljbXNTdWJzdGl0dXRvX2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52aWNtc1N1YnN0aXR1dG9faWNtcyA9IHYsICgpID0+IHRoaXMubW9kZWwudmljbXNTdWJzdGl0dXRvX2ljbXMpO1xuICB2aWNtc3N0UmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52aWNtc3N0UmV0X2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZpY21zc3RSZXRfaWNtcyk7XG5cbiAgcGZjUF9pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcih2ID0+IHRoaXMubW9kZWwucGZjUF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wZmNQX2ljbXMpO1xuICB2YmNmY1BfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnZiY2ZjUF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YmNmY1BfaWNtcyk7XG4gIHBmY3BzVF9pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcih2ID0+IHRoaXMubW9kZWwucGZjcHNUX2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnBmY3BzVF9pY21zKTtcbiAgdmJjZmNwc1RfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnZiY2ZjcHNUX2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZiY2ZjcHNUX2ljbXMpO1xuICBwZmNwc3RSZXRfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBmY3BzdFJldF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wZmNwc3RSZXRfaWNtcyk7XG4gIHZiY2ZjcHN0UmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YmNmY3BzdFJldF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YmNmY3BzdFJldF9pY21zKTtcblxuICBwcGlTX3Bpc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBwaVNfcGlzID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wcGlTX3Bpcyk7XG4gIHZiQ19waXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YkNfcGlzID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YkNfcGlzKTtcblxuICBwY29maW5TX2NvZmluc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBjb2ZpblNfY29maW5zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wY29maW5TX2NvZmlucyk7XG4gIHZiQ19jb2ZpbnNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YkNfY29maW5zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YkNfY29maW5zKTtcblxuXG4gIHByZWNvVmVuZGFQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnByZWNvVmVuZGEgPSB2ID8/IDAsICgpID0+IHRoaXMubW9kZWwucHJlY29WZW5kYSk7XG4gIHByZWNvQ3VzdG9QYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnByZWNvQ3VzdG8gPSB2ID8/IDAsICgpID0+IHRoaXMubW9kZWwucHJlY29DdXN0byk7XG4gIHByZWNvRnVuY1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIoKHYpID0+IHRoaXMubW9kZWwucHJlY29GdW5jaW9uYXJpbyA9IHYgPz8gMCwgKCkgPT4gdGhpcy5tb2RlbC5wcmVjb0Z1bmNpb25hcmlvKTtcblxuICBwSUNNU19pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcigodikgPT4gdGhpcy5tb2RlbC5wSUNNU19pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wSUNNU19pY21zKTtcbiAgXG4gIHF0ZE1pblN1YkVzdG9xdWVQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnF0ZE1pblN1YkVzdG9xdWUgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnF0ZE1pblN1YkVzdG9xdWUpO1xuICBlc3RvcXVlTWluaW1vUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcigodikgPT4gdGhpcy5tb2RlbC5lc3RvcXVlTWluaW1vID0gdiA/PyAwLCAoKSA9PiB0aGlzLm1vZGVsLmVzdG9xdWVNaW5pbW8pO1xuICBxdWFudGlkYWRlU3VpdGVQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnF1YW50aWRhZGVTdWl0ZSA9IHYgPz8gMCwgKCkgPT4gdGhpcy5tb2RlbC5xdWFudGlkYWRlU3VpdGUpO1xuXG4gIGxhenlUcmlnZ2VyTmNtID0gbmV3IExhenlUcmlnZ2VyKCgpID0+IHsgdGhpcy5maW5kTkNNKCk7IH0pO1xuXG4gIEBJbnB1dCgpIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBuZXh0SWRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHVibGljIHByb2dyZXNzOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIGltZ1VybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIF9tb2RlbDogUHJvZHV0byA9IGNyZWF0ZVByb2R1Y3QoKTtcbiAgZ2V0IG1vZGVsKCk6IFByb2R1dG8ge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IFByb2R1dG8pIHtcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xuICAgIHRoaXMuc2V0SW1nVXJsKCk7XG4gICAgdGhpcy5maW5kTkNNKCk7XG4gIH1cblxuICB0YWJzOiBSYWRpb0J1dHRvbkdyb3VwRGF0YVtdID0gW1xuICAgIHsgbmFtZTogXCJDYW1wb3MgR2VyYWlzXCIsIHZhbHVlOiAwIH0sXG4gICAgeyBuYW1lOiBcIkNhbXBvcyBGaXNjYWlzXCIsIHZhbHVlOiAxIH0sXG4gICAgeyBuYW1lOiBcIkNhcmTDoXBpbyBEaWdpdGFsXCIsIHZhbHVlOiAyIH1cbiAgXTtcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XG4gIHNldG9yZXM6IFNldG9yRXN0b3F1ZVtdID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkU2V0b3JlcygpO1xuICB9XG5cbiAgbG9hZFNldG9yZXMoKSB7XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuZ2V0QWxsU2V0b3JlcygpXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLnNldG9yZXMgPSByO1xuICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICB9KTtcbiAgfVxuICBlZGl0YXJOQ00oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk1KSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5zY3JlZW5IZWxwZXIubW9iaWxlU2NyZWVuKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9zTmNtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICAgIHRoaXMubW9kZWwubmNtID0gcmVzdWx0LmNvZGlnb0FwZW5hc0RpZ2l0b3M7XG4gICAgICB0aGlzLmxhenlUcmlnZ2VyTmNtLmZpcmUoKTtcbiAgICB9KTtcbiAgfVxuICBlZGl0YXJTdWJncnVwbygpIHtcbiAgICBsZXQgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTUpICsgJ3B4JztcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLnNjcmVlbkhlbHBlci5tb2JpbGVTY3JlZW4pIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTkpICsgJ3B4JztcbiAgICB9XG4gICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b1N1YmdydXBvU2VsZWNhb0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgICB0aGlzLm1vZGVsLnN1YmdydXBvSWQgPSByZXN1bHQuaWQ7XG4gICAgICB0aGlzLm1vZGVsLnN1YmdydXBvTm9tZSA9IHJlc3VsdC5ub21lO1xuICAgIH0pO1xuICB9XG4gIGVkaXRhckdydXBvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45NSkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMuc2NyZWVuSGVscGVyLm1vYmlsZVNjcmVlbikge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvR3J1cG9TZWxlY2FvRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICAgIHRoaXMubW9kZWwuZ3J1cG9JZCA9IHJlc3VsdC5pZDtcbiAgICAgIHRoaXMubW9kZWwuZ3J1cG9Ob21lID0gcmVzdWx0Lm5vbWU7XG4gICAgfSk7XG4gIH1cbiAgZWRpdGFyQ2F0ZWdvcmlhQ2FyZGFwaW8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk1KSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5zY3JlZW5IZWxwZXIubW9iaWxlU2NyZWVuKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1NlbGVjYW9EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGlmICghdGhpcy5tb2RlbCkgcmV0dXJuO1xuICAgICAgdGhpcy5tb2RlbC5jYXRlZ29yaWFDYXJkYXBpb0lkID0gcmVzdWx0LmlkO1xuICAgICAgdGhpcy5tb2RlbC5jYXRlZ29yaWFDYXJkYXBpb05vbWUgPSByZXN1bHQubm9tZTtcbiAgICB9KTtcbiAgfVxuICBlZGl0YXJWZXJpZmljYWNhb0dydXBvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45NSkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMuc2NyZWVuSGVscGVyLm1vYmlsZVNjcmVlbikge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvVmVyaWZpY2FvR3J1cG9TZWxlY2FvRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICAgIHRoaXMubW9kZWwucHJvZHV0b1ZlcmlmaWNhb0dydXBvSWQgPSByZXN1bHQuaWQ7XG4gICAgICB0aGlzLm1vZGVsLnByb2R1dG9WZXJpZmljYW9HcnVwb05vbWUgPSByZXN1bHQubm9tZTtcbiAgICB9KTtcbiAgfVxuICBjaGFuZ2VNb2RvKGV2OiBSYWRpb0J1dHRvbkdyb3VwRGF0YSkge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBldi52YWx1ZTtcbiAgfVxuXG4gIHVwbG9hZEZpbGUoZmlsZXMgOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBmaWxlVG9VcGxvYWQgPSA8RmlsZT5maWxlc1swXTtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGVUb1VwbG9hZCwgZmlsZVRvVXBsb2FkLm5hbWUpO1xuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMud3MuUFJPRFVUT19CQVNFX1VSTCArIFwiSW1hZ2VtP3Byb2R1dG9JZD1cIiArIHRoaXMubW9kZWwuaWQsIGZvcm1EYXRhLFxuICAgICAge1xuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLmF1dGgudG9rZW4sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpXG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCB0b3RhbCA9IGV2ZW50LnRvdGFsID8/IC0xO1xuICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKDEwMCAqIGV2ZW50LmxvYWRlZCAvIHRvdGFsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlID0gJ1N1Y2Vzc28nO1xuICAgICAgICAgIHRoaXMuaW1nVXJsID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRJbWdVcmwobmV3IERhdGUoKS5nZXRNaW51dGVzKCkgKyBcIlwiKTtcbiAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgfVxuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgY29uc3QgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSA9IGVycjtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gaHR0cEVycm9yLmVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBzZXRJbWdVcmwodXBsb2FkOiBzdHJpbmd8dW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgdGhpcy5pbWdVcmwgPSB0aGlzLndzLk1FRElBX1BST0RVVE9fSU1BR0VNX1VSTCArXG4gICAgICAnP3Byb2R1dG9JZD0nICsgdGhpcy5tb2RlbC5pZCArXG4gICAgICAnJnRva2VuPScgKyB0aGlzLmF1dGgudG9rZW4gK1xuICAgICAgKHVwbG9hZCAhPT0gdW5kZWZpbmVkID8gJyZ1cGxvYWQ9JyArIHVwbG9hZCA6ICcnKTtcbiAgfVxuXG4gIGZpbmROQ00oKSB7XG4gICAgdGhpcy5uY21FbmNvbnRyYWRvID0gZmFsc2U7XG4gICAgdGhpcy5uY21OYW9FbmNvbnRyYWRvID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLm1vZGVsLm5jbSkgcmV0dXJuO1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmZpbmROY20odGhpcy5tb2RlbC5uY20pXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLm5jbUVuY29udHJhZG8gPSByICE9IG51bGw7XG4gICAgICAgIHRoaXMubmNtTmFvRW5jb250cmFkbyA9IHIgPT0gbnVsbDtcbiAgICAgICAgY29uc29sZS5pbmZvKHIpO1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4XCI+XG4gICAgPG94LXJhZGlvLWJ1dHRvbi1ncm91cCAoY2hhbmdlKT1cImNoYW5nZU1vZG8oJGV2ZW50KVwiIFtpdGVtc109XCJ0YWJzXCIgY2xhc3M9XCJ0b29sLWl0ZW0tY29udGFpbmVyXCI+XG4gICAgPC9veC1yYWRpby1idXR0b24tZ3JvdXA+XG48L2Rpdj5cbjxkaXYgW0BtZW51TGF0ZXJhbF0gY2xhc3M9XCJ2Ym94XCIgKm5nSWY9XCJzZWxlY3RlZFRhYiA9PSAwXCI+XG4gICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5Dw7NkaWdvPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYm94XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiaWRcIiBbcmVhZG9ubHldPVwiZWRpdE1vZGVcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmlkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibmV4dElkQ2xpY2suZW1pdCgpXCIgKm5nSWY9XCIhZWRpdE1vZGVcIiBjbGFzcz1cImZvcm0taW5saW5lLWJ1dHRvbiBidG4tZm9ybS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHRidWxiXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWFyZ2luLWxlZnQtOFwiPlxuICAgICAgICAgICAgPGxhYmVsPlJlZmVyw6puY2lhPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInJlZmVyZW5jaWFcIiBtYXhsZW5ndGg9XCIzMFwiIFsobmdNb2RlbCldPVwibW9kZWwucmVmZXJlbmNpYVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiIHRhYmluZGV4PVwiMlwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+Tm9tZTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBpZD1cIm5vbWVcIiBtYXhsZW5ndGg9XCI2MFwiIFsobmdNb2RlbCldPVwibW9kZWwubm9tZVwiIGNka0ZvY3VzSW5pdGlhbCBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIiB0YWJpbmRleD1cIjJcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlByZcOnbyBkZSBWZW5kYTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwcmVjb1ZlbmRhXCIgW25nTW9kZWxdPVwibW9kZWwucHJlY29WZW5kYSB8IG51bWJlcjonMS4yLTInXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcmVjb1ZlbmRhUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicHJlY29WZW5kYVBhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiIHRhYmluZGV4PVwiMlwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgIG1hcmdpbi1sZWZ0LThcIj5cbiAgICAgICAgICAgIDxsYWJlbD5QcmXDp28gcC8gRnVuYy48L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicHJlY29GdW5jaW9uYXJpb1wiIFtuZ01vZGVsXT1cIm1vZGVsLnByZWNvRnVuY2lvbmFyaW8gfCBudW1iZXI6JzEuMi0yJ1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicHJlY29GdW5jUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicHJlY29GdW5jUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCIgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCAgbWFyZ2luLWxlZnQtOFwiPlxuICAgICAgICAgICAgPGxhYmVsPlByZcOnbyBkZSBDdXN0bzwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwcmVjb0N1c3RvXCIgW25nTW9kZWxdPVwibW9kZWwucHJlY29DdXN0byB8IG51bWJlcjonMS4yLTInXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcmVjb0N1c3RvUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicHJlY29DdXN0b1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiIHRhYmluZGV4PVwiMlwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+R3J1cG88L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cImdydXBvXCIgKGNsaWNrKT1cImVkaXRhckdydXBvKClcIiBjbGFzcz1cImZvcm0tY29udHJvbCBncm93LTEgaW5wdXQtc2VsZWNhbyBpbnB1dC0zMDBcIj5cbiAgICAgICAgICAgICAgICB7e21vZGVsLmdydXBvTm9tZX19IDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZWRpdGFyR3J1cG8oKVwiIGNsYXNzPVwiZm9ybS1pbmxpbmUtYnV0dG9uIGJ0bi1mb3JtLW1hcmdpblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5TdWJncnVwbzwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwic3ViZ3J1cG9cIiAoY2xpY2spPVwiZWRpdGFyU3ViZ3J1cG8oKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGdyb3ctMSBpbnB1dC1zZWxlY2FvIGlucHV0LTMwMFwiPlxuICAgICAgICAgICAgICAgIHt7bW9kZWwuc3ViZ3J1cG9Ob21lfX0gPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlZGl0YXJTdWJncnVwbygpXCIgY2xhc3M9XCJmb3JtLWlubGluZS1idXR0b24gYnRuLWZvcm0tbWFyZ2luXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlVuaWRhZGU8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidW5pZGFkZVwiIFsobmdNb2RlbCldPVwibW9kZWwudW5pZGFkZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5Fc3RvcXVlIE1pbi48L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZXN0b3F1ZU1pbmltb1wiIFtuZ01vZGVsXT1cIm1vZGVsLmVzdG9xdWVNaW5pbW9cIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZXN0b3F1ZU1pbmltb1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cImVzdG9xdWVNaW5pbW9QYXJzZXIuY2hlY2tvdXQoKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5RdGQuIFN1w610ZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJxdWFudGlkYWRlU3VpdGVcIiBbbmdNb2RlbF09XCJtb2RlbC5xdWFudGlkYWRlU3VpdGVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjAgdGV4dC1yaWdodFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJxdWFudGlkYWRlU3VpdGVQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJxdWFudGlkYWRlU3VpdGVQYXJzZXIuY2hlY2tvdXQoKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q8OzZGlnbyBQYXRyaW3DtG5pbzwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJjb2RpZ29QYXRyaW1vbmlvXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5jb2RpZ29QYXRyaW1vbmlvXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIzNlwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5PYnMuPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cIm9ic1wiIG1heGxlbmd0aD1cIjMwMFwiIFsobmdNb2RlbCldPVwibW9kZWwub2JzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCIgbWF4bGVuZ3RoPVwiMzAwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+U2V0b3IgU3ViZXN0b3F1ZTwvbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJtb2RlbC5zZXRvclN1YkVzdG9xdWVJZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpIG9mIHNldG9yZXNcIiBbdmFsdWVdPVwiaS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e2kubm9tZX19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5RdGQuIFN1YmVzdG9xdWU8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicXRkTWluU3ViRXN0b3F1ZVwiIFtuZ01vZGVsXT1cIm1vZGVsLnF0ZE1pblN1YkVzdG9xdWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjAgdGV4dC1yaWdodFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJxdGRNaW5TdWJFc3RvcXVlUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicXRkTWluU3ViRXN0b3F1ZVBhcnNlci5jaGVja291dCgpXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2Ym94XCI+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwibW9kZWwuZXN0b3F1ZUNvbnRyb2xhZG9cIiB0YWJpbmRleD0tMT5Db250cm9sYWRvIG5vIEVzdG9xdWU8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwibW9kZWwuaW1wcmltaUNvemluaGFcIiB0YWJpbmRleD0tMT5JbXByaW1lIENvemluaGE8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwibW9kZWwuaW1wcmltZUNvcnJlZG9yXCIgdGFiaW5kZXg9LTE+SW1wcmltZSBDb3JyZWRvcjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC52ZXJOYVJlY2VwY2FvXCIgdGFiaW5kZXg9LTE+VmVyIG5hIFJlY2Vww6fDo288L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwibW9kZWwub21pdGVDbGllbnRlXCIgdGFiaW5kZXg9LTE+TsOjbyBFeGliZSBwYXJhIG8gQ2xpZW50ZSBuYSBTYcOtZGFcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIm1vZGVsLmlzQXRpdm9cIiB0YWJpbmRleD0tMT5BdGl2YWRvPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBbQG1lbnVMYXRlcmFsXSBjbGFzcz1cInZib3hcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09IDFcIj5cblxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiIGNsYXNzPVwidmJveFwiPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIm1vZGVsLmVtaXRlTkZDZVwiIHRhYmluZGV4PS0xPkVtaXRlIEZpc2NhbFxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5HVElOPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImd0aW5cIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmd0aW5cIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIiBwbGFjZWhvbGRlcj1cIlNFTSBHVElOXCJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5DRk9QPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImNmb3BcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmNmb3BcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBtYXRJbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDBcIlxuICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjRcIj5cbiAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjZm9wTGlzdFwiIFt2YWx1ZV09XCJvcHRpb24uaXRlbTFcIj5cbiAgICAgICAgICAgICAgICAgICAge3tvcHRpb24uaXRlbTF9fSA8c21hbGw+e3tvcHRpb24uaXRlbTJ9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5OQ008L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJuY21cIiAoaW5wdXQpPVwibGF6eVRyaWdnZXJOY20uZmlyZSgpXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5uY21cIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDBcIlxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZWRpdGFyTkNNKClcIiBjbGFzcz1cImZvcm0taW5saW5lLWJ1dHRvbiBidG4tZm9ybS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJ1c2NhbmRvXCIgKm5nSWY9XCJpc0J1c3lcIj5CdXNjYW5kby4uLjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGVuY29udHJhZG9cIiAqbmdJZj1cIm5jbUVuY29udHJhZG9cIj5FbmNvbnRyYWRvPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbmFvLWVuY29udHJhZG9cIiAqbmdJZj1cIm5jbU5hb0VuY29udHJhZG9cIj5Ow6NvIGVuY29udHJhZG88L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5DRVNUPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImNlc3RcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmNlc3RcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIiBtYXhsZW5ndGg9XCI3XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPklDTVMgKEVDRi9TQVQpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImFsaXF1b3RhSUNNU1wiIFsobmdNb2RlbCldPVwibW9kZWwuYWxpcXVvdGFJQ01TXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIlxuICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjVcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Uy4gVC4gKEVDRi9TQVQpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInNpdFRyaWJcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLnNpdFRyaWJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9TVFwiIG1hdElucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCIgbWF4bGVuZ3RoPVwiNVwiPlxuICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG9TVD1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc3RMaXN0XCIgW3ZhbHVlXT1cIm9wdGlvbi5pdGVtMVwiPlxuICAgICAgICAgICAgICAgICAgICB7e29wdGlvbi5pdGVtMX19IDxzbWFsbD57e29wdGlvbi5pdGVtMn19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICA8L2Rpdj5cbiAgICA8aDQ+Q2FtcG9zIGRhIE5GQy1lPC9oND5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkNTVC9DU09TTjwvbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJtb2RlbC5jc1RfaWNtc1wiICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBjc3RJQ01TTGlzdFwiIFt2YWx1ZV09XCJpLml0ZW0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7aS5pdGVtMX19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5BbGlxLiBJQ01TICglKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwSUNNU19pY21zXCIgW25nTW9kZWxdPVwibW9kZWwucElDTVNfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwSUNNU19pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicElDTVNfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5Nb2RhbGlkYWRlIEJDPC9sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cIm1vZGVsLm1vZEJDX2ljbXNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBtb2RCYXNlSUNNU1wiIFt2YWx1ZV09XCJpLml0ZW0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7aS5pdGVtMX19IDxzbWFsbD57e2kuaXRlbTJ9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5jQmVuZWY8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiY0JlbmVmXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5jQmVuZWZcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIiBtYXhsZW5ndGg9XCIyMFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8aDY+SUNNUyBFZmV0aXZvIENTVDYwL0NTT1NONTAwPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnBSZWRCQ0VmZXQgKCUpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInBSZWRCQ0VmZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnBSZWRCQ0VmZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwUmVkQkNFZmV0X2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwUmVkQkNFZmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+cElDTVNFZmV0ICglKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwaWNtc0VmZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnBpY21zRWZldF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBpY21zRWZldF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicGljbXNFZmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dkJDRWZldCAoUiQpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInZiY0VmZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZiY0VmZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YmNFZmV0X2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJ2YmNFZmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dklDTVNFZmV0IChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmljbXNFZmV0X2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC52aWNtc0VmZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2aWNtc0VmZXRfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZpY21zRWZldF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxoNj5TdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYSAoU1QpPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnBTVCAoJSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicHNUX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC5wc1RfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwc1RfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInBzVF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnZCQ1NUUmV0IChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmJjc3RSZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZiY3N0UmV0X2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmJjc3RSZXRfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZiY3N0UmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dklDTVNTdWJzIChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmljbXNTdWJzdGl0dXRvX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC52aWNtc1N1YnN0aXR1dG9faWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2aWNtc1N1YnN0aXR1dG9faWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwidmljbXNTdWJzdGl0dXRvX2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnZJQ01TU1RSZXQgKFIkKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ2aWNtc3N0UmV0X2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC52aWNtc3N0UmV0X2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmljbXNzdFJldF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwidmljbXNzdFJldF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxoNj5GdW5kbyBkZSBDb21iYXRlIGEgUG9icmVzYTwvaDY+XG4gICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5wRkNQICglKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwZmNQX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC5wZmNQX2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGZjUF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicGZjUF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnZCQ0ZDUCAoUiQpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInZiY2ZjUF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwudmJjZmNQX2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmJjZmNQX2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJ2YmNmY1BfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5wRkNQU1QgKCUpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInBmY3BzVF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwucGZjcHNUX2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGZjcHNUX2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwZmNwc1RfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD52QkNGQ1BTVCAoUiQpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInZiY2ZjcHNUX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC52YmNmY3BzVF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZiY2ZjcHNUX2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJ2YmNmY3BzVF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnBGQ1BTVFJldCAoJSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicGZjcHN0UmV0X2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC5wZmNwc3RSZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZmNwc3RSZXRfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInBmY3BzdFJldF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnZCQ0ZDUFNUUmV0IChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmJjZmNwc3RSZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZiY2ZjcHN0UmV0X2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmJjZmNwc3RSZXRfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZiY2ZjcHN0UmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGg2PlBJUzwvaDY+XG4gICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5DU1QvUElTPC9sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cIm1vZGVsLmNzVF9waXNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICBOZW5odW1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGkgb2YgY3N0Q29maW5zTGlzdFwiIFt2YWx1ZV09XCJpLml0ZW0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7aS5pdGVtMX19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5BbGlxdW90YSBQSVMgKCUpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInBwaVNfcGlzXCIgW25nTW9kZWxdPVwibW9kZWwucHBpU19waXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicHBpU19waXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwcGlTX3Bpc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5QSVMgQkMgJTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ2YkNfcGlzXCIgW25nTW9kZWxdPVwibW9kZWwudmJDX3BpcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YkNfcGlzUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwidmJDX3Bpc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8aDY+Q09GSU5TPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkNTVC9DT0ZJTlM8L2xhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwibW9kZWwuY3NUX2NvZmluc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJudWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIE5lbmh1bVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBjc3RDb2ZpbnNMaXN0XCIgW3ZhbHVlXT1cImkuaXRlbTFcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpLml0ZW0xfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkFsaXEuIENPRklOUyAoJSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicGNvZmluU19jb2ZpbnNcIiBbbmdNb2RlbF09XCJtb2RlbC5wY29maW5TX2NvZmlucyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwY29maW5TX2NvZmluc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInBjb2ZpblNfY29maW5zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkNPRklOUyBCQyAlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInZiQ19jb2ZpbnNcIiBbbmdNb2RlbF09XCJtb2RlbC52YkNfY29maW5zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZiQ19jb2ZpbnNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJ2YkNfY29maW5zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgW0BtZW51TGF0ZXJhbF0gY2xhc3M9XCJ2Ym94XCIgKm5nSWY9XCJzZWxlY3RlZFRhYiA9PSAyXCI+XG5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTZweDtcIiBjbGFzcz1cInZib3hcIj5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC5kaXNwb25pdmVsQ2FyZGFwaW9cIiB0YWJpbmRleD0tMT5EaXNwb27DrXZlbCBubyBDYXJkw6FwaW8gRGlnaXRhbFxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDhweDtcIiBjbGFzcz1cInZib3hcIj5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC5kZXN0YXF1ZVwiIHRhYmluZGV4PS0xPkRlc3RhcXVlIG5vIGNhcmTDoXBpbyBkaWdpdGFsXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+RGVzY3Jpw6fDo288L2xhYmVsPlxuICAgICAgICA8dGV4dGFyZWEgaWQ9XCJkZXNjcmljYW9cIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmRlc2NyaWNhb1wiIGNvbHM9XCI0MFwiIHJvd3M9XCI1XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMlwiPjwvdGV4dGFyZWE+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPlZhcmlhw6fDtWVzIChzZXBhcmFkb3MgcG9yICc7Jyk8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgcGxhY2Vob2xkZXI9XCJFeC46IGJlbSBwYXNzYWRvO2FvIHBvbnRvO21hbCBwYXNzYWRvXCIgaWQ9XCJ2YXJpYWNvZXNcIiBtYXhsZW5ndGg9XCIzMDBcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLnZhcmlhY29lc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiIG1heGxlbmd0aD1cIjMwMFwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5DYXRlZ29yaWE8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cImNhdGVnb3JpYUNhcmRhcGlvXCIgKGNsaWNrKT1cImVkaXRhckNhdGVnb3JpYUNhcmRhcGlvKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGdyb3ctMSBpbnB1dC1zZWxlY2FvIGlucHV0LTMwMFwiPlxuICAgICAgICAgICAgICAgIHt7bW9kZWwuY2F0ZWdvcmlhQ2FyZGFwaW9Ob21lfX0gPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlZGl0YXJDYXRlZ29yaWFDYXJkYXBpbygpXCIgY2xhc3M9XCJmb3JtLWlubGluZS1idXR0b24gYnRuLWZvcm0tbWFyZ2luXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkdydXBvIG5vIEFwcCBDYW1hcmVpcmFzPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJ2ZXJpZmljYWNhb0dydXBvXCIgKGNsaWNrKT1cImVkaXRhclZlcmlmaWNhY2FvR3J1cG8oKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ3Jvdy0xIGlucHV0LXNlbGVjYW8gaW5wdXQtMzAwXCI+XG4gICAgICAgICAgICAgICAge3ttb2RlbC5wcm9kdXRvVmVyaWZpY2FvR3J1cG9Ob21lfX0gPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlZGl0YXJWZXJpZmljYWNhb0dydXBvKClcIiBjbGFzcz1cImZvcm0taW5saW5lLWJ1dHRvbiBidG4tZm9ybS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VtLWNvbnRhaW5lclwiICpuZ0lmPVwiZWRpdE1vZGVcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImltZ1VybFwiIGNsYXNzPVwiaW1nLWZsdWlkXCIgKm5nSWY9XCJpbWdVcmxcIiAvPlxuXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICNmaWxlIHBsYWNlaG9sZGVyPVwiQ2hvb3NlIGZpbGVcIiAoY2hhbmdlKT1cInVwbG9hZEZpbGUoZmlsZS5maWxlcylcIiBhY2NlcHQ9XCIuanBnLC5wbmdcIlxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbGUuY2xpY2soKVwiPkVzY29saGVyIEltYWdlbTwvYnV0dG9uPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkXCIgKm5nSWY9XCJwcm9ncmVzcyA+IDBcIj5cbiAgICAgICAgICAgIHt7cHJvZ3Jlc3N9fSVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZFwiICpuZ0lmPVwibWVzc2FnZVwiPlxuICAgICAgICAgICAge3ttZXNzYWdlfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG48L2Rpdj4iXX0=
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvcHJvZHV0b3MvcHJvZHV0by1mb3JtL3Byb2R1dG8tZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tZm9ybS9wcm9kdXRvLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBaUMsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFXLE1BQU0sbUNBQW1DLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU9uRSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxpSUFBaUksQ0FBQztBQUNqTSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyRkFBMkYsQ0FBQztBQUMvSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxvR0FBb0csQ0FBQztBQUMzSixPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw4SEFBOEgsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUUzTCxNQUFNLENBQUMsTUFBTSxnQkFB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LEtBQUssQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBeFVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGtKQ3RDakMsazFxQkEwYU0sOHBGRHRZUSxDQUFDLGdCQUFnQixDQUFDOzsyRkFFbkIsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGlCQUFpQixjQUdmLENBQUMsZ0JBQWdCLENBQUM7MFBBeUhyQixRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBU00sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkdyb3VwRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NvbnRyb2xzL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IGNyZWF0ZVByb2R1Y3QsIFByb2R1dG8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8nO1xuaW1wb3J0IHsgU2V0b3JFc3RvcXVlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9zZXRvci1lc3RvcXVlJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBOdW1iZXJQYXJzZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvbnVtYmVyLXBhcnNlcic7XG5pbXBvcnQgeyBUdXBsZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90dXBsZSc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5cbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cvcHJvZHV0by1jYXRlZ29yaWEtY2FyZGFwaW8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9HcnVwb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdXRvcy1ncnVwb3MvcHJvZHV0by1ncnVwby1zZWxlY2FvLWRpYWxvZy9wcm9kdXRvLWdydXBvLXNlbGVjYW8tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdXRvc05jbURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Byb2R1dG9zLW5jbS1kaWFsb2cvcHJvZHV0b3MtbmNtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b1N1YmdydXBvU2VsZWNhb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Byb2R1dG9zLXN1YmdydXBvcy9wcm9kdXRvLXN1YmdydXBvLXNlbGVjYW8tZGlhbG9nL3Byb2R1dG8tc3ViZ3J1cG8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9WZXJpZmljYW9HcnVwb1NlbGVjYW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdXRvcy12ZXJpZmljYWNhby1ncnVwby9wcm9kdXRvLXZlcmlmaWNhY2FvLWdydXBvLXNlbGVjYW8tZGlhbG9nL3Byb2R1dG8tdmVyaWZpY2FjYW8tZ3J1cG8tc2VsZWNhby1kaWFsb2cuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGxhdGVyYWxBbmltYXRpb24gPSB0cmlnZ2VyKFxuICAnbWVudUxhdGVyYWwnLFxuICBbXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICc6ZW50ZXInLCBbXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICBhbmltYXRlKCc2MDBtcycsIHN0eWxlKHsgJ29wYWNpdHknOiAxIH0pKVxuICAgIF1cbiAgICApXVxuKVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdveC1wcm9kdXRvLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0by1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHV0by1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtsYXRlcmFsQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNmb3BMaXN0OiBUdXBsZTxzdHJpbmcsIHN0cmluZz5bXSA9IFtcbiAgICB7IGl0ZW0xOiAnNTEwMScsIGl0ZW0yOiAnVmVuZGEgZGUgcHJvZHXDp8OjbyBkbyBlc3RhYmVsZWNpbWVudG8nIH0sXG4gICAgeyBpdGVtMTogJzUxMDInLCBpdGVtMjogJ1ZlbmRhIGRlIG1lcmNhZG9yaWEgYWRxdWlyaWRhIG91IHJlY2ViaWRhIGRlIHRlcmNlaXJvcycgfSxcbiAgICB7IGl0ZW0xOiAnNTQwNScsIGl0ZW0yOiAnVmVuZGEgZGUgbWVyY2Fkb3JpYSwgYWRxdWlyaWRhIG91IHJlY2ViaWRhIGRlIHRlcmNlaXJvcywgc3VqZWl0YSBhbyByZWdpbWUgZGUgc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEsIG5hIGNvbmRpw6fDo28gZGUgY29udHJpYnVpbnRlLXN1YnN0aXR1w61kbycgfSxcbiAgICB7IGl0ZW0xOiAnNTkzMycsIGl0ZW0yOiAnU2VydmnDp28nIH0sXG4gIF07XG4gIHN0TGlzdDogVHVwbGU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXG4gICAgeyBpdGVtMTogJ0YnLCBpdGVtMjogJ1N1YnMuIFRyaWIuJyB9LFxuICAgIHsgaXRlbTE6ICdJJywgaXRlbTI6ICdJc2VudG8nIH0sXG4gICAgeyBpdGVtMTogJ04nLCBpdGVtMjogJ07Do28gVHJpYnV0YWRvJyB9LFxuICAgIHsgaXRlbTE6ICdRJywgaXRlbTI6ICdJc2VudG8gSVNTUU4nIH0sXG4gICAgeyBpdGVtMTogJ1MnLCBpdGVtMjogJ1RyaWJ1dGFkbyBJU1NRTicgfSxcbiAgICB7IGl0ZW0xOiAnVCcsIGl0ZW0yOiAnVHJpYnV0YWRvIElDTVMnIH0sXG4gIF07XG4gIG1vZEJhc2VJQ01TOiBUdXBsZTxudW1iZXIsIHN0cmluZz5bXSA9IFtcbiAgICB7IGl0ZW0xOiAwLCBpdGVtMjogJ01hcmdlbSBWYWxvciBBZ3JlZ2FkbyAoJSknIH0sXG4gICAgeyBpdGVtMTogMSwgaXRlbTI6ICdQYXV0YSAoVmFsb3IpJyB9LFxuICAgIHsgaXRlbTE6IDIsIGl0ZW0yOiAnUHJlw6dvIFRhYmVsYWRvIE3DoXguICh2YWxvciknIH0sXG4gICAgeyBpdGVtMTogMywgaXRlbTI6ICdWYWxvciBkYSBvcGVyYcOnw6NvJyB9LFxuICBdO1xuICBjc3RJQ01TTGlzdDogVHVwbGU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXG4gICAgeyBpdGVtMTogJzAwJywgaXRlbTI6ICdUcmlidXRhZGEgaW50ZWdyYWxtZW50ZScgfSxcbiAgICB7IGl0ZW0xOiAnMTAnLCBpdGVtMjogJ1RyaWJ1dGFkYSBlIGNvbSBjb2JyYW7Dp2EgZG8gSUNNUyBwb3Igc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEnIH0sXG4gICAgeyBpdGVtMTogJzIwJywgaXRlbTI6ICdDb20gcmVkdcOnw6NvIGRlIGJhc2UgZGUgY8OhbGN1bG8nIH0sXG4gICAgeyBpdGVtMTogJzMwJywgaXRlbTI6ICdJc2VudGEgb3UgbsOjbyB0cmlidXRhZGEgZSBjb20gY29icmFuw6dhIGRvIElDTVMgcG9yIHN1YnN0aXR1acOnw6NvIHRyaWJ1dMOhcmlhJyB9LFxuICAgIHsgaXRlbTE6ICc0MCcsIGl0ZW0yOiAnSXNlbnRhJyB9LFxuICAgIHsgaXRlbTE6ICc0MScsIGl0ZW0yOiAnTsOjbyB0cmlidXRhZGEnIH0sXG4gICAgeyBpdGVtMTogJzUwJywgaXRlbTI6ICdTdXNwZW5zw6NvJyB9LFxuICAgIHsgaXRlbTE6ICc1MScsIGl0ZW0yOiAnRGlmZXJpbWVudG8nIH0sXG4gICAgeyBpdGVtMTogJzYwJywgaXRlbTI6ICdJQ01TIGNvYnJhZG8gYW50ZXJpb3JtZW50ZSBwb3Igc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEnIH0sXG4gICAgeyBpdGVtMTogJzcwJywgaXRlbTI6ICdDb20gcmVkdcOnw6NvIGRlIGJhc2UgZGUgY8OhbGN1bG8gZSBjb2JyYW7Dp2EgZG8gSUNNUyBwb3Igc3Vic3RpdHVpw6fDo28gdHJpYnV0w6FyaWEnIH0sXG4gICAgeyBpdGVtMTogJzkwJywgaXRlbTI6ICdPdXRyb3MnIH0sXG4gICAgeyBpdGVtMTogJzEwMScsIGl0ZW0yOiAnVHJpYnV0YWRhIHBlbG8gU2ltcGxlcyBOYWNpb25hbCBjb20gcGVybWlzc8OjbyBkZSBjcsOpZGl0bycgfSxcbiAgICB7IGl0ZW0xOiAnMTAyJywgaXRlbTI6ICdUcmlidXRhZGEgcGVsbyBTaW1wbGVzIE5hY2lvbmFsIHNlbSBwZXJtaXNzw6NvIGRlIGNyw6lkaXRvJyB9LFxuICAgIHsgaXRlbTE6ICcxMDMnLCBpdGVtMjogJ0lzZW7Dp8OjbyBkbyBJQ01TIG5vIFNpbXBsZXMgTmFjaW9uYWwgcGFyYSBmYWl4YSBkZSByZWNlaXRhIGJydXRhJyB9LFxuICAgIHsgaXRlbTE6ICczMDAnLCBpdGVtMjogJ0ltdW5lJyB9LFxuICAgIHsgaXRlbTE6ICc0MDAnLCBpdGVtMjogJ07Do28gdHJpYnV0YWRhIHBlbG8gU2ltcGxlcyBOYWNpb25hbCcgfSxcbiAgICB7IGl0ZW0xOiAnMjAxJywgaXRlbTI6ICdUcmlidXRhZGEgcGVsbyBTaW1wbGVzIE5hY2lvbmFsIGNvbSBwZXJtaXNzw6NvIGRlIGNyw6lkaXRvIGUgY29tIGNvYnJhbsOnYSBkbyBJQ01TIHBvciBTdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYScgfSxcbiAgICB7IGl0ZW0xOiAnMjAyJywgaXRlbTI6ICdUcmlidXRhZGEgcGVsbyBTaW1wbGVzIE5hY2lvbmFsIHNlbSBwZXJtaXNzw6NvIGRlIGNyw6lkaXRvIGUgY29tIGNvYnJhbsOnYSBkbyBJQ01TIHBvciBTdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYScgfSxcbiAgICB7IGl0ZW0xOiAnMjAzJywgaXRlbTI6ICdJc2Vuw6fDo28gZG8gSUNNUyBub3MgU2ltcGxlcyBOYWNpb25hbCBwYXJhIGZhaXhhIGRlIHJlY2VpdGEgYnJ1dGEgZSBjb20gY29icmFuw6dhIGRvIElDTVMgcG9yIFN1YnN0aXR1acOnw6NvIFRyaWJ1dMOhcmlhJyB9LFxuICAgIHsgaXRlbTE6ICc1MDAnLCBpdGVtMjogJ0lDTVMgY29icmFkbyBhbnRlcmlvcm1lbnRlIHBvciBzdWJzdGl0dWnDp8OjbyB0cmlidXTDoXJpYSAoc3Vic3RpdHXDrWRvKSBvdSBwb3IgYW50ZWNpcGHDp8OjbycgfSxcbiAgICB7IGl0ZW0xOiAnOTAwJywgaXRlbTI6ICdPdXRyb3MnIH1cbiAgXTtcbiAgY3N0Q29maW5zTGlzdDogVHVwbGU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXG4gICAgeyBpdGVtMTogJzAxJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAoYmFzZSBkZSBjw6FsY3VsbyA9IHZhbG9yIGRhIG9wZXJhw6fDo28gYWzDrXF1b3RhIG5vcm1hbCAoY3VtdWxhdGl2by9uw6NvIGN1bXVsYXRpdm8pKTsnIH0sXG4gICAgeyBpdGVtMTogJzAyJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAoYmFzZSBkZSBjw6FsY3VsbyA9IHZhbG9yIGRhIG9wZXJhw6fDo28gKGFsw61xdW90YSBkaWZlcmVuY2lhZGEpKTsnIH0sXG4gICAgeyBpdGVtMTogJzAzJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAoYmFzZSBkZSBjw6FsY3VsbyA9IHF1YW50aWRhZGUgdmVuZGlkYSB4IGFsw61xdW90YSBwb3IgdW5pZGFkZSBkZSBwcm9kdXRvKTsnIH0sXG4gICAgeyBpdGVtMTogJzA0JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBUcmlidXTDoXZlbCAodHJpYnV0YcOnw6NvIG1vbm9mw6FzaWNhIChhbMOtcXVvdGEgemVybykpOycgfSxcbiAgICB7IGl0ZW0xOiAnMDUnLCBpdGVtMjogJyBPcGVyYcOnw6NvIFRyaWJ1dMOhdmVsIChTdWJzdGl0dWnDp8OjbyBUcmlidXTDoXJpYSk7JyB9LFxuICAgIHsgaXRlbTE6ICcwNicsIGl0ZW0yOiAnIE9wZXJhw6fDo28gVHJpYnV0w6F2ZWwgKGFsw61xdW90YSB6ZXJvKTsnIH0sXG4gICAgeyBpdGVtMTogJzA3JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBJc2VudGEgZGEgQ29udHJpYnVpw6fDo287JyB9LFxuICAgIHsgaXRlbTE6ICcwOCcsIGl0ZW0yOiAnIE9wZXJhw6fDo28gU2VtIEluY2lkw6puY2lhIGRhIENvbnRyaWJ1acOnw6NvOycgfSxcbiAgICB7IGl0ZW0xOiAnMDknLCBpdGVtMjogJyBPcGVyYcOnw6NvIGNvbSBTdXNwZW5zw6NvIGRhIENvbnRyaWJ1acOnw6NvOycgfSxcbiAgICB7IGl0ZW0xOiAnOTknLCBpdGVtMjogJyBPdXRyYXMgT3BlcmHDp8O1ZXM7JyB9LFxuICAgIHsgaXRlbTE6ICc0OScsIGl0ZW0yOiAnIE91dHJhcyBPcGVyYcOnw7VlcyBkZSBTYcOtZGE7ICcgfSxcbiAgICB7IGl0ZW0xOiAnNTAnLCBpdGVtMjogJyBPcGVyYcOnw6NvIGNvbSBEaXJlaXRvIGEgQ3LDqWRpdG8gIFZpbmN1bGFkYSBFeGNsdXNpdmFtZW50ZSBhIFJlY2VpdGEgVHJpYnV0YWRhIG5vIE1lcmNhZG8gSW50ZXJubzsgJyB9LFxuICAgIHsgaXRlbTE6ICc1MScsIGl0ZW0yOiAnIE9wZXJhw6fDo28gY29tIERpcmVpdG8gYSBDcsOpZGl0byAgVmluY3VsYWRhIEV4Y2x1c2l2YW1lbnRlIGEgUmVjZWl0YSBOw6NvIFRyaWJ1dGFkYSBubyBNZXJjYWRvIEludGVybm8gOycgfSxcbiAgICB7IGl0ZW0xOiAnNTInLCBpdGVtMjogJyBPcGVyYcOnw6NvIGNvbSBEaXJlaXRvIGEgQ3LDqWRpdG8gIFZpbmN1bGFkYSBFeGNsdXNpdmFtZW50ZSBhIFJlY2VpdGEgZGUgRXhwb3J0YcOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzUzJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBjb20gRGlyZWl0byBhIENyw6lkaXRvICBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vOyAnIH0sXG4gICAgeyBpdGVtMTogJzU0JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBjb20gRGlyZWl0byBhIENyw6lkaXRvICBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIG5vIE1lcmNhZG8gSW50ZXJubyBlIGRlIEV4cG9ydGHDp8OjbyA7JyB9LFxuICAgIHsgaXRlbTE6ICc1NScsIGl0ZW0yOiAnIE9wZXJhw6fDo28gY29tIERpcmVpdG8gYSBDcsOpZGl0byAgVmluY3VsYWRhIGEgUmVjZWl0YXMgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vIGUgZGUgRXhwb3J0YcOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzU2JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBjb20gRGlyZWl0byBhIENyw6lkaXRvICBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vLCBlIGRlIEV4cG9ydGHDp8OjbzsnIH0sXG4gICAgeyBpdGVtMTogJzYwJywgaXRlbTI6ICcgQ3LDqWRpdG8gUHJlc3VtaWRvICBPcGVyYcOnw6NvIGRlIEFxdWlzacOnw6NvIFZpbmN1bGFkYSBFeGNsdXNpdmFtZW50ZSBhIFJlY2VpdGEgVHJpYnV0YWRhIG5vIE1lcmNhZG8gSW50ZXJubzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2MScsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgRXhjbHVzaXZhbWVudGUgYSBSZWNlaXRhIE7Do28gVHJpYnV0YWRhIG5vIE1lcmNhZG8gSW50ZXJubzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2MicsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgRXhjbHVzaXZhbWVudGUgYSBSZWNlaXRhIGRlIEV4cG9ydGHDp8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2MycsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vOyAnIH0sXG4gICAgeyBpdGVtMTogJzY0JywgaXRlbTI6ICcgQ3LDqWRpdG8gUHJlc3VtaWRvICBPcGVyYcOnw6NvIGRlIEFxdWlzacOnw6NvIFZpbmN1bGFkYSBhIFJlY2VpdGFzIFRyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vIGUgZGUgRXhwb3J0YcOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzY1JywgaXRlbTI6ICcgQ3LDqWRpdG8gUHJlc3VtaWRvICBPcGVyYcOnw6NvIGRlIEFxdWlzacOnw6NvIFZpbmN1bGFkYSBhIFJlY2VpdGFzIE7Do29UcmlidXRhZGFzIG5vIE1lcmNhZG8gSW50ZXJubyBlIGRlIEV4cG9ydGHDp8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2NicsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBWaW5jdWxhZGEgYSBSZWNlaXRhcyBUcmlidXRhZGFzIGUgTsOjb1RyaWJ1dGFkYXMgbm8gTWVyY2FkbyBJbnRlcm5vLCBlIGRlIEV4cG9ydGHDp8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc2NycsIGl0ZW0yOiAnIENyw6lkaXRvIFByZXN1bWlkbyAgT3V0cmFzIE9wZXJhw6fDtWVzOyAnIH0sXG4gICAgeyBpdGVtMTogJzcwJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBzZW0gRGlyZWl0byBhIENyw6lkaXRvOyAnIH0sXG4gICAgeyBpdGVtMTogJzcxJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBjb20gSXNlbsOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzcyJywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBjb20gU3VzcGVuc8OjbzsgJyB9LFxuICAgIHsgaXRlbTE6ICc3MycsIGl0ZW0yOiAnIE9wZXJhw6fDo28gZGUgQXF1aXNpw6fDo28gYSBBbMOtcXVvdGEgWmVybzsgJyB9LFxuICAgIHsgaXRlbTE6ICc3NCcsIGl0ZW0yOiAnIE9wZXJhw6fDo28gZGUgQXF1aXNpw6fDo28gc2VtIEluY2lkw6puY2lhIGRhIENvbnRyaWJ1acOnw6NvOyAnIH0sXG4gICAgeyBpdGVtMTogJzc1JywgaXRlbTI6ICcgT3BlcmHDp8OjbyBkZSBBcXVpc2nDp8OjbyBwb3IgU3Vic3RpdHVpw6fDo28gVHJpYnV0w6FyaWE7JyB9LFxuICAgIHsgaXRlbTE6ICc5OCcsIGl0ZW0yOiAnIE91dHJhcyBPcGVyYcOnw7VlcyBkZSBFbnRyYWRhOycgfSxcbiAgXTtcbiAgbmNtRW5jb250cmFkbzogYm9vbGVhbiA9IGZhbHNlO1xuICBuY21OYW9FbmNvbnRyYWRvOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHBSZWRCQ0VmZXRfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBSZWRCQ0VmZXRfaWNtcyA9IHYsICgpID0+IHRoaXMubW9kZWwucFJlZEJDRWZldF9pY21zKTtcbiAgcGljbXNFZmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC5waWNtc0VmZXRfaWNtcyA9IHYsICgpID0+IHRoaXMubW9kZWwucGljbXNFZmV0X2ljbXMpO1xuICB2YmNFZmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YmNFZmV0X2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZiY0VmZXRfaWNtcyk7XG4gIHZpY21zRWZldF9pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcih2ID0+IHRoaXMubW9kZWwudmljbXNFZmV0X2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZpY21zRWZldF9pY21zKTtcblxuICBwc1RfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBzVF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wc1RfaWNtcyk7XG4gIHZiY3N0UmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YmNzdFJldF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YmNzdFJldF9pY21zKTtcbiAgdmljbXNTdWJzdGl0dXRvX2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52aWNtc1N1YnN0aXR1dG9faWNtcyA9IHYsICgpID0+IHRoaXMubW9kZWwudmljbXNTdWJzdGl0dXRvX2ljbXMpO1xuICB2aWNtc3N0UmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52aWNtc3N0UmV0X2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZpY21zc3RSZXRfaWNtcyk7XG5cbiAgcGZjUF9pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcih2ID0+IHRoaXMubW9kZWwucGZjUF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wZmNQX2ljbXMpO1xuICB2YmNmY1BfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnZiY2ZjUF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YmNmY1BfaWNtcyk7XG4gIHBmY3BzVF9pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcih2ID0+IHRoaXMubW9kZWwucGZjcHNUX2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnBmY3BzVF9pY21zKTtcbiAgdmJjZmNwc1RfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnZiY2ZjcHNUX2ljbXMgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnZiY2ZjcHNUX2ljbXMpO1xuICBwZmNwc3RSZXRfaWNtc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBmY3BzdFJldF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wZmNwc3RSZXRfaWNtcyk7XG4gIHZiY2ZjcHN0UmV0X2ljbXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YmNmY3BzdFJldF9pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YmNmY3BzdFJldF9pY21zKTtcblxuICBwcGlTX3Bpc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBwaVNfcGlzID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wcGlTX3Bpcyk7XG4gIHZiQ19waXNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YkNfcGlzID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YkNfcGlzKTtcblxuICBwY29maW5TX2NvZmluc1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIodiA9PiB0aGlzLm1vZGVsLnBjb2ZpblNfY29maW5zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wY29maW5TX2NvZmlucyk7XG4gIHZiQ19jb2ZpbnNQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKHYgPT4gdGhpcy5tb2RlbC52YkNfY29maW5zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC52YkNfY29maW5zKTtcblxuXG4gIHByZWNvVmVuZGFQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnByZWNvVmVuZGEgPSB2ID8/IDAsICgpID0+IHRoaXMubW9kZWwucHJlY29WZW5kYSk7XG4gIHByZWNvQ3VzdG9QYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnByZWNvQ3VzdG8gPSB2ID8/IDAsICgpID0+IHRoaXMubW9kZWwucHJlY29DdXN0byk7XG4gIHByZWNvRnVuY1BhcnNlciA9IG5ldyBOdW1iZXJQYXJzZXIoKHYpID0+IHRoaXMubW9kZWwucHJlY29GdW5jaW9uYXJpbyA9IHYgPz8gMCwgKCkgPT4gdGhpcy5tb2RlbC5wcmVjb0Z1bmNpb25hcmlvKTtcblxuICBwSUNNU19pY21zUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcigodikgPT4gdGhpcy5tb2RlbC5wSUNNU19pY21zID0gdiwgKCkgPT4gdGhpcy5tb2RlbC5wSUNNU19pY21zKTtcbiAgXG4gIHF0ZE1pblN1YkVzdG9xdWVQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnF0ZE1pblN1YkVzdG9xdWUgPSB2LCAoKSA9PiB0aGlzLm1vZGVsLnF0ZE1pblN1YkVzdG9xdWUpO1xuICBlc3RvcXVlTWluaW1vUGFyc2VyID0gbmV3IE51bWJlclBhcnNlcigodikgPT4gdGhpcy5tb2RlbC5lc3RvcXVlTWluaW1vID0gdiA/PyAwLCAoKSA9PiB0aGlzLm1vZGVsLmVzdG9xdWVNaW5pbW8pO1xuICBxdWFudGlkYWRlU3VpdGVQYXJzZXIgPSBuZXcgTnVtYmVyUGFyc2VyKCh2KSA9PiB0aGlzLm1vZGVsLnF1YW50aWRhZGVTdWl0ZSA9IHYgPz8gMCwgKCkgPT4gdGhpcy5tb2RlbC5xdWFudGlkYWRlU3VpdGUpO1xuXG4gIGxhenlUcmlnZ2VyTmNtID0gbmV3IExhenlUcmlnZ2VyKCgpID0+IHsgdGhpcy5maW5kTkNNKCk7IH0pO1xuXG4gIEBJbnB1dCgpIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBuZXh0SWRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHVibGljIHByb2dyZXNzOiBudW1iZXIgPSAwO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIGltZ1VybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIF9tb2RlbDogUHJvZHV0byA9IGNyZWF0ZVByb2R1Y3QoKTtcbiAgZ2V0IG1vZGVsKCk6IFByb2R1dG8ge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IFByb2R1dG8pIHtcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xuICAgIHRoaXMuc2V0SW1nVXJsKCk7XG4gICAgdGhpcy5maW5kTkNNKCk7XG4gIH1cblxuICB0YWJzOiBSYWRpb0J1dHRvbkdyb3VwRGF0YVtdID0gW1xuICAgIHsgbmFtZTogXCJDYW1wb3MgR2VyYWlzXCIsIHZhbHVlOiAwIH0sXG4gICAgeyBuYW1lOiBcIkNhbXBvcyBGaXNjYWlzXCIsIHZhbHVlOiAxIH0sXG4gICAgeyBuYW1lOiBcIkNhcmTDoXBpbyBEaWdpdGFsXCIsIHZhbHVlOiAyIH1cbiAgXTtcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XG4gIHNldG9yZXM6IFNldG9yRXN0b3F1ZVtdID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkU2V0b3JlcygpO1xuICB9XG5cbiAgbG9hZFNldG9yZXMoKSB7XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuZ2V0QWxsU2V0b3JlcygpXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLnNldG9yZXMgPSByO1xuICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICB9KTtcbiAgfVxuICBlZGl0YXJOQ00oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk1KSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5zY3JlZW5IZWxwZXIubW9iaWxlU2NyZWVuKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9zTmNtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICAgIHRoaXMubW9kZWwubmNtID0gcmVzdWx0LmNvZGlnb0FwZW5hc0RpZ2l0b3M7XG4gICAgICB0aGlzLmxhenlUcmlnZ2VyTmNtLmZpcmUoKTtcbiAgICB9KTtcbiAgfVxuICBlZGl0YXJTdWJncnVwbygpIHtcbiAgICBsZXQgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTUpICsgJ3B4JztcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLnNjcmVlbkhlbHBlci5tb2JpbGVTY3JlZW4pIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTkpICsgJ3B4JztcbiAgICB9XG4gICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b1N1YmdydXBvU2VsZWNhb0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XG4gICAgICB0aGlzLm1vZGVsLnN1YmdydXBvSWQgPSByZXN1bHQuaWQ7XG4gICAgICB0aGlzLm1vZGVsLnN1YmdydXBvTm9tZSA9IHJlc3VsdC5ub21lO1xuICAgIH0pO1xuICB9XG4gIGVkaXRhckdydXBvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45NSkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMuc2NyZWVuSGVscGVyLm1vYmlsZVNjcmVlbikge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvR3J1cG9TZWxlY2FvRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICAgIHRoaXMubW9kZWwuZ3J1cG9JZCA9IHJlc3VsdC5pZDtcbiAgICAgIHRoaXMubW9kZWwuZ3J1cG9Ob21lID0gcmVzdWx0Lm5vbWU7XG4gICAgfSk7XG4gIH1cbiAgZWRpdGFyQ2F0ZWdvcmlhQ2FyZGFwaW8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk1KSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5zY3JlZW5IZWxwZXIubW9iaWxlU2NyZWVuKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1NlbGVjYW9EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGlmICghdGhpcy5tb2RlbCkgcmV0dXJuO1xuICAgICAgdGhpcy5tb2RlbC5jYXRlZ29yaWFDYXJkYXBpb0lkID0gcmVzdWx0LmlkO1xuICAgICAgdGhpcy5tb2RlbC5jYXRlZ29yaWFDYXJkYXBpb05vbWUgPSByZXN1bHQubm9tZTtcbiAgICB9KTtcbiAgfVxuICBlZGl0YXJWZXJpZmljYWNhb0dydXBvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45NSkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMuc2NyZWVuSGVscGVyLm1vYmlsZVNjcmVlbikge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvVmVyaWZpY2FvR3J1cG9TZWxlY2FvRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICAgIHRoaXMubW9kZWwucHJvZHV0b1ZlcmlmaWNhb0dydXBvSWQgPSByZXN1bHQuaWQ7XG4gICAgICB0aGlzLm1vZGVsLnByb2R1dG9WZXJpZmljYW9HcnVwb05vbWUgPSByZXN1bHQubm9tZTtcbiAgICB9KTtcbiAgfVxuICBjaGFuZ2VNb2RvKGV2OiBSYWRpb0J1dHRvbkdyb3VwRGF0YSkge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBldi52YWx1ZTtcbiAgfVxuXG4gIHVwbG9hZEZpbGUoZmlsZXMgOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBmaWxlVG9VcGxvYWQgPSA8RmlsZT5maWxlc1swXTtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGVUb1VwbG9hZCwgZmlsZVRvVXBsb2FkLm5hbWUpO1xuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMud3MuVVBMT0FEX0NPTlRFTlRfQkFTRV9VUkwgKyBcIlByb2R1dG8/cHJvZHV0b0lkPVwiICsgdGhpcy5tb2RlbC5pZCwgZm9ybURhdGEsXG4gICAgICB7XG4gICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQXV0aG9yaXphdGlvblwiOiAndG9rZW4gJyArIHRoaXMuYXV0aC50b2tlbixcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcylcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IHRvdGFsID0gZXZlbnQudG90YWwgPz8gLTE7XG4gICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gdG90YWwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSAnU3VjZXNzbyc7XG4gICAgICAgICAgdGhpcy5pbWdVcmwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldEltZ1VybChuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKSArIFwiXCIpO1xuICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICB9XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICBjb25zdCBodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlID0gZXJyO1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBodHRwRXJyb3IuZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNldEltZ1VybCh1cGxvYWQ6IHN0cmluZ3x1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICB0aGlzLmltZ1VybCA9IHRoaXMud3MuTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMICtcbiAgICAgICc/cHJvZHV0b0lkPScgKyB0aGlzLm1vZGVsLmlkICtcbiAgICAgICcmdG9rZW49JyArIHRoaXMuYXV0aC50b2tlbiArXG4gICAgICAodXBsb2FkICE9PSB1bmRlZmluZWQgPyAnJnVwbG9hZD0nICsgdXBsb2FkIDogJycpO1xuICB9XG5cbiAgZmluZE5DTSgpIHtcbiAgICB0aGlzLm5jbUVuY29udHJhZG8gPSBmYWxzZTtcbiAgICB0aGlzLm5jbU5hb0VuY29udHJhZG8gPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICBpZiAoIXRoaXMubW9kZWwubmNtKSByZXR1cm47XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuZmluZE5jbSh0aGlzLm1vZGVsLm5jbSlcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgIHRoaXMubmNtRW5jb250cmFkbyA9IHIgIT0gbnVsbDtcbiAgICAgICAgdGhpcy5uY21OYW9FbmNvbnRyYWRvID0gciA9PSBudWxsO1xuICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDE2cHhcIj5cbiAgICA8b3gtcmFkaW8tYnV0dG9uLWdyb3VwIChjaGFuZ2UpPVwiY2hhbmdlTW9kbygkZXZlbnQpXCIgW2l0ZW1zXT1cInRhYnNcIiBjbGFzcz1cInRvb2wtaXRlbS1jb250YWluZXJcIj5cbiAgICA8L294LXJhZGlvLWJ1dHRvbi1ncm91cD5cbjwvZGl2PlxuPGRpdiBbQG1lbnVMYXRlcmFsXSBjbGFzcz1cInZib3hcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09IDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkPDs2RpZ288L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJpZFwiIFtyZWFkb25seV09XCJlZGl0TW9kZVwiIFsobmdNb2RlbCldPVwibW9kZWwuaWRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJuZXh0SWRDbGljay5lbWl0KClcIiAqbmdJZj1cIiFlZGl0TW9kZVwiIGNsYXNzPVwiZm9ybS1pbmxpbmUtYnV0dG9uIGJ0bi1mb3JtLW1hcmdpblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBsaWdodGJ1bGJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYXJnaW4tbGVmdC04XCI+XG4gICAgICAgICAgICA8bGFiZWw+UmVmZXLDqm5jaWE8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicmVmZXJlbmNpYVwiIG1heGxlbmd0aD1cIjMwXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5yZWZlcmVuY2lhXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCIgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5Ob21lPC9sYWJlbD5cbiAgICAgICAgPGlucHV0IGlkPVwibm9tZVwiIG1heGxlbmd0aD1cIjYwXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5ub21lXCIgY2RrRm9jdXNJbml0aWFsIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiIHRhYmluZGV4PVwiMlwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+UHJlw6dvIGRlIFZlbmRhPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInByZWNvVmVuZGFcIiBbbmdNb2RlbF09XCJtb2RlbC5wcmVjb1ZlbmRhIHwgbnVtYmVyOicxLjItMidcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByZWNvVmVuZGFQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwcmVjb1ZlbmRhUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCIgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCAgbWFyZ2luLWxlZnQtOFwiPlxuICAgICAgICAgICAgPGxhYmVsPlByZcOnbyBwLyBGdW5jLjwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwcmVjb0Z1bmNpb25hcmlvXCIgW25nTW9kZWxdPVwibW9kZWwucHJlY29GdW5jaW9uYXJpbyB8IG51bWJlcjonMS4yLTInXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcmVjb0Z1bmNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwcmVjb0Z1bmNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIiB0YWJpbmRleD1cIjJcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwICBtYXJnaW4tbGVmdC04XCI+XG4gICAgICAgICAgICA8bGFiZWw+UHJlw6dvIGRlIEN1c3RvPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInByZWNvQ3VzdG9cIiBbbmdNb2RlbF09XCJtb2RlbC5wcmVjb0N1c3RvIHwgbnVtYmVyOicxLjItMidcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInByZWNvQ3VzdG9QYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwcmVjb0N1c3RvUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCIgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5HcnVwbzwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiZ3J1cG9cIiAoY2xpY2spPVwiZWRpdGFyR3J1cG8oKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGdyb3ctMSBpbnB1dC1zZWxlY2FvIGlucHV0LTMwMFwiPlxuICAgICAgICAgICAgICAgIHt7bW9kZWwuZ3J1cG9Ob21lfX0gPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlZGl0YXJHcnVwbygpXCIgY2xhc3M9XCJmb3JtLWlubGluZS1idXR0b24gYnRuLWZvcm0tbWFyZ2luXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPlN1YmdydXBvPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJzdWJncnVwb1wiIChjbGljayk9XCJlZGl0YXJTdWJncnVwbygpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ3Jvdy0xIGlucHV0LXNlbGVjYW8gaW5wdXQtMzAwXCI+XG4gICAgICAgICAgICAgICAge3ttb2RlbC5zdWJncnVwb05vbWV9fSA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVkaXRhclN1YmdydXBvKClcIiBjbGFzcz1cImZvcm0taW5saW5lLWJ1dHRvbiBidG4tZm9ybS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+VW5pZGFkZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1bmlkYWRlXCIgWyhuZ01vZGVsKV09XCJtb2RlbC51bmlkYWRlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkVzdG9xdWUgTWluLjwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJlc3RvcXVlTWluaW1vXCIgW25nTW9kZWxdPVwibW9kZWwuZXN0b3F1ZU1pbmltb1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJlc3RvcXVlTWluaW1vUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwiZXN0b3F1ZU1pbmltb1BhcnNlci5jaGVja291dCgpXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlF0ZC4gU3XDrXRlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInF1YW50aWRhZGVTdWl0ZVwiIFtuZ01vZGVsXT1cIm1vZGVsLnF1YW50aWRhZGVTdWl0ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMCB0ZXh0LXJpZ2h0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInF1YW50aWRhZGVTdWl0ZVBhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInF1YW50aWRhZGVTdWl0ZVBhcnNlci5jaGVja291dCgpXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5Dw7NkaWdvIFBhdHJpbcO0bmlvPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cImNvZGlnb1BhdHJpbW9uaW9cIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmNvZGlnb1BhdHJpbW9uaW9cIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIlxuICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjM2XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPk9icy48L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwib2JzXCIgbWF4bGVuZ3RoPVwiMzAwXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5vYnNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIiBtYXhsZW5ndGg9XCIzMDBcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImhib3ggZ2FwLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5TZXRvciBTdWJlc3RvcXVlPC9sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cIm1vZGVsLnNldG9yU3ViRXN0b3F1ZUlkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGkgb2Ygc2V0b3Jlc1wiIFt2YWx1ZV09XCJpLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7aS5ub21lfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlF0ZC4gU3ViZXN0b3F1ZTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJxdGRNaW5TdWJFc3RvcXVlXCIgW25nTW9kZWxdPVwibW9kZWwucXRkTWluU3ViRXN0b3F1ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMCB0ZXh0LXJpZ2h0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInF0ZE1pblN1YkVzdG9xdWVQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJxdGRNaW5TdWJFc3RvcXVlUGFyc2VyLmNoZWNrb3V0KClcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZib3hcIj5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC5lc3RvcXVlQ29udHJvbGFkb1wiIHRhYmluZGV4PS0xPkNvbnRyb2xhZG8gbm8gRXN0b3F1ZTwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC5pbXByaW1pQ296aW5oYVwiIHRhYmluZGV4PS0xPkltcHJpbWUgQ296aW5oYTwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC5pbXByaW1lQ29ycmVkb3JcIiB0YWJpbmRleD0tMT5JbXByaW1lIENvcnJlZG9yPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIm1vZGVsLnZlck5hUmVjZXBjYW9cIiB0YWJpbmRleD0tMT5WZXIgbmEgUmVjZXDDp8OjbzwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJtb2RlbC5vbWl0ZUNsaWVudGVcIiB0YWJpbmRleD0tMT5Ow6NvIEV4aWJlIHBhcmEgbyBDbGllbnRlIG5hIFNhw61kYVxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwibW9kZWwuaXNBdGl2b1wiIHRhYmluZGV4PS0xPkF0aXZhZG88L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZGl2IFtAbWVudUxhdGVyYWxdIGNsYXNzPVwidmJveFwiICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT0gMVwiPlxuXG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDE2cHg7XCIgY2xhc3M9XCJ2Ym94XCI+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwibW9kZWwuZW1pdGVORkNlXCIgdGFiaW5kZXg9LTE+RW1pdGUgRmlzY2FsXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkdUSU48L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZ3RpblwiIFsobmdNb2RlbCldPVwibW9kZWwuZ3RpblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiIHBsYWNlaG9sZGVyPVwiU0VNIEdUSU5cIlxuICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkNGT1A8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiY2ZvcFwiIFsobmdNb2RlbCldPVwibW9kZWwuY2ZvcFwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIG1hdElucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMFwiXG4gICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNFwiPlxuICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGNmb3BMaXN0XCIgW3ZhbHVlXT1cIm9wdGlvbi5pdGVtMVwiPlxuICAgICAgICAgICAgICAgICAgICB7e29wdGlvbi5pdGVtMX19IDxzbWFsbD57e29wdGlvbi5pdGVtMn19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPk5DTTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIm5jbVwiIChpbnB1dCk9XCJsYXp5VHJpZ2dlck5jbS5maXJlKClcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLm5jbVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlZGl0YXJOQ00oKVwiIGNsYXNzPVwiZm9ybS1pbmxpbmUtYnV0dG9uIGJ0bi1mb3JtLW1hcmdpblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYnVzY2FuZG9cIiAqbmdJZj1cImlzQnVzeVwiPkJ1c2NhbmRvLi4uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgZW5jb250cmFkb1wiICpuZ0lmPVwibmNtRW5jb250cmFkb1wiPkVuY29udHJhZG88L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBuYW8tZW5jb250cmFkb1wiICpuZ0lmPVwibmNtTmFvRW5jb250cmFkb1wiPk7Do28gZW5jb250cmFkbzwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkNFU1Q8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiY2VzdFwiIFsobmdNb2RlbCldPVwibW9kZWwuY2VzdFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiIG1heGxlbmd0aD1cIjdcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+SUNNUyAoRUNGL1NBVCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwiYWxpcXVvdGFJQ01TXCIgWyhuZ01vZGVsKV09XCJtb2RlbC5hbGlxdW90YUlDTVNcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiXG4gICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5TLiBULiAoRUNGL1NBVCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwic2l0VHJpYlwiIFsobmdNb2RlbCldPVwibW9kZWwuc2l0VHJpYlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1NUXCIgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMjBcIiBtYXhsZW5ndGg9XCI1XCI+XG4gICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0b1NUPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzdExpc3RcIiBbdmFsdWVdPVwib3B0aW9uLml0ZW0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7b3B0aW9uLml0ZW0xfX0gPHNtYWxsPnt7b3B0aW9uLml0ZW0yfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgIDwvZGl2PlxuICAgIDxoND5DYW1wb3MgZGEgTkZDLWU8L2g0PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q1NUL0NTT1NOPC9sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cIm1vZGVsLmNzVF9pY21zXCIgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpIG9mIGNzdElDTVNMaXN0XCIgW3ZhbHVlXT1cImkuaXRlbTFcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpLml0ZW0xfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkFsaXEuIElDTVMgKCUpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInBJQ01TX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC5wSUNNU19pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBJQ01TX2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwSUNNU19pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPk1vZGFsaWRhZGUgQkM8L2xhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwibW9kZWwubW9kQkNfaWNtc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpIG9mIG1vZEJhc2VJQ01TXCIgW3ZhbHVlXT1cImkuaXRlbTFcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpLml0ZW0xfX0gPHNtYWxsPnt7aS5pdGVtMn19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPmNCZW5lZjwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJjQmVuZWZcIiBbKG5nTW9kZWwpXT1cIm1vZGVsLmNCZW5lZlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiIG1heGxlbmd0aD1cIjIwXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxoNj5JQ01TIEVmZXRpdm8gQ1NUNjAvQ1NPU041MDA8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+cFJlZEJDRWZldCAoJSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicFJlZEJDRWZldF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwucFJlZEJDRWZldF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBSZWRCQ0VmZXRfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInBSZWRCQ0VmZXRfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5wSUNNU0VmZXQgKCUpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInBpY21zRWZldF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwucGljbXNFZmV0X2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGljbXNFZmV0X2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwaWNtc0VmZXRfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD52QkNFZmV0IChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmJjRWZldF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwudmJjRWZldF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZiY0VmZXRfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZiY0VmZXRfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD52SUNNU0VmZXQgKFIkKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ2aWNtc0VmZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZpY21zRWZldF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZpY21zRWZldF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwidmljbXNFZmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGg2PlN1YnN0aXR1acOnw6NvIFRyaWJ1dMOhcmlhIChTVCk8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+cFNUICglKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwc1RfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnBzVF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBzVF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicHNUX2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dkJDU1RSZXQgKFIkKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ2YmNzdFJldF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwudmJjc3RSZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YmNzdFJldF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwidmJjc3RSZXRfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD52SUNNU1N1YnMgKFIkKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ2aWNtc1N1YnN0aXR1dG9faWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZpY21zU3Vic3RpdHV0b19pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZpY21zU3Vic3RpdHV0b19pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJ2aWNtc1N1YnN0aXR1dG9faWNtc1BhcnNlci5jaGVja291dCgpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dklDTVNTVFJldCAoUiQpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInZpY21zc3RSZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZpY21zc3RSZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2aWNtc3N0UmV0X2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJ2aWNtc3N0UmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGg2PkZ1bmRvIGRlIENvbWJhdGUgYSBQb2JyZXNhPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnBGQ1AgKCUpPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInBmY1BfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnBmY1BfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZmNQX2ljbXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJwZmNQX2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dkJDRkNQIChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmJjZmNQX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC52YmNmY1BfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YmNmY1BfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZiY2ZjUF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnBGQ1BTVCAoJSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicGZjcHNUX2ljbXNcIiBbbmdNb2RlbF09XCJtb2RlbC5wZmNwc1RfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwZmNwc1RfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInBmY3BzVF9pY21zUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPnZCQ0ZDUFNUIChSJCk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmJjZmNwc1RfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZiY2ZjcHNUX2ljbXMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmJjZmNwc1RfaWNtc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZiY2ZjcHNUX2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+cEZDUFNUUmV0ICglKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwZmNwc3RSZXRfaWNtc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnBmY3BzdFJldF9pY21zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBmY3BzdFJldF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicGZjcHN0UmV0X2ljbXNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+dkJDRkNQU1RSZXQgKFIkKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ2YmNmY3BzdFJldF9pY21zXCIgW25nTW9kZWxdPVwibW9kZWwudmJjZmNwc3RSZXRfaWNtcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YmNmY3BzdFJldF9pY21zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwidmJjZmNwc3RSZXRfaWNtc1BhcnNlci5jaGVja291dCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0xMDAgdGV4dC1yaWdodFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8aDY+UElTPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJveCBnYXAtOFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkNTVC9QSVM8L2xhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwibW9kZWwuY3NUX3Bpc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJudWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIE5lbmh1bVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaSBvZiBjc3RDb2ZpbnNMaXN0XCIgW3ZhbHVlXT1cImkuaXRlbTFcIj5cbiAgICAgICAgICAgICAgICAgICAge3tpLml0ZW0xfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPkFsaXF1b3RhIFBJUyAoJSk8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwicHBpU19waXNcIiBbbmdNb2RlbF09XCJtb2RlbC5wcGlTX3BpcyB8IG51bWJlcjonMS4yLTInXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwcGlTX3Bpc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInBwaVNfcGlzUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsPlBJUyBCQyAlPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInZiQ19waXNcIiBbbmdNb2RlbF09XCJtb2RlbC52YkNfcGlzIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZiQ19waXNQYXJzZXIucGFyc2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJ2YkNfcGlzUGFyc2VyLmNoZWNrb3V0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEwMCB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxoNj5DT0ZJTlM8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJoYm94IGdhcC04XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q1NUL0NPRklOUzwvbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJtb2RlbC5jc1RfY29maW5zXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgTmVuaHVtXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpIG9mIGNzdENvZmluc0xpc3RcIiBbdmFsdWVdPVwiaS5pdGVtMVwiPlxuICAgICAgICAgICAgICAgICAgICB7e2kuaXRlbTF9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+QWxpcS4gQ09GSU5TICglKTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJwY29maW5TX2NvZmluc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnBjb2ZpblNfY29maW5zIHwgbnVtYmVyOicxLjItMidcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBjb2ZpblNfY29maW5zUGFyc2VyLnBhcnNlKCRldmVudClcIiAoZm9jdXNvdXQpPVwicGNvZmluU19jb2ZpbnNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+Q09GSU5TIEJDICU8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IGlkPVwidmJDX2NvZmluc1wiIFtuZ01vZGVsXT1cIm1vZGVsLnZiQ19jb2ZpbnMgfCBudW1iZXI6JzEuMi0yJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmJDX2NvZmluc1BhcnNlci5wYXJzZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cInZiQ19jb2ZpbnNQYXJzZXIuY2hlY2tvdXQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBbQG1lbnVMYXRlcmFsXSBjbGFzcz1cInZib3hcIiAqbmdJZj1cInNlbGVjdGVkVGFiID09IDJcIj5cblxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiIGNsYXNzPVwidmJveFwiPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIm1vZGVsLmRpc3Bvbml2ZWxDYXJkYXBpb1wiIHRhYmluZGV4PS0xPkRpc3BvbsOtdmVsIG5vIENhcmTDoXBpbyBEaWdpdGFsXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogOHB4O1wiIGNsYXNzPVwidmJveFwiPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIm1vZGVsLmRlc3RhcXVlXCIgdGFiaW5kZXg9LTE+RGVzdGFxdWUgbm8gY2FyZMOhcGlvIGRpZ2l0YWxcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbD5EZXNjcmnDp8OjbzwvbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYSBpZD1cImRlc2NyaWNhb1wiIFsobmdNb2RlbCldPVwibW9kZWwuZGVzY3JpY2FvXCIgY29scz1cIjQwXCIgcm93cz1cIjVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC0zMDBcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCI+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+VmFyaWHDp8O1ZXMgKHNlcGFyYWRvcyBwb3IgJzsnKTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCBwbGFjZWhvbGRlcj1cIkV4LjogYmVtIHBhc3NhZG87YW8gcG9udG87bWFsIHBhc3NhZG9cIiBpZD1cInZhcmlhY29lc1wiIG1heGxlbmd0aD1cIjMwMFwiIFsobmdNb2RlbCldPVwibW9kZWwudmFyaWFjb2VzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMzAwXCIgbWF4bGVuZ3RoPVwiMzAwXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsPkNhdGVnb3JpYTwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiY2F0ZWdvcmlhQ2FyZGFwaW9cIiAoY2xpY2spPVwiZWRpdGFyQ2F0ZWdvcmlhQ2FyZGFwaW8oKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ3Jvdy0xIGlucHV0LXNlbGVjYW8gaW5wdXQtMzAwXCI+XG4gICAgICAgICAgICAgICAge3ttb2RlbC5jYXRlZ29yaWFDYXJkYXBpb05vbWV9fSA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVkaXRhckNhdGVnb3JpYUNhcmRhcGlvKClcIiBjbGFzcz1cImZvcm0taW5saW5lLWJ1dHRvbiBidG4tZm9ybS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+R3J1cG8gbm8gQXBwIENhbWFyZWlyYXM8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGJveFwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cInZlcmlmaWNhY2FvR3J1cG9cIiAoY2xpY2spPVwiZWRpdGFyVmVyaWZpY2FjYW9HcnVwbygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBncm93LTEgaW5wdXQtc2VsZWNhbyBpbnB1dC0zMDBcIj5cbiAgICAgICAgICAgICAgICB7e21vZGVsLnByb2R1dG9WZXJpZmljYW9HcnVwb05vbWV9fSA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVkaXRhclZlcmlmaWNhY2FvR3J1cG8oKVwiIGNsYXNzPVwiZm9ybS1pbmxpbmUtYnV0dG9uIGJ0bi1mb3JtLW1hcmdpblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbWFnZW0tY29udGFpbmVyXCIgKm5nSWY9XCJlZGl0TW9kZVwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiaW1nVXJsXCIgY2xhc3M9XCJpbWctZmx1aWRcIiAqbmdJZj1cImltZ1VybFwiIC8+XG5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgcGxhY2Vob2xkZXI9XCJDaG9vc2UgZmlsZVwiIChjaGFuZ2UpPVwidXBsb2FkRmlsZShmaWxlLmZpbGVzKVwiIGFjY2VwdD1cIi5qcGcsLnBuZ1wiXG4gICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZmlsZS5jbGljaygpXCI+RXNjb2xoZXIgSW1hZ2VtPC9idXR0b24+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRcIiAqbmdJZj1cInByb2dyZXNzID4gMFwiPlxuICAgICAgICAgICAge3twcm9ncmVzc319JVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkXCIgKm5nSWY9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICB7e21lc3NhZ2V9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
@@ -12,4 +12,76 @@ export function printHtml(r) {
|
|
|
12
12
|
export function selectText(ev) {
|
|
13
13
|
ev.target.select();
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
export function validCpf(cpf) {
|
|
16
|
+
if (!cpf || cpf.length != 11
|
|
17
|
+
|| cpf == "00000000000"
|
|
18
|
+
|| cpf == "11111111111"
|
|
19
|
+
|| cpf == "22222222222"
|
|
20
|
+
|| cpf == "33333333333"
|
|
21
|
+
|| cpf == "44444444444"
|
|
22
|
+
|| cpf == "55555555555"
|
|
23
|
+
|| cpf == "66666666666"
|
|
24
|
+
|| cpf == "77777777777"
|
|
25
|
+
|| cpf == "88888888888"
|
|
26
|
+
|| cpf == "99999999999")
|
|
27
|
+
return false;
|
|
28
|
+
var soma = 0;
|
|
29
|
+
var resto;
|
|
30
|
+
for (var i = 1; i <= 9; i++)
|
|
31
|
+
soma = soma + parseInt(cpf.substring(i - 1, i)) * (11 - i);
|
|
32
|
+
resto = (soma * 10) % 11;
|
|
33
|
+
if ((resto == 10) || (resto == 11))
|
|
34
|
+
resto = 0;
|
|
35
|
+
if (resto != parseInt(cpf.substring(9, 10)))
|
|
36
|
+
return false;
|
|
37
|
+
soma = 0;
|
|
38
|
+
for (var i = 1; i <= 10; i++)
|
|
39
|
+
soma = soma + parseInt(cpf.substring(i - 1, i)) * (12 - i);
|
|
40
|
+
resto = (soma * 10) % 11;
|
|
41
|
+
if ((resto == 10) || (resto == 11))
|
|
42
|
+
resto = 0;
|
|
43
|
+
if (resto != parseInt(cpf.substring(10, 11)))
|
|
44
|
+
return false;
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
export function validaCnpj(cnpj) {
|
|
48
|
+
if (!cnpj || cnpj.length != 14
|
|
49
|
+
|| cnpj == "00000000000000"
|
|
50
|
+
|| cnpj == "11111111111111"
|
|
51
|
+
|| cnpj == "22222222222222"
|
|
52
|
+
|| cnpj == "33333333333333"
|
|
53
|
+
|| cnpj == "44444444444444"
|
|
54
|
+
|| cnpj == "55555555555555"
|
|
55
|
+
|| cnpj == "66666666666666"
|
|
56
|
+
|| cnpj == "77777777777777"
|
|
57
|
+
|| cnpj == "88888888888888"
|
|
58
|
+
|| cnpj == "99999999999999")
|
|
59
|
+
return false;
|
|
60
|
+
var tamanho = cnpj.length - 2;
|
|
61
|
+
var numeros = cnpj.substring(0, tamanho);
|
|
62
|
+
var digitos = cnpj.substring(tamanho);
|
|
63
|
+
var soma = 0;
|
|
64
|
+
var pos = tamanho - 7;
|
|
65
|
+
for (var i = tamanho; i >= 1; i--) {
|
|
66
|
+
soma += parseInt(numeros.charAt(tamanho - i)) * pos--;
|
|
67
|
+
if (pos < 2)
|
|
68
|
+
pos = 9;
|
|
69
|
+
}
|
|
70
|
+
var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
|
|
71
|
+
if (resultado != parseInt(digitos.charAt(0)))
|
|
72
|
+
return false;
|
|
73
|
+
tamanho = tamanho + 1;
|
|
74
|
+
numeros = cnpj.substring(0, tamanho);
|
|
75
|
+
soma = 0;
|
|
76
|
+
pos = tamanho - 7;
|
|
77
|
+
for (var i = tamanho; i >= 1; i--) {
|
|
78
|
+
soma += parseInt(numeros.charAt(tamanho - i)) * pos--;
|
|
79
|
+
if (pos < 2)
|
|
80
|
+
pos = 9;
|
|
81
|
+
}
|
|
82
|
+
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
|
|
83
|
+
if (resultado != parseInt(digitos.charAt(1)))
|
|
84
|
+
return false;
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtbWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9tb2RlbHMvaW5mcmEvdXRpbHMtbWV0aG9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVc7SUFDaEMsTUFBTSxDQUFDLEdBQUcsdVBBQXVQLEdBQUcsR0FBRyxHQUFHLGVBQWUsQ0FBQztJQUMxUixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBTTtJQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLElBQUksSUFBSTtRQUNULENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxFQUFRO0lBRWpDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7QUFDcEIsQ0FBQztBQUdELE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBWTtJQUNuQyxJQUFLLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRTtXQUN4QixHQUFHLElBQUksYUFBYTtXQUNwQixHQUFHLElBQUksYUFBYTtXQUNwQixHQUFHLElBQUksYUFBYTtXQUNwQixHQUFHLElBQUksYUFBYTtXQUNwQixHQUFHLElBQUksYUFBYTtXQUNwQixHQUFHLElBQUksYUFB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dW5jdGlvbiBwcmludFR4dCh0eHQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgciA9IFwiPCFkb2N0eXBlIGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD1cXFwidXRmLThcXFwiPjwvaGVhZD48Ym9keT48ZGl2IHN0eWxlPSdmb250LWZhbWlseTogXFxcIkNvdXJpZXIgTmV3XFxcIiwgQ291cmllciwgbW9ub3NwYWNlOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Y29sb3I6IGJsYWNrO2ZvbnQtd2VpZ2h0OiBib2xkO3dvcmQtd3JhcDogYnJlYWstd29yZDt3b3JkLWJyZWFrOiBicmVhay1hbGw7b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsnPlwiICsgdHh0ICsgJzwvZGl2PjwvYm9keT4nO1xyXG4gICAgcHJpbnRIdG1sKHIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRIdG1sKHI6IGFueSkge1xyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtyXSwgeyB0eXBlOiAndGV4dC9odG1sJyB9KTtcclxuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgY29uc3QgdyA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xyXG4gICAgaWYgKHcgIT0gbnVsbClcclxuICAgICAgICB3LnByaW50KCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RUZXh0KGV2IDogYW55KTogdm9pZFxyXG57XHJcbiAgZXYudGFyZ2V0LnNlbGVjdCgpXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRDcGYoY3BmIDogc3RyaW5nKSA6IGJvb2xlYW4ge1xyXG4gIGlmICggIWNwZiB8fCBjcGYubGVuZ3RoICE9IDExXHJcbiAgICB8fCBjcGYgPT0gXCIwMDAwMDAwMDAwMFwiXHJcbiAgICB8fCBjcGYgPT0gXCIxMTExMTExMTExMVwiXHJcbiAgICB8fCBjcGYgPT0gXCIyMjIyMjIyMjIyMlwiIFxyXG4gICAgfHwgY3BmID09IFwiMzMzMzMzMzMzMzNcIiBcclxuICAgIHx8IGNwZiA9PSBcIjQ0NDQ0NDQ0NDQ0XCIgXHJcbiAgICB8fCBjcGYgPT0gXCI1NTU1NTU1NTU1NVwiIFxyXG4gICAgfHwgY3BmID09IFwiNjY2NjY2NjY2NjZcIlxyXG4gICAgfHwgY3BmID09IFwiNzc3Nzc3Nzc3NzdcIlxyXG4gICAgfHwgY3BmID09IFwiODg4ODg4ODg4ODhcIiBcclxuICAgIHx8IGNwZiA9PSBcIjk5OTk5OTk5OTk5XCIgKVxyXG4gIHJldHVybiBmYWxzZTtcclxudmFyIHNvbWEgPSAwXHJcbiAgdmFyIHJlc3RvXHJcbmZvciAodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykgXHJcbiAgc29tYSA9IHNvbWEgKyBwYXJzZUludChjcGYuc3Vic3RyaW5nKGktMSwgaSkpICogKDExIC0gaSlcclxucmVzdG8gPSAoc29tYSAqIDEwKSAlIDExXHJcbiAgaWYgKChyZXN0byA9PSAxMCkgfHwgKHJlc3RvID09IDExKSkgIHJlc3RvID0gMFxyXG4gIGlmIChyZXN0byAhPSBwYXJzZUludChjcGYuc3Vic3RyaW5nKDksIDEwKSkgKSByZXR1cm4gZmFsc2U7XHJcbnNvbWEgPSAwXHJcbiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTA7IGkrKykgXHJcbiAgICBzb21hID0gc29tYSArIHBhcnNlSW50KGNwZi5zdWJzdHJpbmcoaS0xLCBpKSkgKiAoMTIgLSBpKVxyXG4gIHJlc3RvID0gKHNvbWEgKiAxMCkgJSAxMVxyXG4gIGlmICgocmVzdG8gPT0gMTApIHx8IChyZXN0byA9PSAxMSkpICByZXN0byA9IDBcclxuICBpZiAocmVzdG8gIT0gcGFyc2VJbnQoY3BmLnN1YnN0cmluZygxMCwgMTEpICkgKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGFDbnBqKGNucGogOiBzdHJpbmcpIDogYm9vbGVhbiB7XHJcbiAgaWYgKCAhY25waiB8fCBjbnBqLmxlbmd0aCAhPSAxNFxyXG4gICAgICB8fCBjbnBqID09IFwiMDAwMDAwMDAwMDAwMDBcIiBcclxuICAgICAgfHwgY25waiA9PSBcIjExMTExMTExMTExMTExXCIgXHJcbiAgICAgIHx8IGNucGogPT0gXCIyMjIyMjIyMjIyMjIyMlwiIFxyXG4gICAgICB8fCBjbnBqID09IFwiMzMzMzMzMzMzMzMzMzNcIiBcclxuICAgICAgfHwgY25waiA9PSBcIjQ0NDQ0NDQ0NDQ0NDQ0XCIgXHJcbiAgICAgIHx8IGNucGogPT0gXCI1NTU1NTU1NTU1NTU1NVwiIFxyXG4gICAgICB8fCBjbnBqID09IFwiNjY2NjY2NjY2NjY2NjZcIiBcclxuICAgICAgfHwgY25waiA9PSBcIjc3Nzc3Nzc3Nzc3Nzc3XCIgXHJcbiAgICAgIHx8IGNucGogPT0gXCI4ODg4ODg4ODg4ODg4OFwiIFxyXG4gICAgICB8fCBjbnBqID09IFwiOTk5OTk5OTk5OTk5OTlcIilcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIHZhciB0YW1hbmhvID0gY25wai5sZW5ndGggLSAyO1xyXG4gIHZhciBudW1lcm9zID0gY25wai5zdWJzdHJpbmcoMCx0YW1hbmhvKTtcclxuICB2YXIgZGlnaXRvcyA9IGNucGouc3Vic3RyaW5nKHRhbWFuaG8pO1xyXG4gIHZhciBzb21hID0gMDtcclxuICB2YXIgcG9zID0gdGFtYW5obyAtIDc7XHJcbiAgZm9yICh2YXIgaSA9IHRhbWFuaG87IGkgPj0gMTsgaS0tKSB7XHJcbiAgICBzb21hICs9IHBhcnNlSW50KG51bWVyb3MuY2hhckF0KHRhbWFuaG8gLSBpKSkgKiBwb3MtLTtcclxuICAgIGlmIChwb3MgPCAyKSBwb3MgPSA5O1xyXG4gIH1cclxuICB2YXIgcmVzdWx0YWRvID0gc29tYSAlIDExIDwgMiA/IDAgOiAxMSAtIHNvbWEgJSAxMTtcclxuICBpZiAocmVzdWx0YWRvICE9IHBhcnNlSW50KGRpZ2l0b3MuY2hhckF0KDApKSkgcmV0dXJuIGZhbHNlO1xyXG4gIHRhbWFuaG8gPSB0YW1hbmhvICsgMTtcclxuICBudW1lcm9zID0gY25wai5zdWJzdHJpbmcoMCx0YW1hbmhvKTtcclxuICBzb21hID0gMDtcclxuICBwb3MgPSB0YW1hbmhvIC0gNztcclxuICBmb3IgKHZhciBpID0gdGFtYW5obzsgaSA+PSAxOyBpLS0pIHtcclxuICAgIHNvbWEgKz0gcGFyc2VJbnQobnVtZXJvcy5jaGFyQXQodGFtYW5obyAtIGkpKSAqIHBvcy0tO1xyXG4gICAgaWYgKHBvcyA8IDIpIHBvcyA9IDk7XHJcbiAgfVxyXG4gIHJlc3VsdGFkbyA9IHNvbWEgJSAxMSA8IDIgPyAwIDogMTEgLSBzb21hICUgMTE7XHJcbiAgaWYgKHJlc3VsdGFkbyAhPSBwYXJzZUludChkaWdpdG9zLmNoYXJBdCgxKSkpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gdHJ1ZTtcclxufSJdfQ==
|