UNPKG

@edugouvfr/ngx-dsfr

Version:

NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).

39 lines 32.8 kB
import { Component, Input, ViewEncapsulation } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "../../forms/fieldset/form-fieldset.component"; import * as i3 from "../../forms/fieldset/form-fieldset-element.directive"; import * as i4 from "../../forms/form-input/form-input.component"; import * as i5 from "@angular/forms"; export class DsfrAddressComponent { constructor() { /** * Légende du fieldset. */ this.legend = 'Adresse postale'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrAddressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DsfrAddressComponent, selector: "dsfr-address", inputs: { legend: "legend", address: "address", addressSupplement: "addressSupplement", addressDetails: "addressDetails", zipCode: "zipCode", city: "city", locality: "locality" }, ngImport: i0, template: "<dsfr-fieldset [legend]=\"legend\" [legendSrOnly]=\"true\">\n <ng-container *ngIf=\"!addressDetails\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"address.name || 'address-line1'\"\n [label]=\"address.label || 'Adresse'\"\n [hint]=\"address.hint || 'Indication : num\u00E9ro et voie'\"\n [autocomplete]=\"address.autoComplete ?? ''\"\n [valid]=\"address.valid ?? ''\"\n [error]=\"address.error ?? ''\"\n [required]=\"address.required ?? false\"\n [id]=\"address.id ?? ''\"\n [disabled]=\"address.disabled ?? false\"\n [(ngModel)]=\"address.value\"></dsfr-form-input>\n <ng-container *ngIf=\"addressSupplement\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressSupplement.name || 'address-line2'\"\n [label]=\"addressSupplement.label || 'Compl\u00E9ment d\\'adresse (optionnel)'\"\n [hint]=\"addressSupplement.hint || 'Indication : b\u00E2timent, immeuble, escalier et num\u00E9ro d\\\u2019appartement'\"\n [autocomplete]=\"addressSupplement.autoComplete ?? ''\"\n [valid]=\"addressSupplement.valid ?? ''\"\n [error]=\"addressSupplement.error ?? ''\"\n [required]=\"addressSupplement.required ?? false\"\n [id]=\"addressSupplement.id ?? ''\"\n [disabled]=\"addressSupplement.disabled ?? false\"\n [(ngModel)]=\"addressSupplement.value\"></dsfr-form-input>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"addressDetails\">\n <ng-container *ngIf=\"addressDetails.number\">\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline fr-fieldset__element--inline-grow fr-fieldset__element--number'\"\n [name]=\"addressDetails.number.name || 'number'\"\n [label]=\"addressDetails.number.label || 'Num\u00E9ro'\"\n [hint]=\"addressDetails.number.hint\"\n [autocomplete]=\"addressDetails.number.autoComplete ?? ''\"\n [valid]=\"addressDetails.number.valid ?? ''\"\n [error]=\"addressDetails.number.error ?? ''\"\n [required]=\"addressDetails.number.required ?? false\"\n [id]=\"addressDetails.number.id ?? ''\"\n [disabled]=\"addressDetails.number.disabled ?? false\"\n [(ngModel)]=\"addressDetails.number.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.street\">\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline fr-fieldset__element--inline-grow'\"\n [name]=\"addressDetails.street.name || 'street'\"\n [label]=\"addressDetails.street.label || 'Voie'\"\n [hint]=\"addressDetails.street.hint\"\n [autocomplete]=\"addressDetails.street.autoComplete ?? ''\"\n [valid]=\"addressDetails.street.valid ?? ''\"\n [error]=\"addressDetails.street.error ?? ''\"\n [required]=\"addressDetails.street.required ?? false\"\n [id]=\"addressDetails.street.id ?? ''\"\n [disabled]=\"addressDetails.street.disabled ?? false\"\n [(ngModel)]=\"addressDetails.street.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.building\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.building.name || 'building'\"\n [label]=\"addressDetails.building.label || 'B\u00E2timent'\"\n [hint]=\"addressDetails.building.hint\"\n [autocomplete]=\"addressDetails.building.autoComplete ?? ''\"\n [valid]=\"addressDetails.building.valid ?? ''\"\n [error]=\"addressDetails.building.error ?? ''\"\n [required]=\"addressDetails.building.required ?? false\"\n [id]=\"addressDetails.building.id ?? ''\"\n [disabled]=\"addressDetails.building.disabled ?? false\"\n [(ngModel)]=\"addressDetails.building.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.block\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.block.name || 'block'\"\n [label]=\"addressDetails.block.label || 'Immeuble'\"\n [hint]=\"addressDetails.block.hint\"\n [autocomplete]=\"addressDetails.block.autoComplete ?? ''\"\n [valid]=\"addressDetails.block.valid ?? ''\"\n [error]=\"addressDetails.block.error ?? ''\"\n [required]=\"addressDetails.block.required ?? false\"\n [id]=\"addressDetails.block.id ?? ''\"\n [disabled]=\"addressDetails.block.disabled ?? false\"\n [(ngModel)]=\"addressDetails.block.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.stare\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.stare.name || 'stare'\"\n [label]=\"addressDetails.stare.label || 'Escalier'\"\n [hint]=\"addressDetails.stare.hint\"\n [autocomplete]=\"addressDetails.stare.autoComplete ?? ''\"\n [valid]=\"addressDetails.stare.valid ?? ''\"\n [error]=\"addressDetails.stare.error ?? ''\"\n [required]=\"addressDetails.stare.required ?? false\"\n [id]=\"addressDetails.stare.id ?? ''\"\n [disabled]=\"addressDetails.stare.disabled ?? false\"\n [(ngModel)]=\"addressDetails.stare.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.apartment\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.apartment.name || 'apartment'\"\n [label]=\"addressDetails.apartment.label || 'Num\u00E9ro d\\'appartement'\"\n [hint]=\"addressDetails.apartment.hint\"\n [autocomplete]=\"addressDetails.apartment.autoComplete ?? ''\"\n [valid]=\"addressDetails.apartment.valid ?? ''\"\n [error]=\"addressDetails.apartment.error ?? ''\"\n [required]=\"addressDetails.apartment.required ?? false\"\n [id]=\"addressDetails.apartment.id ?? ''\"\n [disabled]=\"addressDetails.apartment.disabled ?? false\"\n [(ngModel)]=\"addressDetails.apartment.value\"></dsfr-form-input>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"locality\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"locality.name || 'address-level3'\"\n [label]=\"locality.label || 'Lieu-dit, commune d\u00E9l\u00E9gu\u00E9e ou bo\u00EEte postale'\"\n [hint]=\"locality.hint\"\n [autocomplete]=\"locality.autoComplete ?? ''\"\n [valid]=\"locality.valid ?? ''\"\n [error]=\"locality.error ?? ''\"\n [required]=\"locality.required ?? false\"\n [id]=\"locality.id ?? ''\"\n [disabled]=\"locality.disabled ?? false\"\n [(ngModel)]=\"locality.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"!addressDetails\">\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline fr-fieldset__element--postal'\"\n [name]=\"zipCode.name || 'postal-code'\"\n [label]=\"zipCode.label || 'Code postal'\"\n [hint]=\"zipCode.hint || 'Format attendu : 5 chiffres'\"\n [autocomplete]=\"zipCode.autoComplete ?? ''\"\n [valid]=\"zipCode.valid ?? ''\"\n [error]=\"zipCode.error ?? ''\"\n [required]=\"zipCode.required ?? false\"\n [id]=\"zipCode.id ?? ''\"\n [disabled]=\"zipCode.disabled ?? false\"\n [(ngModel)]=\"zipCode.value\"></dsfr-form-input>\n <!-- BUG Classe 'fr-fieldset__element--inline@md' inconnue en DSFR 1.10.0 -->\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline@md fr-fieldset__element--inline-grow'\"\n [name]=\"city.name || 'address-level2'\"\n [label]=\"city.label || 'Ville ou commune'\"\n [hint]=\"city.hint || 'Exemple : Montpellier'\"\n [autocomplete]=\"city.autoComplete ?? ''\"\n [valid]=\"city.valid ?? ''\"\n [error]=\"city.error ?? ''\"\n [required]=\"city.required ?? false\"\n [id]=\"city.id ?? ''\"\n [disabled]=\"city.disabled ?? false\"\n [(ngModel)]=\"city.value\"></dsfr-form-input>\n </ng-container>\n</dsfr-fieldset>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DsfrFormFieldsetComponent, selector: "dsfr-fieldset, dsfr-form-fieldset", inputs: ["inline"] }, { kind: "directive", type: i3.DsfrFormFieldsetElementDirective, selector: "[fieldsetElement]", inputs: ["fieldsetElement"] }, { kind: "component", type: i4.DsfrFormInputComponent, selector: "dsfr-form-input", inputs: ["rows", "width", "textarea"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DsfrAddressComponent, decorators: [{ type: Component, args: [{ selector: 'dsfr-address', encapsulation: ViewEncapsulation.None, template: "<dsfr-fieldset [legend]=\"legend\" [legendSrOnly]=\"true\">\n <ng-container *ngIf=\"!addressDetails\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"address.name || 'address-line1'\"\n [label]=\"address.label || 'Adresse'\"\n [hint]=\"address.hint || 'Indication : num\u00E9ro et voie'\"\n [autocomplete]=\"address.autoComplete ?? ''\"\n [valid]=\"address.valid ?? ''\"\n [error]=\"address.error ?? ''\"\n [required]=\"address.required ?? false\"\n [id]=\"address.id ?? ''\"\n [disabled]=\"address.disabled ?? false\"\n [(ngModel)]=\"address.value\"></dsfr-form-input>\n <ng-container *ngIf=\"addressSupplement\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressSupplement.name || 'address-line2'\"\n [label]=\"addressSupplement.label || 'Compl\u00E9ment d\\'adresse (optionnel)'\"\n [hint]=\"addressSupplement.hint || 'Indication : b\u00E2timent, immeuble, escalier et num\u00E9ro d\\\u2019appartement'\"\n [autocomplete]=\"addressSupplement.autoComplete ?? ''\"\n [valid]=\"addressSupplement.valid ?? ''\"\n [error]=\"addressSupplement.error ?? ''\"\n [required]=\"addressSupplement.required ?? false\"\n [id]=\"addressSupplement.id ?? ''\"\n [disabled]=\"addressSupplement.disabled ?? false\"\n [(ngModel)]=\"addressSupplement.value\"></dsfr-form-input>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"addressDetails\">\n <ng-container *ngIf=\"addressDetails.number\">\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline fr-fieldset__element--inline-grow fr-fieldset__element--number'\"\n [name]=\"addressDetails.number.name || 'number'\"\n [label]=\"addressDetails.number.label || 'Num\u00E9ro'\"\n [hint]=\"addressDetails.number.hint\"\n [autocomplete]=\"addressDetails.number.autoComplete ?? ''\"\n [valid]=\"addressDetails.number.valid ?? ''\"\n [error]=\"addressDetails.number.error ?? ''\"\n [required]=\"addressDetails.number.required ?? false\"\n [id]=\"addressDetails.number.id ?? ''\"\n [disabled]=\"addressDetails.number.disabled ?? false\"\n [(ngModel)]=\"addressDetails.number.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.street\">\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline fr-fieldset__element--inline-grow'\"\n [name]=\"addressDetails.street.name || 'street'\"\n [label]=\"addressDetails.street.label || 'Voie'\"\n [hint]=\"addressDetails.street.hint\"\n [autocomplete]=\"addressDetails.street.autoComplete ?? ''\"\n [valid]=\"addressDetails.street.valid ?? ''\"\n [error]=\"addressDetails.street.error ?? ''\"\n [required]=\"addressDetails.street.required ?? false\"\n [id]=\"addressDetails.street.id ?? ''\"\n [disabled]=\"addressDetails.street.disabled ?? false\"\n [(ngModel)]=\"addressDetails.street.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.building\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.building.name || 'building'\"\n [label]=\"addressDetails.building.label || 'B\u00E2timent'\"\n [hint]=\"addressDetails.building.hint\"\n [autocomplete]=\"addressDetails.building.autoComplete ?? ''\"\n [valid]=\"addressDetails.building.valid ?? ''\"\n [error]=\"addressDetails.building.error ?? ''\"\n [required]=\"addressDetails.building.required ?? false\"\n [id]=\"addressDetails.building.id ?? ''\"\n [disabled]=\"addressDetails.building.disabled ?? false\"\n [(ngModel)]=\"addressDetails.building.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.block\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.block.name || 'block'\"\n [label]=\"addressDetails.block.label || 'Immeuble'\"\n [hint]=\"addressDetails.block.hint\"\n [autocomplete]=\"addressDetails.block.autoComplete ?? ''\"\n [valid]=\"addressDetails.block.valid ?? ''\"\n [error]=\"addressDetails.block.error ?? ''\"\n [required]=\"addressDetails.block.required ?? false\"\n [id]=\"addressDetails.block.id ?? ''\"\n [disabled]=\"addressDetails.block.disabled ?? false\"\n [(ngModel)]=\"addressDetails.block.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.stare\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.stare.name || 'stare'\"\n [label]=\"addressDetails.stare.label || 'Escalier'\"\n [hint]=\"addressDetails.stare.hint\"\n [autocomplete]=\"addressDetails.stare.autoComplete ?? ''\"\n [valid]=\"addressDetails.stare.valid ?? ''\"\n [error]=\"addressDetails.stare.error ?? ''\"\n [required]=\"addressDetails.stare.required ?? false\"\n [id]=\"addressDetails.stare.id ?? ''\"\n [disabled]=\"addressDetails.stare.disabled ?? false\"\n [(ngModel)]=\"addressDetails.stare.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"addressDetails.apartment\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"addressDetails.apartment.name || 'apartment'\"\n [label]=\"addressDetails.apartment.label || 'Num\u00E9ro d\\'appartement'\"\n [hint]=\"addressDetails.apartment.hint\"\n [autocomplete]=\"addressDetails.apartment.autoComplete ?? ''\"\n [valid]=\"addressDetails.apartment.valid ?? ''\"\n [error]=\"addressDetails.apartment.error ?? ''\"\n [required]=\"addressDetails.apartment.required ?? false\"\n [id]=\"addressDetails.apartment.id ?? ''\"\n [disabled]=\"addressDetails.apartment.disabled ?? false\"\n [(ngModel)]=\"addressDetails.apartment.value\"></dsfr-form-input>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"locality\">\n <dsfr-form-input\n *fieldsetElement\n [name]=\"locality.name || 'address-level3'\"\n [label]=\"locality.label || 'Lieu-dit, commune d\u00E9l\u00E9gu\u00E9e ou bo\u00EEte postale'\"\n [hint]=\"locality.hint\"\n [autocomplete]=\"locality.autoComplete ?? ''\"\n [valid]=\"locality.valid ?? ''\"\n [error]=\"locality.error ?? ''\"\n [required]=\"locality.required ?? false\"\n [id]=\"locality.id ?? ''\"\n [disabled]=\"locality.disabled ?? false\"\n [(ngModel)]=\"locality.value\"></dsfr-form-input>\n </ng-container>\n <ng-container *ngIf=\"!addressDetails\">\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline fr-fieldset__element--postal'\"\n [name]=\"zipCode.name || 'postal-code'\"\n [label]=\"zipCode.label || 'Code postal'\"\n [hint]=\"zipCode.hint || 'Format attendu : 5 chiffres'\"\n [autocomplete]=\"zipCode.autoComplete ?? ''\"\n [valid]=\"zipCode.valid ?? ''\"\n [error]=\"zipCode.error ?? ''\"\n [required]=\"zipCode.required ?? false\"\n [id]=\"zipCode.id ?? ''\"\n [disabled]=\"zipCode.disabled ?? false\"\n [(ngModel)]=\"zipCode.value\"></dsfr-form-input>\n <!-- BUG Classe 'fr-fieldset__element--inline@md' inconnue en DSFR 1.10.0 -->\n <dsfr-form-input\n *fieldsetElement=\"'fr-fieldset__element--inline@md fr-fieldset__element--inline-grow'\"\n [name]=\"city.name || 'address-level2'\"\n [label]=\"city.label || 'Ville ou commune'\"\n [hint]=\"city.hint || 'Exemple : Montpellier'\"\n [autocomplete]=\"city.autoComplete ?? ''\"\n [valid]=\"city.valid ?? ''\"\n [error]=\"city.error ?? ''\"\n [required]=\"city.required ?? false\"\n [id]=\"city.id ?? ''\"\n [disabled]=\"city.disabled ?? false\"\n [(ngModel)]=\"city.value\"></dsfr-form-input>\n </ng-container>\n</dsfr-fieldset>\n" }] }], propDecorators: { legend: [{ type: Input }], address: [{ type: Input, args: [{ required: true }] }], addressSupplement: [{ type: Input }], addressDetails: [{ type: Input }], zipCode: [{ type: Input, args: [{ required: true }] }], city: [{ type: Input, args: [{ required: true }] }], locality: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvcGF0dGVybnMvYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1kc2ZyLWNvbXBvbmVudHMvc3JjL2xpYi9wYXR0ZXJucy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUF1QnBFLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFNRTs7V0FFRztRQUNNLFdBQU0sR0FBRyxpQkFBaUIsQ0FBQztLQTRCckM7K0dBaENZLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdPQ3ZCakMsMnpQQTZKQTs7NEZEdElhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUk7OEJBTTVCLE1BQU07c0JBQWQsS0FBSztnQkFLcUIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS2hCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUlxQixPQUFPO3NCQUFqQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJRSxJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJaEIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEc2ZySW5wdXRUZXh0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9pbnB1dC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHNmckFkZHJlc3NEZXRhaWxzIHtcbiAgLyoqIERhdGEgZHUgY2hhbXBzIFwibnVtw6lyb1wiICovXG4gIG51bWJlcj86IERzZnJJbnB1dFRleHQ7XG4gIC8qKiBEYXRhIGR1IGNoYW1wcyBcInZvaWVcIiAqL1xuICBzdHJlZXQ/OiBEc2ZySW5wdXRUZXh0O1xuICAvKiogRGF0YSBkdSBjaGFtcHMgXCJCw6J0aW1lbnRcIiAqL1xuICBidWlsZGluZz86IERzZnJJbnB1dFRleHQ7XG4gIC8qKiBEYXRhIGR1IGNoYW1wcyBcIkltbWV1YmxlXCIgKi9cbiAgYmxvY2s/OiBEc2ZySW5wdXRUZXh0O1xuICAvKiogRGF0YSBkdSBjaGFtcHMgXCJFc2NhbGllclwiICovXG4gIHN0YXJlPzogRHNmcklucHV0VGV4dDtcbiAgLyoqIERhdGEgZHUgY2hhbXBzIFwibnVtw6lybyBkJ2FwcGFydGVtZW50XCIgKi9cbiAgYXBhcnRtZW50PzogRHNmcklucHV0VGV4dDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHNmci1hZGRyZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEc2ZyQWRkcmVzc0NvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBMw6lnZW5kZSBkdSBmaWVsZHNldC5cbiAgICovXG4gIEBJbnB1dCgpIGxlZ2VuZCA9ICdBZHJlc3NlIHBvc3RhbGUnO1xuXG4gIC8qKlxuICAgKiBEYXRhIGR1IGNoYW1wcyBhZHJlc3NlLlxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgYWRkcmVzczogRHNmcklucHV0VGV4dDtcblxuICAvKipcbiAgICogRGF0YSBkdSBjaGFtcHMgY29tcGzDqW1lbnQgZCdhZHJlc3NlIChvcHRpb25uZWwpLlxuICAgKi9cbiAgQElucHV0KCkgYWRkcmVzc1N1cHBsZW1lbnQ6IERzZnJJbnB1dFRleHQ7XG5cbiAgLyoqXG4gICAqIERhdGEgZGVzIGNoYW1wcyBjb21wbMOpbWVudCBkJ2FkcmVzc2UgKFwiTnVtw6lyb1wiLCBcIlZvaWVcIiwgXCJCw6J0aW1lbnRcIiwgXCJJbW1ldWJsZVwiLCBcIkVzY2FsaWVyXCIsIFwiTnVtw6lybyBkJ2FwcGFydGVtZW50XCIpLlxuICAgKi9cbiAgQElucHV0KCkgYWRkcmVzc0RldGFpbHM6IERzZnJBZGRyZXNzRGV0YWlscztcbiAgLyoqXG4gICAqIERhdGEgZHUgY2hhbXBzIGNvZGUgcG9zdGFsLlxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgemlwQ29kZTogRHNmcklucHV0VGV4dDtcbiAgLyoqXG4gICAqIERhdGEgZHUgY2hhbXBzIHZpbGxlLlxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY2l0eTogRHNmcklucHV0VGV4dDtcbiAgLyoqXG4gICAqIERhdGEgZHUgY2hhbXBzIGxpZXV4LWRpdC9jb21tdW5lIGTDqWzDqWd1w6llIG91IGJvw650ZSBwb3N0YWxlLlxuICAgKi9cbiAgQElucHV0KCkgbG9jYWxpdHk6IERzZnJJbnB1dFRleHQ7XG59XG4iLCI8ZHNmci1maWVsZHNldCBbbGVnZW5kXT1cImxlZ2VuZFwiIFtsZWdlbmRTck9ubHldPVwidHJ1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFkZHJlc3NEZXRhaWxzXCI+XG4gICAgPGRzZnItZm9ybS1pbnB1dFxuICAgICAgKmZpZWxkc2V0RWxlbWVudFxuICAgICAgW25hbWVdPVwiYWRkcmVzcy5uYW1lIHx8ICdhZGRyZXNzLWxpbmUxJ1wiXG4gICAgICBbbGFiZWxdPVwiYWRkcmVzcy5sYWJlbCB8fCAnQWRyZXNzZSdcIlxuICAgICAgW2hpbnRdPVwiYWRkcmVzcy5oaW50IHx8ICdJbmRpY2F0aW9uIDogbnVtw6lybyBldCB2b2llJ1wiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImFkZHJlc3MuYXV0b0NvbXBsZXRlID8/ICcnXCJcbiAgICAgIFt2YWxpZF09XCJhZGRyZXNzLnZhbGlkID8/ICcnXCJcbiAgICAgIFtlcnJvcl09XCJhZGRyZXNzLmVycm9yID8/ICcnXCJcbiAgICAgIFtyZXF1aXJlZF09XCJhZGRyZXNzLnJlcXVpcmVkID8/IGZhbHNlXCJcbiAgICAgIFtpZF09XCJhZGRyZXNzLmlkID8/ICcnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJhZGRyZXNzLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzcy52YWx1ZVwiPjwvZHNmci1mb3JtLWlucHV0PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRyZXNzU3VwcGxlbWVudFwiPlxuICAgICAgPGRzZnItZm9ybS1pbnB1dFxuICAgICAgICAqZmllbGRzZXRFbGVtZW50XG4gICAgICAgIFtuYW1lXT1cImFkZHJlc3NTdXBwbGVtZW50Lm5hbWUgfHwgJ2FkZHJlc3MtbGluZTInXCJcbiAgICAgICAgW2xhYmVsXT1cImFkZHJlc3NTdXBwbGVtZW50LmxhYmVsIHx8ICdDb21wbMOpbWVudCBkXFwnYWRyZXNzZSAob3B0aW9ubmVsKSdcIlxuICAgICAgICBbaGludF09XCJhZGRyZXNzU3VwcGxlbWVudC5oaW50IHx8ICdJbmRpY2F0aW9uIDogYsOidGltZW50LCBpbW1ldWJsZSwgZXNjYWxpZXIgZXQgbnVtw6lybyBkXFzigJlhcHBhcnRlbWVudCdcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImFkZHJlc3NTdXBwbGVtZW50LmF1dG9Db21wbGV0ZSA/PyAnJ1wiXG4gICAgICAgIFt2YWxpZF09XCJhZGRyZXNzU3VwcGxlbWVudC52YWxpZCA/PyAnJ1wiXG4gICAgICAgIFtlcnJvcl09XCJhZGRyZXNzU3VwcGxlbWVudC5lcnJvciA/PyAnJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJhZGRyZXNzU3VwcGxlbWVudC5yZXF1aXJlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpZF09XCJhZGRyZXNzU3VwcGxlbWVudC5pZCA/PyAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhZGRyZXNzU3VwcGxlbWVudC5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc1N1cHBsZW1lbnQudmFsdWVcIj48L2RzZnItZm9ybS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRyZXNzRGV0YWlsc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRyZXNzRGV0YWlscy5udW1iZXJcIj5cbiAgICAgIDxkc2ZyLWZvcm0taW5wdXRcbiAgICAgICAgKmZpZWxkc2V0RWxlbWVudD1cIidmci1maWVsZHNldF9fZWxlbWVudC0taW5saW5lIGZyLWZpZWxkc2V0X19lbGVtZW50LS1pbmxpbmUtZ3JvdyBmci1maWVsZHNldF9fZWxlbWVudC0tbnVtYmVyJ1wiXG4gICAgICAgIFtuYW1lXT1cImFkZHJlc3NEZXRhaWxzLm51bWJlci5uYW1lIHx8ICdudW1iZXInXCJcbiAgICAgICAgW2xhYmVsXT1cImFkZHJlc3NEZXRhaWxzLm51bWJlci5sYWJlbCB8fCAnTnVtw6lybydcIlxuICAgICAgICBbaGludF09XCJhZGRyZXNzRGV0YWlscy5udW1iZXIuaGludFwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiYWRkcmVzc0RldGFpbHMubnVtYmVyLmF1dG9Db21wbGV0ZSA/PyAnJ1wiXG4gICAgICAgIFt2YWxpZF09XCJhZGRyZXNzRGV0YWlscy5udW1iZXIudmFsaWQgPz8gJydcIlxuICAgICAgICBbZXJyb3JdPVwiYWRkcmVzc0RldGFpbHMubnVtYmVyLmVycm9yID8/ICcnXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImFkZHJlc3NEZXRhaWxzLm51bWJlci5yZXF1aXJlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpZF09XCJhZGRyZXNzRGV0YWlscy5udW1iZXIuaWQgPz8gJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWRkcmVzc0RldGFpbHMubnVtYmVyLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzRGV0YWlscy5udW1iZXIudmFsdWVcIj48L2RzZnItZm9ybS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRkcmVzc0RldGFpbHMuc3RyZWV0XCI+XG4gICAgICA8ZHNmci1mb3JtLWlucHV0XG4gICAgICAgICpmaWVsZHNldEVsZW1lbnQ9XCInZnItZmllbGRzZXRfX2VsZW1lbnQtLWlubGluZSBmci1maWVsZHNldF9fZWxlbWVudC0taW5saW5lLWdyb3cnXCJcbiAgICAgICAgW25hbWVdPVwiYWRkcmVzc0RldGFpbHMuc3RyZWV0Lm5hbWUgfHwgJ3N0cmVldCdcIlxuICAgICAgICBbbGFiZWxdPVwiYWRkcmVzc0RldGFpbHMuc3RyZWV0LmxhYmVsIHx8ICdWb2llJ1wiXG4gICAgICAgIFtoaW50XT1cImFkZHJlc3NEZXRhaWxzLnN0cmVldC5oaW50XCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhZGRyZXNzRGV0YWlscy5zdHJlZXQuYXV0b0NvbXBsZXRlID8/ICcnXCJcbiAgICAgICAgW3ZhbGlkXT1cImFkZHJlc3NEZXRhaWxzLnN0cmVldC52YWxpZCA/PyAnJ1wiXG4gICAgICAgIFtlcnJvcl09XCJhZGRyZXNzRGV0YWlscy5zdHJlZXQuZXJyb3IgPz8gJydcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiYWRkcmVzc0RldGFpbHMuc3RyZWV0LnJlcXVpcmVkID8/IGZhbHNlXCJcbiAgICAgICAgW2lkXT1cImFkZHJlc3NEZXRhaWxzLnN0cmVldC5pZCA/PyAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhZGRyZXNzRGV0YWlscy5zdHJlZXQuZGlzYWJsZWQgPz8gZmFsc2VcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImFkZHJlc3NEZXRhaWxzLnN0cmVldC52YWx1ZVwiPjwvZHNmci1mb3JtLWlucHV0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZ1wiPlxuICAgICAgPGRzZnItZm9ybS1pbnB1dFxuICAgICAgICAqZmllbGRzZXRFbGVtZW50XG4gICAgICAgIFtuYW1lXT1cImFkZHJlc3NEZXRhaWxzLmJ1aWxkaW5nLm5hbWUgfHwgJ2J1aWxkaW5nJ1wiXG4gICAgICAgIFtsYWJlbF09XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZy5sYWJlbCB8fCAnQsOidGltZW50J1wiXG4gICAgICAgIFtoaW50XT1cImFkZHJlc3NEZXRhaWxzLmJ1aWxkaW5nLmhpbnRcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImFkZHJlc3NEZXRhaWxzLmJ1aWxkaW5nLmF1dG9Db21wbGV0ZSA/PyAnJ1wiXG4gICAgICAgIFt2YWxpZF09XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZy52YWxpZCA/PyAnJ1wiXG4gICAgICAgIFtlcnJvcl09XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZy5lcnJvciA/PyAnJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZy5yZXF1aXJlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpZF09XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZy5pZCA/PyAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhZGRyZXNzRGV0YWlscy5idWlsZGluZy5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc0RldGFpbHMuYnVpbGRpbmcudmFsdWVcIj48L2RzZnItZm9ybS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRkcmVzc0RldGFpbHMuYmxvY2tcIj5cbiAgICAgIDxkc2ZyLWZvcm0taW5wdXRcbiAgICAgICAgKmZpZWxkc2V0RWxlbWVudFxuICAgICAgICBbbmFtZV09XCJhZGRyZXNzRGV0YWlscy5ibG9jay5uYW1lIHx8ICdibG9jaydcIlxuICAgICAgICBbbGFiZWxdPVwiYWRkcmVzc0RldGFpbHMuYmxvY2subGFiZWwgfHwgJ0ltbWV1YmxlJ1wiXG4gICAgICAgIFtoaW50XT1cImFkZHJlc3NEZXRhaWxzLmJsb2NrLmhpbnRcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImFkZHJlc3NEZXRhaWxzLmJsb2NrLmF1dG9Db21wbGV0ZSA/PyAnJ1wiXG4gICAgICAgIFt2YWxpZF09XCJhZGRyZXNzRGV0YWlscy5ibG9jay52YWxpZCA/PyAnJ1wiXG4gICAgICAgIFtlcnJvcl09XCJhZGRyZXNzRGV0YWlscy5ibG9jay5lcnJvciA/PyAnJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJhZGRyZXNzRGV0YWlscy5ibG9jay5yZXF1aXJlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpZF09XCJhZGRyZXNzRGV0YWlscy5ibG9jay5pZCA/PyAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhZGRyZXNzRGV0YWlscy5ibG9jay5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc0RldGFpbHMuYmxvY2sudmFsdWVcIj48L2RzZnItZm9ybS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRkcmVzc0RldGFpbHMuc3RhcmVcIj5cbiAgICAgIDxkc2ZyLWZvcm0taW5wdXRcbiAgICAgICAgKmZpZWxkc2V0RWxlbWVudFxuICAgICAgICBbbmFtZV09XCJhZGRyZXNzRGV0YWlscy5zdGFyZS5uYW1lIHx8ICdzdGFyZSdcIlxuICAgICAgICBbbGFiZWxdPVwiYWRkcmVzc0RldGFpbHMuc3RhcmUubGFiZWwgfHwgJ0VzY2FsaWVyJ1wiXG4gICAgICAgIFtoaW50XT1cImFkZHJlc3NEZXRhaWxzLnN0YXJlLmhpbnRcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImFkZHJlc3NEZXRhaWxzLnN0YXJlLmF1dG9Db21wbGV0ZSA/PyAnJ1wiXG4gICAgICAgIFt2YWxpZF09XCJhZGRyZXNzRGV0YWlscy5zdGFyZS52YWxpZCA/PyAnJ1wiXG4gICAgICAgIFtlcnJvcl09XCJhZGRyZXNzRGV0YWlscy5zdGFyZS5lcnJvciA/PyAnJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJhZGRyZXNzRGV0YWlscy5zdGFyZS5yZXF1aXJlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpZF09XCJhZGRyZXNzRGV0YWlscy5zdGFyZS5pZCA/PyAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhZGRyZXNzRGV0YWlscy5zdGFyZS5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc0RldGFpbHMuc3RhcmUudmFsdWVcIj48L2RzZnItZm9ybS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRkcmVzc0RldGFpbHMuYXBhcnRtZW50XCI+XG4gICAgICA8ZHNmci1mb3JtLWlucHV0XG4gICAgICAgICpmaWVsZHNldEVsZW1lbnRcbiAgICAgICAgW25hbWVdPVwiYWRkcmVzc0RldGFpbHMuYXBhcnRtZW50Lm5hbWUgfHwgJ2FwYXJ0bWVudCdcIlxuICAgICAgICBbbGFiZWxdPVwiYWRkcmVzc0RldGFpbHMuYXBhcnRtZW50LmxhYmVsIHx8ICdOdW3DqXJvIGRcXCdhcHBhcnRlbWVudCdcIlxuICAgICAgICBbaGludF09XCJhZGRyZXNzRGV0YWlscy5hcGFydG1lbnQuaGludFwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiYWRkcmVzc0RldGFpbHMuYXBhcnRtZW50LmF1dG9Db21wbGV0ZSA/PyAnJ1wiXG4gICAgICAgIFt2YWxpZF09XCJhZGRyZXNzRGV0YWlscy5hcGFydG1lbnQudmFsaWQgPz8gJydcIlxuICAgICAgICBbZXJyb3JdPVwiYWRkcmVzc0RldGFpbHMuYXBhcnRtZW50LmVycm9yID8/ICcnXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImFkZHJlc3NEZXRhaWxzLmFwYXJ0bWVudC5yZXF1aXJlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpZF09XCJhZGRyZXNzRGV0YWlscy5hcGFydG1lbnQuaWQgPz8gJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWRkcmVzc0RldGFpbHMuYXBhcnRtZW50LmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzRGV0YWlscy5hcGFydG1lbnQudmFsdWVcIj48L2RzZnItZm9ybS1pbnB1dD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2NhbGl0eVwiPlxuICAgIDxkc2ZyLWZvcm0taW5wdXRcbiAgICAgICpmaWVsZHNldEVsZW1lbnRcbiAgICAgIFtuYW1lXT1cImxvY2FsaXR5Lm5hbWUgfHwgJ2FkZHJlc3MtbGV2ZWwzJ1wiXG4gICAgICBbbGFiZWxdPVwibG9jYWxpdHkubGFiZWwgfHwgJ0xpZXUtZGl0LCBjb21tdW5lIGTDqWzDqWd1w6llIG91IGJvw650ZSBwb3N0YWxlJ1wiXG4gICAgICBbaGludF09XCJsb2NhbGl0eS5oaW50XCJcbiAgICAgIFthdXRvY29tcGxldGVdPVwibG9jYWxpdHkuYXV0b0NvbXBsZXRlID8/ICcnXCJcbiAgICAgIFt2YWxpZF09XCJsb2NhbGl0eS52YWxpZCA/PyAnJ1wiXG4gICAgICBbZXJyb3JdPVwibG9jYWxpdHkuZXJyb3IgPz8gJydcIlxuICAgICAgW3JlcXVpcmVkXT1cImxvY2FsaXR5LnJlcXVpcmVkID8/IGZhbHNlXCJcbiAgICAgIFtpZF09XCJsb2NhbGl0eS5pZCA/PyAnJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwibG9jYWxpdHkuZGlzYWJsZWQgPz8gZmFsc2VcIlxuICAgICAgWyhuZ01vZGVsKV09XCJsb2NhbGl0eS52YWx1ZVwiPjwvZHNmci1mb3JtLWlucHV0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhZGRyZXNzRGV0YWlsc1wiPlxuICAgIDxkc2ZyLWZvcm0taW5wdXRcbiAgICAgICpmaWVsZHNldEVsZW1lbnQ9XCInZnItZmllbGRzZXRfX2VsZW1lbnQtLWlubGluZSBmci1maWVsZHNldF9fZWxlbWVudC0tcG9zdGFsJ1wiXG4gICAgICBbbmFtZV09XCJ6aXBDb2RlLm5hbWUgfHwgJ3Bvc3RhbC1jb2RlJ1wiXG4gICAgICBbbGFiZWxdPVwiemlwQ29kZS5sYWJlbCB8fCAnQ29kZSBwb3N0YWwnXCJcbiAgICAgIFtoaW50XT1cInppcENvZGUuaGludCB8fCAnRm9ybWF0IGF0dGVuZHUgOiA1IGNoaWZmcmVzJ1wiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cInppcENvZGUuYXV0b0NvbXBsZXRlID8/ICcnXCJcbiAgICAgIFt2YWxpZF09XCJ6aXBDb2RlLnZhbGlkID8/ICcnXCJcbiAgICAgIFtlcnJvcl09XCJ6aXBDb2RlLmVycm9yID8/ICcnXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ6aXBDb2RlLnJlcXVpcmVkID8/IGZhbHNlXCJcbiAgICAgIFtpZF09XCJ6aXBDb2RlLmlkID8/ICcnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ6aXBDb2RlLmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgIFsobmdNb2RlbCldPVwiemlwQ29kZS52YWx1ZVwiPjwvZHNmci1mb3JtLWlucHV0PlxuICAgIDwhLS0gQlVHIENsYXNzZSAnZnItZmllbGRzZXRfX2VsZW1lbnQtLWlubGluZUBtZCcgaW5jb25udWUgZW4gRFNGUiAxLjEwLjAgLS0+XG4gICAgPGRzZnItZm9ybS1pbnB1dFxuICAgICAgKmZpZWxkc2V0RWxlbWVudD1cIidmci1maWVsZHNldF9fZWxlbWVudC0taW5saW5lQG1kIGZyLWZpZWxkc2V0X19lbGVtZW50LS1pbmxpbmUtZ3JvdydcIlxuICAgICAgW25hbWVdPVwiY2l0eS5uYW1lIHx8ICdhZGRyZXNzLWxldmVsMidcIlxuICAgICAgW2xhYmVsXT1cImNpdHkubGFiZWwgfHwgJ1ZpbGxlIG91IGNvbW11bmUnXCJcbiAgICAgIFtoaW50XT1cImNpdHkuaGludCB8fCAnRXhlbXBsZSA6IE1vbnRwZWxsaWVyJ1wiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImNpdHkuYXV0b0NvbXBsZXRlID8/ICcnXCJcbiAgICAgIFt2YWxpZF09XCJjaXR5LnZhbGlkID8/ICcnXCJcbiAgICAgIFtlcnJvcl09XCJjaXR5LmVycm9yID8/ICcnXCJcbiAgICAgIFtyZXF1aXJlZF09XCJjaXR5LnJlcXVpcmVkID8/IGZhbHNlXCJcbiAgICAgIFtpZF09XCJjaXR5LmlkID8/ICcnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjaXR5LmRpc2FibGVkID8/IGZhbHNlXCJcbiAgICAgIFsobmdNb2RlbCldPVwiY2l0eS52YWx1ZVwiPjwvZHNmci1mb3JtLWlucHV0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZHNmci1maWVsZHNldD5cbiJdfQ==