{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.constants.ts","webpack:///./src/app/app.emoticons.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/directives/validators-view-errors/validators-view-errors.directive.ts","webpack:///./src/app/directives/validators-view-errors/validators-view-errors.module.ts","webpack:///./src/app/private/guards/auth/auth.guard.ts","webpack:///./src/app/private/modules/customers/components/create/create.component.html","webpack:///./src/app/private/modules/customers/components/create/create.component.scss","webpack:///./src/app/private/modules/customers/components/create/create.component.ts","webpack:///./src/app/private/modules/customers/components/detail/detail.component.html","webpack:///./src/app/private/modules/customers/components/detail/detail.component.scss","webpack:///./src/app/private/modules/customers/components/detail/detail.component.ts","webpack:///./src/app/private/modules/customers/components/import/import.component.html","webpack:///./src/app/private/modules/customers/components/import/import.component.scss","webpack:///./src/app/private/modules/customers/components/import/import.component.ts","webpack:///./src/app/private/modules/customers/customers-routing.module.ts","webpack:///./src/app/private/modules/customers/customers.component.html","webpack:///./src/app/private/modules/customers/customers.component.scss","webpack:///./src/app/private/modules/customers/customers.component.ts","webpack:///./src/app/private/modules/customers/customers.module.ts","webpack:///./src/app/private/modules/data-processing/components/exports/exports.component.html","webpack:///./src/app/private/modules/data-processing/components/exports/exports.component.scss","webpack:///./src/app/private/modules/data-processing/components/exports/exports.component.ts","webpack:///./src/app/private/modules/data-processing/components/imports/imports.component.html","webpack:///./src/app/private/modules/data-processing/components/imports/imports.component.scss","webpack:///./src/app/private/modules/data-processing/components/imports/imports.component.ts","webpack:///./src/app/private/modules/data-processing/components/report/report.component.html","webpack:///./src/app/private/modules/data-processing/components/report/report.component.scss","webpack:///./src/app/private/modules/data-processing/components/report/report.component.ts","webpack:///./src/app/private/modules/data-processing/data-processing-routing.module.ts","webpack:///./src/app/private/modules/data-processing/data-processing.module.ts","webpack:///./src/app/private/modules/home/home-routing.module.ts","webpack:///./src/app/private/modules/home/home.component.html","webpack:///./src/app/private/modules/home/home.component.scss","webpack:///./src/app/private/modules/home/home.component.ts","webpack:///./src/app/private/modules/home/home.module.ts","webpack:///./src/app/private/modules/hospitals/components/create/create.component.html","webpack:///./src/app/private/modules/hospitals/components/create/create.component.scss","webpack:///./src/app/private/modules/hospitals/components/create/create.component.ts","webpack:///./src/app/private/modules/hospitals/components/create/hospital.ts","webpack:///./src/app/private/modules/hospitals/components/update/update.component.html","webpack:///./src/app/private/modules/hospitals/components/update/update.component.scss","webpack:///./src/app/private/modules/hospitals/components/update/update.component.ts","webpack:///./src/app/private/modules/hospitals/hospitals-routing.module.ts","webpack:///./src/app/private/modules/hospitals/hospitals.component.html","webpack:///./src/app/private/modules/hospitals/hospitals.component.scss","webpack:///./src/app/private/modules/hospitals/hospitals.component.ts","webpack:///./src/app/private/modules/hospitals/hospitals.module.ts","webpack:///./src/app/private/modules/purchases/components/create/create.component.html","webpack:///./src/app/private/modules/purchases/components/create/create.component.scss","webpack:///./src/app/private/modules/purchases/components/create/create.component.ts","webpack:///./src/app/private/modules/purchases/components/delete/delete.component.html","webpack:///./src/app/private/modules/purchases/components/delete/delete.component.scss","webpack:///./src/app/private/modules/purchases/components/delete/delete.component.ts","webpack:///./src/app/private/modules/purchases/components/import/import.component.html","webpack:///./src/app/private/modules/purchases/components/import/import.component.scss","webpack:///./src/app/private/modules/purchases/components/import/import.component.ts","webpack:///./src/app/private/modules/purchases/components/update/update.component.html","webpack:///./src/app/private/modules/purchases/components/update/update.component.scss","webpack:///./src/app/private/modules/purchases/components/update/update.component.ts","webpack:///./src/app/private/modules/purchases/purchase.ts","webpack:///./src/app/private/modules/purchases/purchases-routing.module.ts","webpack:///./src/app/private/modules/purchases/purchases.component.html","webpack:///./src/app/private/modules/purchases/purchases.component.scss","webpack:///./src/app/private/modules/purchases/purchases.component.ts","webpack:///./src/app/private/modules/purchases/purchases.module.ts","webpack:///./src/app/private/modules/transactions/transactions-routing.module.ts","webpack:///./src/app/private/modules/transactions/transactions.component.html","webpack:///./src/app/private/modules/transactions/transactions.component.scss","webpack:///./src/app/private/modules/transactions/transactions.component.ts","webpack:///./src/app/private/modules/transactions/transactions.module.ts","webpack:///./src/app/private/modules/users/components/create/create.component.html","webpack:///./src/app/private/modules/users/components/create/create.component.scss","webpack:///./src/app/private/modules/users/components/create/create.component.ts","webpack:///./src/app/private/modules/users/users-routing.module.ts","webpack:///./src/app/private/modules/users/users.component.html","webpack:///./src/app/private/modules/users/users.component.scss","webpack:///./src/app/private/modules/users/users.component.ts","webpack:///./src/app/private/modules/users/users.module.ts","webpack:///./src/app/private/template/components/aside/aside.component.html","webpack:///./src/app/private/template/components/aside/aside.component.scss","webpack:///./src/app/private/template/components/aside/aside.component.ts","webpack:///./src/app/private/template/components/content/content.component.html","webpack:///./src/app/private/template/components/content/content.component.scss","webpack:///./src/app/private/template/components/content/content.component.ts","webpack:///./src/app/private/template/components/footer/footer.component.html","webpack:///./src/app/private/template/components/footer/footer.component.scss","webpack:///./src/app/private/template/components/footer/footer.component.ts","webpack:///./src/app/private/template/components/header/header.component.html","webpack:///./src/app/private/template/components/header/header.component.scss","webpack:///./src/app/private/template/components/header/header.component.ts","webpack:///./src/app/private/template/template.component.html","webpack:///./src/app/private/template/template.component.scss","webpack:///./src/app/private/template/template.component.ts","webpack:///./src/app/private/template/template.module.ts","webpack:///./src/app/public/modules/authentication/authentication-routing.module.ts","webpack:///./src/app/public/modules/authentication/authentication.module.ts","webpack:///./src/app/public/modules/authentication/components/login/login.component.html","webpack:///./src/app/public/modules/authentication/components/login/login.component.scss","webpack:///./src/app/public/modules/authentication/components/login/login.component.ts","webpack:///./src/app/services/authentication/authentication.service.ts","webpack:///./src/app/services/balance/balance.service.ts","webpack:///./src/app/services/customers/customers.service.ts","webpack:///./src/app/services/global.service.ts","webpack:///./src/app/services/hospitals/hospitals.service.ts","webpack:///./src/app/services/intercept.service.ts","webpack:///./src/app/services/purchases/purchases.service.ts","webpack:///./src/app/services/transactions/transaction.service.ts","webpack:///./src/app/services/users/users.service.ts","webpack:///./src/app/utils/card/card.component.html","webpack:///./src/app/utils/card/card.component.scss","webpack:///./src/app/utils/card/card.component.ts","webpack:///./src/app/utils/card/card.module.ts","webpack:///./src/app/utils/custom-validators/components/date/date.validator.ts","webpack:///./src/app/utils/custom-validators/components/email/email.validator.ts","webpack:///./src/app/utils/custom-validators/components/equals/equals.validator.ts","webpack:///./src/app/utils/custom-validators/components/in-arrray/in-array.validator.ts","webpack:///./src/app/utils/custom-validators/components/length/length.validator.ts","webpack:///./src/app/utils/custom-validators/components/max-length/max-length.validator.ts","webpack:///./src/app/utils/custom-validators/components/min-length/min-length.validator.ts","webpack:///./src/app/utils/custom-validators/components/only-numbers/only-numbers.validator.ts","webpack:///./src/app/utils/custom-validators/components/only-text/only-text.validator.ts","webpack:///./src/app/utils/custom-validators/components/required-location/required-location.validator.ts","webpack:///./src/app/utils/custom-validators/components/required/required-validator.ts","webpack:///./src/app/utils/custom-validators/components/urls/url.validator.ts","webpack:///./src/app/utils/custom-validators/index.ts","webpack:///./src/app/utils/drop-downds/components/customers/customers.component.html","webpack:///./src/app/utils/drop-downds/components/customers/customers.component.scss","webpack:///./src/app/utils/drop-downds/components/customers/customers.component.ts","webpack:///./src/app/utils/drop-downds/drop-downds.module.ts","webpack:///./src/app/utils/helpers/helpers.ts","webpack:///./src/app/utils/progress-bar/progress-bar.component.html","webpack:///./src/app/utils/progress-bar/progress-bar.component.scss","webpack:///./src/app/utils/progress-bar/progress-bar.component.ts","webpack:///./src/app/utils/progress-bar/progress-bar.module.ts","webpack:///./src/app/utils/to-import/components/xls/xls.component.html","webpack:///./src/app/utils/to-import/components/xls/xls.component.scss","webpack:///./src/app/utils/to-import/components/xls/xls.component.ts","webpack:///./src/app/utils/to-import/to-import.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from './private/template/template.component';\r\n\r\nconst routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { useHash: true } )],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","module.exports = \"
\\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'gift-shop';\r\n}\r\n","import { environment } from '../environments/environment';\r\n\r\nexport const constant = {\r\n production: environment.production,\r\n debug: false,\r\n\r\n // Authentication\r\n auth: {\r\n getToken: () => {\r\n return localStorage.getItem('token');\r\n },\r\n getUser: () => {\r\n return JSON.parse(localStorage.getItem('user'));\r\n },\r\n client_id: '3',\r\n client_secret: 'firreQeWDRlDWUxjnGksdm1PDbEoxu17NPbbHgke',\r\n keys: {\r\n token: 'token',\r\n userData: 'user',\r\n urlBeforExpelling: 'urlBeforExpelling'\r\n },\r\n urls: {\r\n base: environment.apiRest.base + 'oauth',\r\n login: environment.apiRest.base + 'oauth/token',\r\n verifyToken: environment.apiRest.base + 'oauth/personal-access-tokens',\r\n },\r\n },\r\n\r\n // Customers\r\n customers: {\r\n urls: {\r\n base: environment.apiRest.url + 'customers',\r\n import: environment.apiRest.url + 'customers/import',\r\n profiles: environment.apiRest.url + 'customers/profiles',\r\n },\r\n },\r\n\r\n // Hospitals\r\n hospitals: {\r\n urls: {\r\n base: environment.apiRest.url + 'hospitals'\r\n },\r\n },\r\n\r\n // Purchase\r\n pruchase: {\r\n urls: {\r\n base: environment.apiRest.url + 'purchases'\r\n },\r\n },\r\n\r\n purchases: {\r\n urls: {\r\n import: environment.apiRest.url + 'purchases/loadPurchases'\r\n },\r\n },\r\n\r\n // transaction\r\n transaction: {\r\n urls: {\r\n base: environment.apiRest.url + 'transaction_types'\r\n },\r\n },\r\n\r\n // Balance\r\n balance: {\r\n urls: {\r\n base: environment.apiRest.url + 'balances/purchasesTranslate',\r\n history: environment.apiRest.url + 'balances/custormer',\r\n pending: environment.apiRest.url + 'purchases/customer',\r\n deductions: environment.apiRest.url + 'balances/loadDeductions',\r\n exportBalance: environment.apiRest.url + 'balances/exportBalance/Hospital/',\r\n pendingBalance: environment.apiRest.url + 'balances/pendingBalances',\r\n postUpdateDeduction: environment.apiRest.url + 'balances/postUpdateDeduction'\r\n },\r\n },\r\n\r\n users: {\r\n urls: {\r\n base: environment.apiRest.url + 'users',\r\n actives: environment.apiRest.url + 'users/active',\r\n profiles: environment.apiRest.url + 'users/profiles',\r\n },\r\n },\r\n\r\n views: {\r\n login: {\r\n base: ''\r\n },\r\n home: {\r\n base: 'private/home',\r\n }\r\n }\r\n\r\n};\r\n","export const emoticons = {\r\n 'myface': '😨',\r\n 'poop': '💩',\r\n 'unicorn': '🦄',\r\n 'pizza': '🍕',\r\n 'beer': '🍺',\r\n 'bomb': '💣'\r\n};\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport Swal from 'sweetalert2';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { emoticons } from './app.emoticons';\r\nimport { AuthenticationModule } from './public/modules/authentication/authentication.module';\r\nimport { InterceptService } from './services/intercept.service';\r\nimport { TemplateModule } from './private/template/template.module';\r\nimport { HomeModule } from './private/modules/home/home.module';\r\nimport { CustomersModule } from './private/modules/customers/customers.module';\r\nimport { DataProcessingModule } from './private/modules/data-processing/data-processing.module';\r\nimport { HospitalsModule } from './private/modules/hospitals/hospitals.module';\r\nimport { PurchasesModule } from './private/modules/purchases/purchases.module';\r\nimport {TransactionsModule} from './private/modules/transactions/transactions.module';\r\n\r\nimport { LicenseManager} from 'ag-grid-enterprise/main';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { SweetAlert2Module } from '@toverux/ngx-sweetalert2';\r\nimport { NgxMyDatePickerModule } from 'ngx-mydatepicker';\r\nimport { UsersModule } from './private/modules/users/users.module';\r\n\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\nwindow['emoticons'] = emoticons;\r\n\r\nLicenseManager.setLicenseKey('');\r\nLicenseManager['outputMessage'] = function (data1, data2) {\r\n // console.log('outputMessage', data1, data2);\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n ToastrModule.forRoot({\r\n closeButton: true,\r\n enableHtml: true,\r\n }),\r\n AgGridModule.withComponents([]),\r\n SweetAlert2Module.forRoot(),\r\n NgxMyDatePickerModule.forRoot(),\r\n // Mudules\r\n AuthenticationModule,\r\n HomeModule,\r\n CustomersModule,\r\n DataProcessingModule,\r\n HospitalsModule,\r\n PurchasesModule,\r\n TransactionsModule,\r\n UsersModule,\r\n TemplateModule,\r\n NgxMaskModule.forRoot()\r\n ],\r\n providers: [\r\n InterceptService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: InterceptService,\r\n multi: true\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Directive, Input, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { isPresent } from 'src/app/utils/helpers/helpers';\r\n\r\n@Directive({\r\n selector: '[appValidatorsViewErrors]'\r\n})\r\nexport class ValidatorsViewErrorsDirective implements AfterViewInit {\r\n\r\n private subscribe = false;\r\n\r\n @Input() control: AbstractControl;\r\n\r\n constructor(private element: ElementRef) { }\r\n\r\n buildTextErrors(errors) {\r\n let msg = '';\r\n if (isPresent(errors) && (this.control.dirty || this.control.touched)) {\r\n if (errors.message) {\r\n msg = `

${errors.message}

`;\r\n } else {\r\n msg = `

Invalid value

`;\r\n }\r\n }\r\n\r\n this.element.nativeElement.innerHTML = msg;\r\n }\r\n\r\n _each() {\r\n if (!this.subscribe && isPresent(this.control)) {\r\n this.subscribe = true;\r\n this.control.valueChanges\r\n .subscribe(() => {\r\n this.buildTextErrors(this.control.errors);\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._each();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ValidatorsViewErrorsDirective } from './validators-view-errors.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n ValidatorsViewErrorsDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [ValidatorsViewErrorsDirective]\r\n})\r\nexport class ValidatorsViewErrorsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthenticationService } from 'src/app/services/authentication/authentication.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor (\r\n private _router: Router,\r\n private _toastr: ToastrService,\r\n private _auth: AuthenticationService\r\n ) {}\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean {\r\n try {\r\n if (constant.auth.getToken()) {\r\n this._auth.verifyToken()\r\n .subscribe((success) => {\r\n }, (err) => {\r\n console.log('verifyToken Error', err);\r\n });\r\n return true;\r\n }\r\n } catch (error) {\r\n console.log('AuthGuard', error);\r\n }\r\n this._toastr.warning('You do not have permissions for this module', 'Access denied');\r\n this._router.navigateByUrl(constant.views.login.base);\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{isUpdate ? 'Edit': 'New' }} Customer\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{customer?._hospital?.short_name}}\\r\\n \\r\\n \\r\\n {{customer?.employee_id}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.form-customer-create {\\n box-shadow: -2px 2px 7px 0px rgba(0, 0, 0, 0.29); }\\n.form-customer-create input.ng-invalid, .form-customer-create select.ng-invalid {\\n border-left-color: #dc3545;\\n border-left-width: 2px; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvY3VzdG9tZXJzL2NvbXBvbmVudHMvY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9jb2xvcnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9hbmltYXRpb25zLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9jdXN0b21lcnMvY29tcG9uZW50cy9jcmVhdGUvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxhcHBcXHByaXZhdGVcXG1vZHVsZXNcXGN1c3RvbWVyc1xcY29tcG9uZW50c1xcY3JlYXRlXFxjcmVhdGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBFQUFZO0FDQVosaUJBQWlCO0FDRWpCOzs7O29CQUlvQjtBQUduQix5QkFBeUI7QUFFekIseUJBQXlC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bWVycy9jb21wb25lbnRzL2NyZWF0ZS9jcmVhdGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMCcpO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYSBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBmb250LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1kZWZhdWx0XHJcbiAqL1xyXG4kZm9udC1kZWZhdWx0OiAnSGVsdmV0aWNhJywgJ1JvYm90bycsICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtc2Vjb25kYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2Vjb25kYXJ5XHJcbiAqL1xyXG4kZm9udC1zZWNvbmRhcnk6ICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtYXJpYWxcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1hcmlhbFxyXG4gKi9cclxuJGZvbnQtYXJpYWw6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbi8qKlxyXG4gKiBmb250LXJvYm90b1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJvYm90b1xyXG4gKi9cclxuJGZvbnQtcm9ib3RvOiAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnO1xyXG5cclxuXHJcbiRmb250LWhlbHZldGljYS1vYmxpcXVlOiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZDogJ0hlbHZldGljYSBCb2xkJztcclxuJGZvbnQtaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZTogJ0hlbHZldGljYSBCb2xkIE9ibGlxdWUnO1xyXG5cclxuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXHJcbiRmb250LXRoaW46IDEwMDtcclxuLyoqXHJcbiAqIGZvbnQtbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1saWdodFxyXG4gKi9cclxuJGZvbnQtbGlnaHQ6IDMwMDtcclxuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXHJcbiRmb250LXJlZ3VsYXI6IDQwMDtcclxuLyoqXHJcbiAqIGZvbnQtbWVkaXVtXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbWVkaXVtXHJcbiAqL1xyXG4kZm9udC1tZWRpdW06IDUwMDtcclxuLyoqXHJcbiAqIGZvbnQtc2VtaS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2VtaS1ib2xkXHJcbiAqL1xyXG4kZm9udC1zZW1pLWJvbGQ6IDYwMDtcclxuLyoqXHJcbiAqIGZvbnQtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWJvbGRcclxuICovXHJcbiRmb250LWJvbGQ6IDcwMDtcclxuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXHJcbiRmb250LXVsdHJhLWJvbGQ6IDkwMDtcclxuXHJcbiRmb250czogKFxyXG4gICdkZWZhdWx0JzogJGZvbnQtZGVmYXVsdCxcclxuICAnc2Vjb25kYXJ5JzogJGZvbnQtc2Vjb25kYXJ5LFxyXG4gICdhcmlhbCc6ICRmb250LWFyaWFsLFxyXG4gICdyb2JvdG8nOiAkZm9udC1yb2JvdG8sXHJcbiAgJ2hlbHZldGljYS1vYmxpcXVlJzogJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWUsXHJcbiAgJ2hlbHZldGljYS1ib2xkJzogJGZvbnQtaGVsdmV0aWNhLWJvbGQsXHJcbiAgJ2hlbHZldGljYS1ib2xkLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlLFxyXG4pO1xyXG5cclxuXHJcblxyXG4kZm9udHMtd2VpZ2h0czogKFxyXG4gJ3RoaW4nOiAkZm9udC10aGluLFxyXG4gJ2xpZ2h0JzogJGZvbnQtbGlnaHQsXHJcbiAncmVndWxhcic6ICRmb250LXJlZ3VsYXIsXHJcbiAnbWVkaXVtJzogJGZvbnQtbWVkaXVtLFxyXG4gJ3NlbWktYm9sZCc6ICRmb250LXNlbWktYm9sZCxcclxuICdib2xkJzogJGZvbnQtYm9sZCxcclxuICd1bHRyYS1ib2xkJzogJGZvbnQtdWx0cmEtYm9sZCxcclxuKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXG4vKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXG4vKiogQGNvbG9yIHRyYW5zcGFyZW50ICovXG4vKiogQGNvbG9yIGJsdWUgKi9cbi8qKiBAY29sb3IgaW5kaWdvICovXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xuLyoqIEBjb2xvciBwaW5rICovXG4vKiogQGNvbG9yIHJlZCAqL1xuLyoqIEBjb2xvciBvcmFuZ2UgKi9cbi8qKiBAY29sb3IgeWVsbG93ICovXG4vKiogQGNvbG9yIGdyZWVuICovXG4vKiogQGNvbG9yIHRlYWwgKi9cbi8qKiBAY29sb3IgY3lhbiAqL1xuLyoqIEBjb2xvciB3aGl0ZSAqL1xuLyoqIEBjb2xvciBncmF5ICovXG4vKiogQGNvbG9yIGdyYXktbG93ICovXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xuLyoqIEBjb2xvciBsaWdodCAqL1xuLyoqIEBjb2xvciBjb2xvci1zZWN1bmRhcnkgKi9cbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXN1Y2Nlc3MgZXMgdXRpbGl6YWRvIGVuIGV2ZW50b3Mgc2F0aXNmYWN0b3Jpb3NcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXN1Y2Nlc3NcclxuICovXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheS1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5LWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTJcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtMlxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTNcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtM1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXG4vKipcclxuYXJyYXkgb2YgY29sb3JzXHJcbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw3MDBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2EgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBCb2xkIE9ibGlxdWVcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXVsdHJhLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC11bHRyYS1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtcGVyY2VudCgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHZoXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXZpZXdwb3J0KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cbi5yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfcmVib3VuZC1hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIF9yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0b3A6IDBweDsgfVxuICAxMDAlIHtcbiAgICB0b3A6IDVweDsgfSB9XG5cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXG4uZmxpY2tlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBfZmxpY2tlci1hbWltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uZm9ybS1jdXN0b21lci1jcmVhdGUge1xuICBib3gtc2hhZG93OiAtMnB4IDJweCA3cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yOSk7IH1cbiAgLmZvcm0tY3VzdG9tZXItY3JlYXRlIGlucHV0Lm5nLWludmFsaWQsIC5mb3JtLWN1c3RvbWVyLWNyZWF0ZSBzZWxlY3QubmctaW52YWxpZCB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNkYzM1NDU7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDsgfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4uZm9ybS1jdXN0b21lci1jcmVhdGUge1xyXG4gIGJveC1zaGFkb3c6IC0ycHggMnB4IDdweCAwcHggcmdiYSgwLDAsMCwwLjI5KTtcclxuXHJcbiAgaW5wdXQubmctaW52YWxpZCwgc2VsZWN0Lm5nLWludmFsaWQge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvci1kYW5nZXI7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogMnB4O1xyXG4gIH1cclxufSJdfQ== */\"","import { Component, OnInit, ViewChild, Input, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\nimport { INgxMyDpOptions, IMyDateModel, NgxMyDatePickerDirective } from 'ngx-mydatepicker';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CustomValidators } from 'src/app/utils/custom-validators';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport { isPresent } from 'src/app/utils/helpers/helpers';\r\nimport swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-private-customers-create',\r\n templateUrl: './create.component.html',\r\n styleUrls: ['./create.component.scss']\r\n})\r\nexport class CreateComponent implements OnInit, OnChanges {\r\n\r\n public form: FormGroup;\r\n wait: boolean;\r\n hospitals = [];\r\n\r\n @Input() isUpdate: boolean;\r\n @Input() customer: any;\r\n @Input() btnClose: boolean;\r\n\r\n @Output() emitterAction: EventEmitter = new EventEmitter();\r\n @Output() emitterClose: EventEmitter = new EventEmitter();\r\n\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private _toastr: ToastrService,\r\n private _customers: CustomersService,\r\n private _hospitals: HospitalsService\r\n ) {\r\n this.builderForm();\r\n }\r\n\r\n ngOnInit() {\r\n this.getHospitals();\r\n }\r\n\r\n builderForm() {\r\n this.form = this.fb.group({\r\n employee_id: ['', [CustomValidators.required]],\r\n hospital: ['', [CustomValidators.required]],\r\n name: ['', [CustomValidators.required, CustomValidators.onlyText]],\r\n last_name: ['', [CustomValidators.required, CustomValidators.onlyText]],\r\n address: [''],\r\n apt: [''],\r\n city: [''],\r\n state: [''],\r\n zipcode: ['', [CustomValidators.onlyNumbers, CustomValidators.minLength(2), CustomValidators.maxLength(6)]],\r\n phone: [''],\r\n cell_phone: [''],\r\n email: ['', [CustomValidators.email]],\r\n });\r\n }\r\n\r\n setValuesFrom(data) {\r\n try {\r\n Object.keys(this.form.controls).forEach(key => {\r\n this.form.get(key).setValue(data[key]);\r\n });\r\n } catch (error) {\r\n this._toastr.error('An error occurred while loading the data to update', 'setValuesFrom');\r\n console.error(error);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * @description Solicitud de login\r\n */\r\n onSubmit(values) {\r\n this.isUpdate ? this.update(values) : this.create(values);\r\n }\r\n\r\n create(values) {\r\n this.wait = true;\r\n this.form.disable();\r\n return this._customers\r\n .create(values)\r\n .pipe(\r\n finalize(() => {\r\n this.wait = false;\r\n this.form.enable();\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this._toastr.success(success.message);\r\n this.resetForm();\r\n }, (error) => {\r\n console.error('onSubmit error', error);\r\n swal({\r\n type: 'error',\r\n title: 'Oops...',\r\n text: (error.message)\r\n });\r\n }\r\n );\r\n }\r\n\r\n update(values) {\r\n this.wait = true;\r\n this.form.disable();\r\n this._customers\r\n .update(values, this.customer.id)\r\n .pipe(\r\n finalize(() => {\r\n this.wait = false;\r\n this.form.enable();\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this._toastr.success(success.message);\r\n this.emitter(true, values);\r\n }, (error) => {\r\n console.error('update error', error);\r\n this.emitter(false, values);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * @description Cargar hospitales\r\n */\r\n getHospitals() {\r\n return this._hospitals\r\n .get()\r\n .subscribe(\r\n (success) => {\r\n this.hospitals = success.data;\r\n }, (error) => {\r\n console.error('getHospitals error', error);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n resetForm() {\r\n this.form.reset();\r\n this.form.updateValueAndValidity();\r\n }\r\n\r\n emitter(event, data) {\r\n return this.emitterAction.emit({\r\n isUpdate: this.isUpdate,\r\n save: event,\r\n data: data\r\n });\r\n }\r\n\r\n clickOnClose() {\r\n this.emitterClose.emit(true);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (isPresent(changes['customer'])) {\r\n if (isPresent(changes['customer'].currentValue)) {\r\n this.setValuesFrom(changes['customer'].currentValue);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n Loading, please wait.\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{customer?.active ? 'Active' : 'Inactive'}} Customer\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{customer?._hospital?.short_name}}\\r\\n \\r\\n \\r\\n {{customer?.employee_id}}\\r\\n \\r\\n \\r\\n {{customer?.name}}\\r\\n {{customer?.last_name}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Address:\\r\\n {{customer?.address}}\\r\\n

\\r\\n

\\r\\n Apt:\\r\\n {{customer?.apt}}\\r\\n

\\r\\n

\\r\\n City:\\r\\n {{customer?.city}}\\r\\n

\\r\\n

\\r\\n State:\\r\\n {{customer?.state}}\\r\\n

\\r\\n

\\r\\n Zip Code:\\r\\n {{customer?.zipcode}}\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Balance:\\r\\n {{historyTransactions[0]?.balance | currency:'$ '}} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Nbr of Deductions:\\r\\n
\\r\\n
\\r\\n {{historyTransactions[0]?.deductions}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Amount to Deduct:\\r\\n {{historyTransactions[0]?.amountDeduction | currency:'$ '}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Last updated on: {{historyTransactions[0]?.created_at | date}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Pending Transactions

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Transaction\\r\\n
\\r\\n
\\r\\n Trans Date\\r\\n
\\r\\n
\\r\\n Date of Sale\\r\\n
\\r\\n
\\r\\n Description\\r\\n
\\r\\n
\\r\\n Amount\\r\\n
\\r\\n
\\r\\n Deduction\\r\\n
\\r\\n
\\r\\n New Balance\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.id}}\\r\\n
\\r\\n
\\r\\n {{item.created_at | date}}\\r\\n
\\r\\n
\\r\\n {{item.dateOfService}}\\r\\n
\\r\\n
\\r\\n {{item?.transaction_type?.description}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{item.amount | currency:'$ '}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{item.deductions}}\\r\\n
\\r\\n
\\r\\n {{item.balance | currency:'$ '}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No data found\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

History

\\r\\n
\\r\\n
\\r\\n
\\r\\n Transaction\\r\\n
\\r\\n
\\r\\n Trans Date\\r\\n
\\r\\n
\\r\\n Date of Sale\\r\\n
\\r\\n
\\r\\n Description\\r\\n
\\r\\n
\\r\\n Amount\\r\\n
\\r\\n
\\r\\n Deduction\\r\\n
\\r\\n
\\r\\n Amt to Deduct\\r\\n
\\r\\n
\\r\\n Balance\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.id}}\\r\\n
\\r\\n
\\r\\n {{item.created_at | date}}\\r\\n
\\r\\n
\\r\\n {{item.dateOfService}}\\r\\n
\\r\\n
\\r\\n {{item?.transaction_type?.description}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{item.amount | currency:'$ '}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{item.deductions}}\\r\\n
\\r\\n
\\r\\n {{item.amountDeduction | currency:'$ '}}\\r\\n
\\r\\n
\\r\\n {{item.balance | currency:'$ '}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n No data found\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.deduction {\\n color: #dc3545; }\\n.deduction::after {\\n content: ')'; }\\n.deduction::before {\\n content: '('; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2RldGFpbC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvY3VzdG9tZXJzL2NvbXBvbmVudHMvZGV0YWlsL2RldGFpbC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2RldGFpbC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9jb2xvcnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2RldGFpbC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2RldGFpbC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2RldGFpbC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9hbmltYXRpb25zLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9jdXN0b21lcnMvY29tcG9uZW50cy9kZXRhaWwvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxhcHBcXHByaXZhdGVcXG1vZHVsZXNcXGN1c3RvbWVyc1xcY29tcG9uZW50c1xcZGV0YWlsXFxkZXRhaWwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBFQUFZO0FDQVosaUJBQWlCO0FDRWpCOzs7O29CQUlvQjtBQUduQix5QkFBeUI7QUFFekIseUJBQXlC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c3RvbWVycy9jb21wb25lbnRzL2RldGFpbC9kZXRhaWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMCcpO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYSBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBmb250LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1kZWZhdWx0XHJcbiAqL1xyXG4kZm9udC1kZWZhdWx0OiAnSGVsdmV0aWNhJywgJ1JvYm90bycsICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtc2Vjb25kYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2Vjb25kYXJ5XHJcbiAqL1xyXG4kZm9udC1zZWNvbmRhcnk6ICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtYXJpYWxcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1hcmlhbFxyXG4gKi9cclxuJGZvbnQtYXJpYWw6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbi8qKlxyXG4gKiBmb250LXJvYm90b1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJvYm90b1xyXG4gKi9cclxuJGZvbnQtcm9ib3RvOiAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnO1xyXG5cclxuXHJcbiRmb250LWhlbHZldGljYS1vYmxpcXVlOiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZDogJ0hlbHZldGljYSBCb2xkJztcclxuJGZvbnQtaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZTogJ0hlbHZldGljYSBCb2xkIE9ibGlxdWUnO1xyXG5cclxuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXHJcbiRmb250LXRoaW46IDEwMDtcclxuLyoqXHJcbiAqIGZvbnQtbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1saWdodFxyXG4gKi9cclxuJGZvbnQtbGlnaHQ6IDMwMDtcclxuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXHJcbiRmb250LXJlZ3VsYXI6IDQwMDtcclxuLyoqXHJcbiAqIGZvbnQtbWVkaXVtXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbWVkaXVtXHJcbiAqL1xyXG4kZm9udC1tZWRpdW06IDUwMDtcclxuLyoqXHJcbiAqIGZvbnQtc2VtaS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2VtaS1ib2xkXHJcbiAqL1xyXG4kZm9udC1zZW1pLWJvbGQ6IDYwMDtcclxuLyoqXHJcbiAqIGZvbnQtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWJvbGRcclxuICovXHJcbiRmb250LWJvbGQ6IDcwMDtcclxuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXHJcbiRmb250LXVsdHJhLWJvbGQ6IDkwMDtcclxuXHJcbiRmb250czogKFxyXG4gICdkZWZhdWx0JzogJGZvbnQtZGVmYXVsdCxcclxuICAnc2Vjb25kYXJ5JzogJGZvbnQtc2Vjb25kYXJ5LFxyXG4gICdhcmlhbCc6ICRmb250LWFyaWFsLFxyXG4gICdyb2JvdG8nOiAkZm9udC1yb2JvdG8sXHJcbiAgJ2hlbHZldGljYS1vYmxpcXVlJzogJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWUsXHJcbiAgJ2hlbHZldGljYS1ib2xkJzogJGZvbnQtaGVsdmV0aWNhLWJvbGQsXHJcbiAgJ2hlbHZldGljYS1ib2xkLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlLFxyXG4pO1xyXG5cclxuXHJcblxyXG4kZm9udHMtd2VpZ2h0czogKFxyXG4gJ3RoaW4nOiAkZm9udC10aGluLFxyXG4gJ2xpZ2h0JzogJGZvbnQtbGlnaHQsXHJcbiAncmVndWxhcic6ICRmb250LXJlZ3VsYXIsXHJcbiAnbWVkaXVtJzogJGZvbnQtbWVkaXVtLFxyXG4gJ3NlbWktYm9sZCc6ICRmb250LXNlbWktYm9sZCxcclxuICdib2xkJzogJGZvbnQtYm9sZCxcclxuICd1bHRyYS1ib2xkJzogJGZvbnQtdWx0cmEtYm9sZCxcclxuKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXG4vKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXG4vKiogQGNvbG9yIHRyYW5zcGFyZW50ICovXG4vKiogQGNvbG9yIGJsdWUgKi9cbi8qKiBAY29sb3IgaW5kaWdvICovXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xuLyoqIEBjb2xvciBwaW5rICovXG4vKiogQGNvbG9yIHJlZCAqL1xuLyoqIEBjb2xvciBvcmFuZ2UgKi9cbi8qKiBAY29sb3IgeWVsbG93ICovXG4vKiogQGNvbG9yIGdyZWVuICovXG4vKiogQGNvbG9yIHRlYWwgKi9cbi8qKiBAY29sb3IgY3lhbiAqL1xuLyoqIEBjb2xvciB3aGl0ZSAqL1xuLyoqIEBjb2xvciBncmF5ICovXG4vKiogQGNvbG9yIGdyYXktbG93ICovXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xuLyoqIEBjb2xvciBsaWdodCAqL1xuLyoqIEBjb2xvciBjb2xvci1zZWN1bmRhcnkgKi9cbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXN1Y2Nlc3MgZXMgdXRpbGl6YWRvIGVuIGV2ZW50b3Mgc2F0aXNmYWN0b3Jpb3NcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXN1Y2Nlc3NcclxuICovXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheS1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5LWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTJcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtMlxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTNcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtM1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXG4vKipcclxuYXJyYXkgb2YgY29sb3JzXHJcbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw3MDBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2EgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBCb2xkIE9ibGlxdWVcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXVsdHJhLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC11bHRyYS1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtcGVyY2VudCgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHZoXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXZpZXdwb3J0KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cbi5yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfcmVib3VuZC1hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIF9yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0b3A6IDBweDsgfVxuICAxMDAlIHtcbiAgICB0b3A6IDVweDsgfSB9XG5cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXG4uZmxpY2tlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBfZmxpY2tlci1hbWltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uZGVkdWN0aW9uIHtcbiAgY29sb3I6ICNkYzM1NDU7IH1cbiAgLmRlZHVjdGlvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJzsgfVxuICAuZGVkdWN0aW9uOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcoJzsgfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4uZGVkdWN0aW9uIHtcclxuICBjb2xvcjogJGNvbG9yLWRhbmdlcjtcclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyknO1xyXG4gIH1cclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJygnO1xyXG4gIH1cclxufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CardComponent } from 'src/app/utils/card/card.component';\r\nimport { TransactionService } from 'src/app/services/transactions/transaction.service';\r\nimport {BalanceService} from '../../../../../services/balance/balance.service';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-private-customers-detail',\r\n templateUrl: './detail.component.html',\r\n styleUrls: ['./detail.component.scss']\r\n})\r\nexport class DetailComponent implements OnInit {\r\n\r\n customer;\r\n onLoading = true;\r\n transactions = [];\r\n pendingTransactions = [];\r\n historyTransactions = [];\r\n numDeduction = 0;\r\n activeSelect = false;\r\n deductionTransactions = [];\r\n balan = [];\r\n\r\n onLoadingHistory: boolean;\r\n onLoadingPendingTransactions: boolean;\r\n onLoadingDeductionTransactions: boolean;\r\n\r\n @ViewChild('modalUpdate') modalUpdate: CardComponent;\r\n\r\n constructor(\r\n private routeActive: ActivatedRoute,\r\n private _customers: CustomersService,\r\n private _toastr: ToastrService,\r\n private _transaction: TransactionService,\r\n private _balanceService: BalanceService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.routeActive.params\r\n .subscribe(params => {\r\n this.getCustomer(params.employee_id);\r\n });\r\n }\r\n\r\n /**\r\n * @desc Cargar datos del cliente\r\n * @param employee number\r\n */\r\n\r\n getHistoryTransactions(employee: number) {\r\n this.onLoadingHistory = true;\r\n return this._transaction\r\n .getHistoryTransactions(employee)\r\n .pipe(\r\n finalize(() => {\r\n this.onLoadingHistory = false;\r\n this.activeSelect = false;\r\n })\r\n )\r\n .subscribe(\r\n success => {\r\n console.log('getHistoryTransactions success', success);\r\n if (Array.isArray(success)) {\r\n this.historyTransactions = success;\r\n this.numDeduction = this.historyTransactions[0].deductions;\r\n }\r\n },\r\n error => {\r\n console.log('getTransactionCust error', error);\r\n }\r\n );\r\n }\r\n\r\n getPendingTransactions(employee: number) {\r\n this.onLoadingPendingTransactions = true;\r\n return this._transaction\r\n .getPendingTransactions(employee)\r\n .pipe(\r\n finalize(() => {\r\n this.onLoadingPendingTransactions = false;\r\n })\r\n )\r\n .subscribe(\r\n success => {\r\n console.log('getPendingTransactions success', success);\r\n if (Array.isArray(success)) {\r\n this.pendingTransactions = success;\r\n }\r\n },\r\n error => {\r\n console.log('getPendingTransactions error', error);\r\n }\r\n );\r\n }\r\n\r\n getDeductionTransactions(employee: number) {\r\n // this.onLoadingDeductionTransactions = true;\r\n // return this._transaction\r\n // .getDeductionTransactios(employee)\r\n // .pipe(finalize(() => {\r\n // this.onLoadingDeductionTransactions = false;\r\n // }))\r\n // .subscribe(success => {\r\n // console.log('getDeductions', success);\r\n // }, error => {\r\n // console.error(error);\r\n // });\r\n }\r\n\r\n getCustomer(employee: number) {\r\n this._customers\r\n .getDetail(employee)\r\n .pipe(\r\n finalize(() => {\r\n this.onLoading = false;\r\n })\r\n )\r\n .subscribe(\r\n success => {\r\n this.getHistoryTransactions(success.data.id);\r\n this.getPendingTransactions(success.data.id);\r\n // this.getDeductionTransactions(success.data.id);\r\n this.customer = success.data;\r\n },\r\n err => {\r\n this._toastr.error(err.message);\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * @description Actualizacion de datos\r\n */\r\n onUpdate(event) {\r\n try {\r\n if (event.save) {\r\n this.modalUpdate.close();\r\n Object.keys(event.data).forEach(key => {\r\n this.customer[key] = event.data[key];\r\n });\r\n }\r\n } catch (error) {\r\n this._toastr.error('An error occurred while loading the data to update', 'fn::onUpdate');\r\n console.error(error);\r\n }\r\n }\r\n\r\n updateDeduction() {\r\n const data = {\r\n 'customer_id': this.customer.id,\r\n 'deductions': this.numDeduction\r\n };\r\n Swal({\r\n // title: 'Are you sure?',\r\n text: 'Are you sure that want to change this value?',\r\n type: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Yes, update it!'\r\n }).then((result) => {\r\n if (result.value) {\r\n this._balanceService.postUpdateDeduction(data)\r\n .pipe(\r\n finalize(() => {\r\n Swal({\r\n position: 'top-end',\r\n type: 'success',\r\n title: 'Has been update',\r\n showConfirmButton: false,\r\n timer: 1500\r\n });\r\n })\r\n )\r\n .subscribe(\r\n resp => {\r\n this.ngOnInit();\r\n console.log(resp);\r\n });\r\n\r\n }\r\n })\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n

Importing, please wait...

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Employee\\r\\n \\r\\n First name\\r\\n \\r\\n Last name\\r\\n \\r\\n Address\\r\\n \\r\\n Apt\\r\\n \\r\\n City\\r\\n \\r\\n State\\r\\n \\r\\n Zip Code\\r\\n \\r\\n Phone\\r\\n \\r\\n Alt Phone\\r\\n \\r\\n Email\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
    \\r\\n
  • \\r\\n {{item}}\\r\\n
  • \\r\\n
\\r\\n
\"","module.exports = \".ui.table {\\n width: 1500px; }\\n .ui.table thead th {\\n padding: 5px; }\\n .ui.table td {\\n padding: 0 2px; }\\n .ui.table td input.input {\\n padding: 2px 0; }\\n .contianer-table {\\n max-width: 100%;\\n display: block; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2N1c3RvbWVycy9jb21wb25lbnRzL2ltcG9ydC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXGFwcFxccHJpdmF0ZVxcbW9kdWxlc1xcY3VzdG9tZXJzXFxjb21wb25lbnRzXFxpbXBvcnRcXGltcG9ydC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQWEsRUFhZDtFQWREO0lBSUksYUFBWSxFQUNiO0VBTEg7SUFRSSxlQUFjLEVBS2Y7RUFiSDtNQVdNLGVBQWMsRUFDZjtFQUlMO0VBQ0UsZ0JBQWU7RUFDZixlQUFjLEVBQ2YiLCJmaWxlIjoic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvY3VzdG9tZXJzL2NvbXBvbmVudHMvaW1wb3J0L2ltcG9ydC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi51aS50YWJsZSB7XHJcbiAgd2lkdGg6IDE1MDBweDtcclxuXHJcbiAgdGhlYWQgdGgge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxuXHJcbiAgdGQge1xyXG4gICAgcGFkZGluZzogMCAycHg7XHJcblxyXG4gICAgaW5wdXQuaW5wdXQge1xyXG4gICAgICBwYWRkaW5nOiAycHggMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jb250aWFuZXItdGFibGUge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuIl19 */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport Swal from 'sweetalert2';\r\n\r\ndeclare const moment: any;\r\n\r\n@Component({\r\n selector: 'app-private-customers-import',\r\n templateUrl: './import.component.html',\r\n styleUrls: ['./import.component.scss']\r\n})\r\nexport class ImportComponent implements OnInit, OnDestroy {\r\n\r\n data: any;\r\n hospitals = [];\r\n wait: boolean;\r\n hospital = '';\r\n selected;\r\n allSubscriptions = [];\r\n\r\n constructor(\r\n private _toastr: ToastrService,\r\n private _customers: CustomersService,\r\n private _hospitals: HospitalsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getHospitals();\r\n }\r\n\r\n /**\r\n * @description Cargar hospitales\r\n */\r\n getHospitals() {\r\n return this._hospitals\r\n .get()\r\n .subscribe(\r\n (success) => {\r\n this.hospitals = success.data;\r\n }, (error) => {\r\n console.error('getHospitals error', error);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n onImportXls(event) {\r\n console.log(event);\r\n // event.json.forEach(element => {\r\n // element.import = true;\r\n // });\r\n this.data = event;\r\n }\r\n\r\n onErrorsImport(data) {\r\n console.log('onErrorsImport', data);\r\n this.data.errors = [];\r\n data.forEach(element => {\r\n element.import = true;\r\n element.success = false;\r\n\r\n this.data.errors.push(element);\r\n });\r\n }\r\n\r\n submit() {\r\n this.wait = true;\r\n this._customers\r\n .import(this.data.json, this.hospital)\r\n .pipe(\r\n finalize(() => {\r\n this.wait = false;\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n console.log('submit success', success);\r\n if (success.data.errors.length) {\r\n this.onErrorsImport(success.data.errors);\r\n } else {\r\n Swal({\r\n title: 'Successful Import',\r\n type: 'success',\r\n confirmButtonColor: '#3085d6 ',\r\n confirmButtonText: 'Close'\r\n });\r\n }\r\n }, (err) => {\r\n console.error('onSubmit error', err);\r\n }\r\n );\r\n\r\n // if (this.hospital) {\r\n // const data = this.data.json.filter((element) => {\r\n // if (element.import === true && !element.success) {\r\n // return element;\r\n // }\r\n // });\r\n\r\n // data.forEach(element => {\r\n // this.send(element);\r\n // });\r\n\r\n // } else {\r\n // this._toastr.warning('You must select a hospital', 'Required');\r\n // }\r\n\r\n }\r\n\r\n send(data, retry?) {\r\n data.send = true;\r\n data.onImport = true;\r\n const subscription = this._customers\r\n .create({\r\n employee_id: data.employee,\r\n name: data.firstname,\r\n last_name: data.lastname,\r\n address: data.striaddressng,\r\n zipcode: data.zipcode,\r\n phone: data.phone,\r\n cell_phone: data.cell_phone,\r\n email: data.email,\r\n hospital: this.hospital,\r\n apt: data.apt,\r\n city: data.city,\r\n state: data.state,\r\n })\r\n .pipe(\r\n finalize(() => {\r\n data.onImport = false;\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n data.success = true;\r\n }, (err) => {\r\n console.error('onSubmit error', err);\r\n data.success = false;\r\n data.errors = err.message;\r\n }\r\n );\r\n\r\n this.allSubscriptions.push(subscription);\r\n }\r\n\r\n viewMesagesError(data) {\r\n this.selected = data;\r\n }\r\n\r\n ngOnDestroy( ): void {\r\n this.allSubscriptions.forEach(sub => {\r\n sub.unsubscribe();\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { CustomersComponent } from './customers.component';\r\nimport { DetailComponent } from './components/detail/detail.component';\r\n\r\nconst routes: Routes = [{\r\n path: 'private',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: 'customers',\r\n component: CustomersComponent\r\n }, {\r\n path: 'customers/detail',\r\n component: DetailComponent\r\n }]\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class CustomersRoutingModule { }\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9jdXN0b21lcnMvY3VzdG9tZXJzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { constant } from 'src/app/app.constants';\r\n\r\n@Component({\r\n selector: 'app-customers',\r\n templateUrl: './customers.component.html',\r\n styleUrls: ['./customers.component.scss']\r\n})\r\nexport class CustomersComponent implements OnInit {\r\n\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onCloseAdd() {\r\n this.router.navigateByUrl(constant.views.home.base);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { NgxMyDatePickerModule } from 'ngx-mydatepicker';\r\n\r\nimport { CustomersRoutingModule } from './customers-routing.module';\r\nimport { CreateComponent } from './components/create/create.component';\r\nimport { CustomersComponent } from './customers.component';\r\nimport { ValidatorsViewErrorsModule } from 'src/app/directives/validators-view-errors/validators-view-errors.module';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { ProgressBarModule } from 'src/app/utils/progress-bar/progress-bar.module';\r\nimport { DetailComponent } from './components/detail/detail.component';\r\nimport { CardModule } from 'src/app/utils/card/card.module';\r\nimport { ToImportModule } from 'src/app/utils/to-import/to-import.module';\r\nimport { ImportComponent } from './components/import/import.component';\r\n\r\n@NgModule({\r\n declarations: [CreateComponent, CustomersComponent, DetailComponent, ImportComponent],\r\n imports: [\r\n CommonModule,\r\n CustomersRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMyDatePickerModule.forRoot(),\r\n ValidatorsViewErrorsModule,\r\n ProgressBarModule,\r\n CardModule,\r\n ToImportModule\r\n ],\r\n exports: [CreateComponent, CustomersComponent, DetailComponent, ImportComponent],\r\n providers: [\r\n CustomersService\r\n ]\r\n})\r\nexport class CustomersModule { }\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9kYXRhLXByb2Nlc3NpbmcvY29tcG9uZW50cy9leHBvcnRzL2V4cG9ydHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TransactionService } from 'src/app/services/transactions/transaction.service';\r\n\r\n@Component({\r\n selector: 'app-private-data-processins-exports',\r\n templateUrl: './exports.component.html',\r\n styleUrls: ['./exports.component.scss']\r\n})\r\nexport class ExportsComponent implements OnInit {\r\n\r\n hospital = '';\r\n hospitals = [];\r\n\r\n constructor(\r\n private _toastr: ToastrService,\r\n private _hospitals: HospitalsService,\r\n private _transactions: TransactionService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getHospitals();\r\n }\r\n\r\n /**\r\n * @description Cargar hospitales\r\n */\r\n getHospitals() {\r\n return this._hospitals\r\n .get()\r\n .subscribe(\r\n (success) => {\r\n this.hospitals = success.data;\r\n }, (error) => {\r\n console.error('getHospitals error', error);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * @description Cargar hospitales\r\n */\r\n export() {\r\n return this._transactions\r\n .exportBalances(this.hospital)\r\n .subscribe(\r\n (success) => {\r\n console.log('export success', success );\r\n\r\n const downloadUrl = URL.createObjectURL(success);\r\n const a = document.createElement('a');\r\n a.href = downloadUrl;\r\n a.download = 'file.csv';\r\n document.body.appendChild(a);\r\n a.click();\r\n\r\n }, (error) => {\r\n console.error('export error', error);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n Customers\\r\\n Deductions\\r\\n Purchases\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{val}}\\r\\n \\r\\n Status\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{val[key]}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9kYXRhLXByb2Nlc3NpbmcvY29tcG9uZW50cy9pbXBvcnRzL2ltcG9ydHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { TransactionService } from 'src/app/services/transactions/transaction.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-private-imports',\r\n templateUrl: './imports.component.html',\r\n styleUrls: ['./imports.component.scss']\r\n})\r\nexport class ImportsComponent implements OnInit {\r\n tab = 'Customers';\r\n data: any;\r\n\r\n constructor(\r\n private _transactions: TransactionService,\r\n private _toastr: ToastrService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onImportXls(event) {\r\n event.json.forEach(element => {\r\n element.import = true;\r\n });\r\n this.data = event;\r\n console.log('onImportXls', this.data);\r\n }\r\n\r\n submit() {\r\n this.data.json.filter((element) => {\r\n if (element.import === true) {\r\n this.send(element);\r\n }\r\n });\r\n }\r\n\r\n send(data: any, retry?: boolean) {\r\n data.send = true;\r\n data.onImport = true;\r\n\r\n this.\r\n _transactions\r\n .importDeductions([{\r\n amount: data.cur_dedn,\r\n employeeId: data.employee_no,\r\n }])\r\n .pipe(\r\n finalize(() => {\r\n data.onImport = false;\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n console.log('success', success);\r\n if (success) {\r\n if (success[0]) {\r\n data.success = success[0].success;\r\n }\r\n }\r\n },\r\n (error) => {\r\n this._toastr.error(error.message);\r\n data.success = false;\r\n });\r\n\r\n // setTimeout(() => {\r\n // data.onImport = false;\r\n // data.success = retry ? true : Math.random() >= 0.5;\r\n // }, 1500 );\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n Balance\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Export Excel\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n

Tab 2

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"ag-grid-angular.report {\\n /*min-height: 100px;\\r\\n max-height: 600px;*/\\n height: 50vh;\\n display: block; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2RhdGEtcHJvY2Vzc2luZy9jb21wb25lbnRzL3JlcG9ydC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXGFwcFxccHJpdmF0ZVxcbW9kdWxlc1xcZGF0YS1wcm9jZXNzaW5nXFxjb21wb25lbnRzXFxyZXBvcnRcXHJlcG9ydC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO3NCQUNvQjtFQUNwQixhQUFZO0VBQ1osZUFBYyxFQUNmIiwiZmlsZSI6InNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2RhdGEtcHJvY2Vzc2luZy9jb21wb25lbnRzL3JlcG9ydC9yZXBvcnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJhZy1ncmlkLWFuZ3VsYXIucmVwb3J0IHtcclxuICAvKm1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIG1heC1oZWlnaHQ6IDYwMHB4OyovXHJcbiAgaGVpZ2h0OiA1MHZoO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport {GridOptions} from 'ag-grid-community';\r\nimport { BalanceService } from 'src/app/services/balance/balance.service';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\n@Component({\r\n selector: 'app-report',\r\n templateUrl: './report.component.html',\r\n styleUrls: ['./report.component.scss']\r\n})\r\nexport class ReportComponent implements OnInit {\r\n\r\n protected id = 123;\r\n protected tab = 1;\r\n protected grid: GridOptions;\r\n protected selectHospitals = [];\r\n protected idHospital = '';\r\n private iHosp: number;\r\n private activateBtn = false;\r\n\r\n\r\n\r\n constructor(\r\n private _servicesBalance: BalanceService,\r\n private _servicesHospitals: HospitalsService\r\n ) {\r\n this.grid = {};\r\n this.columnDefs();\r\n const self = this;\r\n this.grid.onGridReady = () => {\r\n self.grid.api.sizeColumnsToFit();\r\n self.grid.api.setRowData([]);\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n // this.setData();\r\n this.getHospitals();\r\n\r\n }\r\n\r\n setData() {\r\n if (this.idHospital) {\r\n return this._servicesBalance.get(this.idHospital).subscribe(resp => {\r\n this.activateBtn = true;\r\n this.grid.api.setRowData(resp.data);\r\n });\r\n }\r\n Swal({\r\n type: 'error',\r\n title: 'Oops...',\r\n text: 'Something went wrong!',\r\n footer: 'Why do I have this issue?'\r\n });\r\n // alert('no hay id');\r\n }\r\n\r\n getHospitals() {\r\n return this._servicesHospitals\r\n .get()\r\n .subscribe(\r\n (success) => {\r\n console.log('selech', success);\r\n this.selectHospitals = success.data;\r\n }\r\n );\r\n }\r\n\r\n columnDefs() {\r\n this.grid.columnDefs = [\r\n {\r\n headerName: 'Hosp',\r\n field: 'short_name',\r\n width: 250\r\n },\r\n {\r\n headerName: 'Empl ID',\r\n field: 'employee_id',\r\n width: 250\r\n },\r\n {\r\n headerName: 'Last Name',\r\n field: 'last_name',\r\n width: 250\r\n },\r\n {\r\n headerName: 'First Name',\r\n field: 'name',\r\n width: 250\r\n },\r\n {\r\n headerName: 'Current Goal',\r\n field: 'balance',\r\n width: 250\r\n },\r\n {\r\n headerName: 'Amt To Deduct',\r\n field: 'amountDeduction',\r\n width: 250\r\n },\r\n {\r\n headerName: 'Deductions Nbr',\r\n field: 'deductions',\r\n width: 250\r\n },\r\n {\r\n headerName: 'New Goal',\r\n field: 'newGoal',\r\n width: 250\r\n },\r\n {\r\n headerName: 'New Deductions Nbr',\r\n field: 'newdeduct',\r\n width: 250\r\n },\r\n ];\r\n }\r\n\r\n exportExcel() {\r\n this.grid.api.selectAll();\r\n this.grid.api.exportDataAsExcel(this.paramsToExport_PR());\r\n this.grid.api.deselectAll();\r\n }\r\n\r\n private paramsToExport_PR() {\r\n this.selectHospitals.map((f, i) => {\r\n if (f.id == this.idHospital) {\r\n this.iHosp = i;\r\n }\r\n });\r\n console.log(this.iHosp);\r\n console.log(this.selectHospitals);\r\n return {\r\n skipHeader: false,\r\n columnGroups: true,\r\n skipFooters: true,\r\n skipGroups: false,\r\n allColumns: true,\r\n onlySelected: true,\r\n fileName: 'Balance-' + this.selectHospitals[this.iHosp].short_name\r\n };\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { ImportsComponent } from './components/imports/imports.component';\r\nimport { ExportsComponent } from './components/exports/exports.component';\r\nimport {ReportComponent} from './components/report/report.component';\r\n\r\nconst routes: Routes = [{\r\n path: 'private/data-processing',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: 'imports',\r\n component: ImportsComponent\r\n }, {\r\n path: 'exports',\r\n component: ExportsComponent\r\n }, {\r\n path: 'report',\r\n component: ReportComponent\r\n }]\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class DataProcessingRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DataProcessingRoutingModule } from './data-processing-routing.module';\r\nimport { ImportsComponent } from './components/imports/imports.component';\r\nimport { ToImportModule } from 'src/app/utils/to-import/to-import.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ProgressBarModule } from 'src/app/utils/progress-bar/progress-bar.module';\r\nimport { CustomersModule } from '../customers/customers.module';\r\nimport { TransactionService } from 'src/app/services/transactions/transaction.service';\r\nimport { ExportsComponent } from './components/exports/exports.component';\r\nimport { ReportComponent } from './components/report/report.component';\r\nimport {AgGridModule} from 'ag-grid-angular';\r\nimport {PurchasesModule} from '../purchases/purchases.module';\r\n\r\n@NgModule({\r\n declarations: [ImportsComponent, ExportsComponent, ReportComponent],\r\n imports: [\r\n CommonModule,\r\n DataProcessingRoutingModule,\r\n ToImportModule,\r\n FormsModule,\r\n ProgressBarModule,\r\n CustomersModule,\r\n AgGridModule,\r\n PurchasesModule\r\n ],\r\n providers: [TransactionService]\r\n})\r\nexport class DataProcessingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './home.component';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { DetailComponent } from '../customers/components/detail/detail.component';\r\n\r\nconst routes: Routes = [{\r\n path: 'private',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: 'home',\r\n component: HomeComponent\r\n }, {\r\n path: 'home/:employee_id',\r\n component: DetailComponent\r\n }]\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class HomeRoutingModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.conatiner-body > .container-row {\\n border-bottom: 1px solid rgba(132, 68, 68, 0.3);\\n padding: 5px 0; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvbWUvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfZm9udHMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvbWUvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfY29sb3JzLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9ob21lL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX2Z1bmN0aW9ucy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvaG9tZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvbWUvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfYW5pbWF0aW9ucy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvaG9tZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXGFwcFxccHJpdmF0ZVxcbW9kdWxlc1xcaG9tZVxcaG9tZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEVBQVk7QUNBWixpQkFBaUI7QUNFakI7Ozs7b0JBSW9CO0FBR25CLHlCQUF5QjtBQUV6Qix5QkFBeUI7QUFFekIsa0JBQWtCO0FBRW5CLG9CQUFvQjtBQUVwQixvQkFBb0I7QUFFcEIsa0JBQWtCO0FBRWxCLGlCQUFpQjtBQUVqQixvQkFBb0I7QUFFcEIsb0JBQW9CO0FBRXBCLG1CQUFtQjtBQUVuQixrQkFBa0I7QUFFbEIsa0JBQWtCO0FBRWxCLG1CQUFtQjtBQUVuQixrQkFBa0I7QUFFbEIsc0JBQXNCO0FBRXRCLHlCQUF5QjtBQUV6Qix1QkFBdUI7QUFFdkIsbUJBQW1CO0FBR25CLDZCQUE2QjtBQWU3Qjs7Ozs7R0FLRztBQUdIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFHSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFHSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBV0g7O0VBRUU7QUZoTUY7RUFDRSx5QkFBd0I7RUFDeEIsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQiw4REFBd0YsRUFBQTtBQUcxRjtFQUNFLGlDQUFnQztFQUNoQyxtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLDhFQUF3RyxFQUFBO0FBRzFHO0VBQ0UsOEJBQTZCO0VBQzdCLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsbUVBQTZGLEVBQUE7QUFHL0Y7RUFDRSxzQ0FBcUM7RUFDckMsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQix1RkFBaUgsRUFBQTtBQUduSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQVFIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FHOUdIOzs7Ozs7R0FNRztBQ1BIOzs7Ozs7Ozs7O0dBVUc7QUFXSDs7Ozs7Ozs7OztHQVVHO0FBZUg7Ozs7Ozs7Ozs7R0FVRztBQWdCSDs7Ozs7Ozs7OztHQVVHO0FBZUg7Ozs7Ozs7Ozs7R0FVRztBQWVIOzs7Ozs7Ozs7O0dBVUc7QUE0Qkg7Ozs7Ozs7Ozs7R0FVRztBQTZESDs7Ozs7Ozs7OztHQVVHO0FBcUNIOzs7Ozs7Ozs7R0FTRztBQWVIOzs7Ozs7OztHQVFHO0FBZUg7Ozs7Ozs7O0dBUUc7QUFVSDs7Ozs7OztHQU9HO0FBTUg7Ozs7Ozs7OztHQVNHO0FBK0JIOzs7Ozs7Ozs7R0FTRztBQW9CSDs7Ozs7Ozs7R0FRRztBQ2piSDs7Ozs7Ozs7R0FRRztBQUNIO0VBQ0UsMkNBQWlDO1VBQWpDLG1DQUFpQztFQUNqQyxnQ0FBdUI7VUFBdkIsd0JBQXVCO0VBQ3ZCLDRDQUFtQztVQUFuQyxvQ0FBbUM7RUFDbkMsdUNBQThCO1VBQTlCLCtCQUE4QjtFQUM5QiwrQ0FBc0M7VUFBdEMsdUNBQXNDLEVBVXZDO0FBUkM7RUFDRTtJQUNFLFNBQU8sRUFBQTtFQUVUO0lBQ0UsU0FBTyxFQUFBLEVBQUE7QUFMWDtFQUNFO0lBQ0UsU0FBTyxFQUFBO0VBRVQ7SUFDRSxTQUFPLEVBQUEsRUFBQTtBQUtiOzs7Ozs7OztHQVFHO0FBQ0g7RUFDRSwyQ0FBa0M7VUFBbEMsbUNBQWtDO0VBQ2xDLCtCQUFzQjtVQUF0Qix1QkFBc0I7RUFDdEIsMENBQWlDO1VBQWpDLGtDQUFpQztFQUNqQyw0Q0FBbUM7VUFBbkMsb0NBQW1DLEVBT3BDO0FBTEM7RUFDRTtJQUFLLFdBQVUsRUFBQTtFQUNmO0lBQU0sWUFBVyxFQUFBO0VBQ2pCO0lBQU8sV0FBVSxFQUFBLEVBQUE7QUFIbkI7RUFDRTtJQUFLLFdBQVUsRUFBQTtFQUNmO0lBQU0sWUFBVyxFQUFBO0VBQ2pCO0lBQU8sV0FBVSxFQUFBLEVBQUE7QUMxQ3JCO0VBRUksZ0RKaURlO0VJaERmLGVBQWMsRUFDZiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMCcpO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYSBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBmb250LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1kZWZhdWx0XHJcbiAqL1xyXG4kZm9udC1kZWZhdWx0OiAnSGVsdmV0aWNhJywgJ1JvYm90bycsICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtc2Vjb25kYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2Vjb25kYXJ5XHJcbiAqL1xyXG4kZm9udC1zZWNvbmRhcnk6ICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtYXJpYWxcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1hcmlhbFxyXG4gKi9cclxuJGZvbnQtYXJpYWw6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbi8qKlxyXG4gKiBmb250LXJvYm90b1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJvYm90b1xyXG4gKi9cclxuJGZvbnQtcm9ib3RvOiAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnO1xyXG5cclxuXHJcbiRmb250LWhlbHZldGljYS1vYmxpcXVlOiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZDogJ0hlbHZldGljYSBCb2xkJztcclxuJGZvbnQtaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZTogJ0hlbHZldGljYSBCb2xkIE9ibGlxdWUnO1xyXG5cclxuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXHJcbiRmb250LXRoaW46IDEwMDtcclxuLyoqXHJcbiAqIGZvbnQtbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1saWdodFxyXG4gKi9cclxuJGZvbnQtbGlnaHQ6IDMwMDtcclxuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXHJcbiRmb250LXJlZ3VsYXI6IDQwMDtcclxuLyoqXHJcbiAqIGZvbnQtbWVkaXVtXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbWVkaXVtXHJcbiAqL1xyXG4kZm9udC1tZWRpdW06IDUwMDtcclxuLyoqXHJcbiAqIGZvbnQtc2VtaS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2VtaS1ib2xkXHJcbiAqL1xyXG4kZm9udC1zZW1pLWJvbGQ6IDYwMDtcclxuLyoqXHJcbiAqIGZvbnQtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWJvbGRcclxuICovXHJcbiRmb250LWJvbGQ6IDcwMDtcclxuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXHJcbiRmb250LXVsdHJhLWJvbGQ6IDkwMDtcclxuXHJcbiRmb250czogKFxyXG4gICdkZWZhdWx0JzogJGZvbnQtZGVmYXVsdCxcclxuICAnc2Vjb25kYXJ5JzogJGZvbnQtc2Vjb25kYXJ5LFxyXG4gICdhcmlhbCc6ICRmb250LWFyaWFsLFxyXG4gICdyb2JvdG8nOiAkZm9udC1yb2JvdG8sXHJcbiAgJ2hlbHZldGljYS1vYmxpcXVlJzogJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWUsXHJcbiAgJ2hlbHZldGljYS1ib2xkJzogJGZvbnQtaGVsdmV0aWNhLWJvbGQsXHJcbiAgJ2hlbHZldGljYS1ib2xkLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlLFxyXG4pO1xyXG5cclxuXHJcblxyXG4kZm9udHMtd2VpZ2h0czogKFxyXG4gJ3RoaW4nOiAkZm9udC10aGluLFxyXG4gJ2xpZ2h0JzogJGZvbnQtbGlnaHQsXHJcbiAncmVndWxhcic6ICRmb250LXJlZ3VsYXIsXHJcbiAnbWVkaXVtJzogJGZvbnQtbWVkaXVtLFxyXG4gJ3NlbWktYm9sZCc6ICRmb250LXNlbWktYm9sZCxcclxuICdib2xkJzogJGZvbnQtYm9sZCxcclxuICd1bHRyYS1ib2xkJzogJGZvbnQtdWx0cmEtYm9sZCxcclxuKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXG4vKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXG4vKiogQGNvbG9yIHRyYW5zcGFyZW50ICovXG4vKiogQGNvbG9yIGJsdWUgKi9cbi8qKiBAY29sb3IgaW5kaWdvICovXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xuLyoqIEBjb2xvciBwaW5rICovXG4vKiogQGNvbG9yIHJlZCAqL1xuLyoqIEBjb2xvciBvcmFuZ2UgKi9cbi8qKiBAY29sb3IgeWVsbG93ICovXG4vKiogQGNvbG9yIGdyZWVuICovXG4vKiogQGNvbG9yIHRlYWwgKi9cbi8qKiBAY29sb3IgY3lhbiAqL1xuLyoqIEBjb2xvciB3aGl0ZSAqL1xuLyoqIEBjb2xvciBncmF5ICovXG4vKiogQGNvbG9yIGdyYXktbG93ICovXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xuLyoqIEBjb2xvciBsaWdodCAqL1xuLyoqIEBjb2xvciBjb2xvci1zZWN1bmRhcnkgKi9cbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXN1Y2Nlc3MgZXMgdXRpbGl6YWRvIGVuIGV2ZW50b3Mgc2F0aXNmYWN0b3Jpb3NcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXN1Y2Nlc3NcclxuICovXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheS1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5LWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTJcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtMlxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTNcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtM1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXG4vKipcclxuYXJyYXkgb2YgY29sb3JzXHJcbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw3MDBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2EgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBCb2xkIE9ibGlxdWVcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXVsdHJhLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC11bHRyYS1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtcGVyY2VudCgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHZoXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXZpZXdwb3J0KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cbi5yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfcmVib3VuZC1hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIF9yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0b3A6IDBweDsgfVxuICAxMDAlIHtcbiAgICB0b3A6IDVweDsgfSB9XG5cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXG4uZmxpY2tlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBfZmxpY2tlci1hbWltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uY29uYXRpbmVyLWJvZHkgPiAuY29udGFpbmVyLXJvdyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDEzMiwgNjgsIDY4LCAwLjMpO1xuICBwYWRkaW5nOiA1cHggMDsgfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4uY29uYXRpbmVyLWJvZHkge1xyXG4gID4gLmNvbnRhaW5lci1yb3cge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJGJyb3duLWFwcCwgLjMpO1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgfVxyXG59Il19 */\"","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { FilterPipe } from 'ngx-filter-pipe';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\ndeclare const faker: any;\r\n\r\n@Component({\r\n selector: 'app-private-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit, AfterViewInit {\r\n\r\n public search: string;\r\n public users = [];\r\n\r\n wait: boolean;\r\n\r\n constructor(\r\n private filterPipe: FilterPipe,\r\n protected _customers: CustomersService,\r\n private _toastr: ToastrService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.getAllCustomers();\r\n }\r\n\r\n getAllCustomers() {\r\n this.wait = true;\r\n return this._customers\r\n .get()\r\n .pipe(\r\n finalize(() => {\r\n this.wait = false;\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n console.log(success);\r\n this.users = success.data;\r\n }, (error) => {\r\n console.log('getAllCustomers error', error);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n // for (let i = 1; i <= 100; i++) {\r\n // const randomCard = faker.helpers.userCard(); // userCard con muchas propiedades\r\n // randomCard.id = faker.random.number();\r\n // this.users.push(randomCard);\r\n // }\r\n }\r\n\r\n filter() {\r\n if (this.search.length >= 3) {\r\n if (this.search === '*.*') {\r\n return this.users;\r\n }\r\n return this.filterPipe.transform(this.users, {\r\n $or: [\r\n { name: this.search },\r\n { id: this.search },\r\n { last_name: this.search },\r\n { employee_id: this.search }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { FilterPipeModule } from 'ngx-filter-pipe';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\n\r\nimport { HomeRoutingModule } from './home-routing.module';\r\nimport { HomeComponent } from './home.component';\r\nimport { ProgressBarModule } from 'src/app/utils/progress-bar/progress-bar.module';\r\nimport { OrderModule } from 'ngx-order-pipe';\r\nimport { DropDowndsModule } from 'src/app/utils/drop-downds/drop-downds.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HomeRoutingModule,\r\n FormsModule,\r\n FilterPipeModule,\r\n ProgressBarModule,\r\n OrderModule,\r\n DropDowndsModule,\r\n NgxPaginationModule\r\n ],\r\n declarations: [HomeComponent]\r\n})\r\nexport class HomeModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.form-customer-create {\\n box-shadow: -2px 2px 7px 0px rgba(0, 0, 0, 0.29); }\\n.form-customer-create input.ng-invalid, .form-customer-create select.ng-invalid {\\n border-left-color: #dc3545;\\n border-left-width: 2px; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvc3BpdGFscy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvaG9zcGl0YWxzL2NvbXBvbmVudHMvY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvc3BpdGFscy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9jb2xvcnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvc3BpdGFscy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvc3BpdGFscy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL2hvc3BpdGFscy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9hbmltYXRpb25zLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9ob3NwaXRhbHMvY29tcG9uZW50cy9jcmVhdGUvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxhcHBcXHByaXZhdGVcXG1vZHVsZXNcXGhvc3BpdGFsc1xcY29tcG9uZW50c1xcY3JlYXRlXFxjcmVhdGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBFQUFZO0FDQVosaUJBQWlCO0FDRWpCOzs7O29CQUlvQjtBQUduQix5QkFBeUI7QUFFekIseUJBQXlC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dGFscy9jb21wb25lbnRzL2NyZWF0ZS9jcmVhdGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMCcpO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYSBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBmb250LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1kZWZhdWx0XHJcbiAqL1xyXG4kZm9udC1kZWZhdWx0OiAnSGVsdmV0aWNhJywgJ1JvYm90bycsICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtc2Vjb25kYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2Vjb25kYXJ5XHJcbiAqL1xyXG4kZm9udC1zZWNvbmRhcnk6ICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtYXJpYWxcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1hcmlhbFxyXG4gKi9cclxuJGZvbnQtYXJpYWw6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbi8qKlxyXG4gKiBmb250LXJvYm90b1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJvYm90b1xyXG4gKi9cclxuJGZvbnQtcm9ib3RvOiAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnO1xyXG5cclxuXHJcbiRmb250LWhlbHZldGljYS1vYmxpcXVlOiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZDogJ0hlbHZldGljYSBCb2xkJztcclxuJGZvbnQtaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZTogJ0hlbHZldGljYSBCb2xkIE9ibGlxdWUnO1xyXG5cclxuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXHJcbiRmb250LXRoaW46IDEwMDtcclxuLyoqXHJcbiAqIGZvbnQtbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1saWdodFxyXG4gKi9cclxuJGZvbnQtbGlnaHQ6IDMwMDtcclxuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXHJcbiRmb250LXJlZ3VsYXI6IDQwMDtcclxuLyoqXHJcbiAqIGZvbnQtbWVkaXVtXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbWVkaXVtXHJcbiAqL1xyXG4kZm9udC1tZWRpdW06IDUwMDtcclxuLyoqXHJcbiAqIGZvbnQtc2VtaS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2VtaS1ib2xkXHJcbiAqL1xyXG4kZm9udC1zZW1pLWJvbGQ6IDYwMDtcclxuLyoqXHJcbiAqIGZvbnQtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWJvbGRcclxuICovXHJcbiRmb250LWJvbGQ6IDcwMDtcclxuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXHJcbiRmb250LXVsdHJhLWJvbGQ6IDkwMDtcclxuXHJcbiRmb250czogKFxyXG4gICdkZWZhdWx0JzogJGZvbnQtZGVmYXVsdCxcclxuICAnc2Vjb25kYXJ5JzogJGZvbnQtc2Vjb25kYXJ5LFxyXG4gICdhcmlhbCc6ICRmb250LWFyaWFsLFxyXG4gICdyb2JvdG8nOiAkZm9udC1yb2JvdG8sXHJcbiAgJ2hlbHZldGljYS1vYmxpcXVlJzogJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWUsXHJcbiAgJ2hlbHZldGljYS1ib2xkJzogJGZvbnQtaGVsdmV0aWNhLWJvbGQsXHJcbiAgJ2hlbHZldGljYS1ib2xkLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlLFxyXG4pO1xyXG5cclxuXHJcblxyXG4kZm9udHMtd2VpZ2h0czogKFxyXG4gJ3RoaW4nOiAkZm9udC10aGluLFxyXG4gJ2xpZ2h0JzogJGZvbnQtbGlnaHQsXHJcbiAncmVndWxhcic6ICRmb250LXJlZ3VsYXIsXHJcbiAnbWVkaXVtJzogJGZvbnQtbWVkaXVtLFxyXG4gJ3NlbWktYm9sZCc6ICRmb250LXNlbWktYm9sZCxcclxuICdib2xkJzogJGZvbnQtYm9sZCxcclxuICd1bHRyYS1ib2xkJzogJGZvbnQtdWx0cmEtYm9sZCxcclxuKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXG4vKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXG4vKiogQGNvbG9yIHRyYW5zcGFyZW50ICovXG4vKiogQGNvbG9yIGJsdWUgKi9cbi8qKiBAY29sb3IgaW5kaWdvICovXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xuLyoqIEBjb2xvciBwaW5rICovXG4vKiogQGNvbG9yIHJlZCAqL1xuLyoqIEBjb2xvciBvcmFuZ2UgKi9cbi8qKiBAY29sb3IgeWVsbG93ICovXG4vKiogQGNvbG9yIGdyZWVuICovXG4vKiogQGNvbG9yIHRlYWwgKi9cbi8qKiBAY29sb3IgY3lhbiAqL1xuLyoqIEBjb2xvciB3aGl0ZSAqL1xuLyoqIEBjb2xvciBncmF5ICovXG4vKiogQGNvbG9yIGdyYXktbG93ICovXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xuLyoqIEBjb2xvciBsaWdodCAqL1xuLyoqIEBjb2xvciBjb2xvci1zZWN1bmRhcnkgKi9cbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXN1Y2Nlc3MgZXMgdXRpbGl6YWRvIGVuIGV2ZW50b3Mgc2F0aXNmYWN0b3Jpb3NcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXN1Y2Nlc3NcclxuICovXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheS1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5LWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTJcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtMlxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTNcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtM1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXG4vKipcclxuYXJyYXkgb2YgY29sb3JzXHJcbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw3MDBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2EgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBCb2xkIE9ibGlxdWVcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXVsdHJhLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC11bHRyYS1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtcGVyY2VudCgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHZoXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXZpZXdwb3J0KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cbi5yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfcmVib3VuZC1hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIF9yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0b3A6IDBweDsgfVxuICAxMDAlIHtcbiAgICB0b3A6IDVweDsgfSB9XG5cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXG4uZmxpY2tlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBfZmxpY2tlci1hbWltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4uZm9ybS1jdXN0b21lci1jcmVhdGUge1xuICBib3gtc2hhZG93OiAtMnB4IDJweCA3cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yOSk7IH1cbiAgLmZvcm0tY3VzdG9tZXItY3JlYXRlIGlucHV0Lm5nLWludmFsaWQsIC5mb3JtLWN1c3RvbWVyLWNyZWF0ZSBzZWxlY3QubmctaW52YWxpZCB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNkYzM1NDU7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDsgfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4uZm9ybS1jdXN0b21lci1jcmVhdGUge1xyXG4gICAgYm94LXNoYWRvdzogLTJweCAycHggN3B4IDBweCByZ2JhKDAsMCwwLDAuMjkpO1xyXG5cclxuICAgIGlucHV0Lm5nLWludmFsaWQsIHNlbGVjdC5uZy1pbnZhbGlkIHtcclxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvci1kYW5nZXI7XHJcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAycHg7XHJcbiAgICB9XHJcbiAgfSJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, } from '@angular/forms';\r\nimport { CustomValidators } from 'src/app/utils/custom-validators';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Hospital } from './hospital';\r\nimport Swal from 'sweetalert2';\r\nimport {swalDefaultsProvider} from '@toverux/ngx-sweetalert2/di';\r\n\r\n\r\n@Component({\r\n selector: 'app-private-hospitals-create',\r\n templateUrl: './create.component.html',\r\n styleUrls: ['./create.component.scss']\r\n})\r\nexport class CreateComponent implements OnInit, OnChanges {\r\n\r\n @Input() cliHospital: Hospital;\r\n @Output() onsave: EventEmitter < any > = new EventEmitter();\r\n @Output() closeEmitter: EventEmitter < boolean > = new EventEmitter < boolean > ();\r\n\r\n public form: FormGroup;\r\n isupDate: boolean; /*Variable para establecer metodo segun los cambios en el onSubmit*/\r\n current: number; /*Variable para el id a utilizar en el upDate */\r\n action: boolean; /*Variable para destruir la modal */\r\n\r\n\r\n constructor(\r\n private _hospitals: HospitalsService,\r\n private fr: FormBuilder,\r\n private _toastH: ToastrService\r\n ) {\r\n this.builderForm();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n builderForm() {\r\n this.form = this.fr.group({\r\n active: [''],\r\n name: ['', [CustomValidators.required]],\r\n short_name: ['', [CustomValidators.required]],\r\n speed_code: ['', [CustomValidators.required]],\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.isupDate = false; /*se le da el valor false cuando se activa ngOnChanges*/\r\n this.form.reset();\r\n this.current = undefined;\r\n if (changes['cliHospital']) {\r\n if (changes['cliHospital'].currentValue) {\r\n this.isupDate = true; /*se le da el valor true cuando hay canvios en cliHospital*/\r\n this.current = changes['cliHospital'].currentValue.id;\r\n\r\n this.form.setValue({\r\n name: changes['cliHospital'].currentValue.name,\r\n short_name: changes['cliHospital'].currentValue.short_name,\r\n speed_code: changes['cliHospital'].currentValue.speed_code,\r\n active: changes['cliHospital'].currentValue.active\r\n });\r\n }\r\n }\r\n }\r\n\r\n onSubmit(value) {\r\n\r\n console.log(this.form);\r\n if (this.isupDate === false) {\r\n value.active = true;\r\n this._hospitals.create(value).subscribe(\r\n (successFull) => {\r\n Swal({\r\n position: 'top-end',\r\n type: 'success',\r\n title: 'Your work has been saved',\r\n showConfirmButton: false,\r\n timer: 1500\r\n });\r\n this.form.reset();\r\n this.onsave.emit(true);\r\n },\r\n (error) => {\r\n console.log('Submit', error);\r\n Swal({\r\n type: 'error',\r\n title: 'Oops...',\r\n text: (error.message)\r\n });\r\n });\r\n }\r\n\r\n if (this.isupDate === true) {\r\n this._hospitals.update(value, this.current).subscribe(\r\n (successFull) => {\r\n console.log(successFull);\r\n Swal({\r\n position: 'center',\r\n type: 'success',\r\n title: 'The hospital has been updated',\r\n showConfirmButton: false,\r\n timer: 1500\r\n });\r\n this.onsave.emit(true);\r\n this.closeEmitter.emit(false);\r\n },\r\n (error) => {\r\n Swal('Update', error);\r\n this._toastH.error('error ');\r\n });\r\n }\r\n }\r\n\r\n clickOnClose() {\r\n this.closeEmitter.emit(false);\r\n }\r\n}\r\n","export class Hospital {\r\n\r\n\r\n id: any;\r\n user_id: any;\r\n name: any;\r\n short_name: any;\r\n speed_code: any;\r\n active: any;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","module.exports = \"

\\r\\n update works!\\r\\n

\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9ob3NwaXRhbHMvY29tcG9uZW50cy91cGRhdGUvdXBkYXRlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-update',\r\n templateUrl: './update.component.html',\r\n styleUrls: ['./update.component.scss']\r\n})\r\nexport class UpdateComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { HospitalsComponent } from './hospitals.component';\r\n\r\nconst routes: Routes = [{\r\n path: 'private/hospitals',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: '',\r\n component: HospitalsComponent\r\n }]\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class HospitalsRoutingModule { }\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n

List of Hospitals

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
IdNameShort NameSpeed CodeActiveEdit
{{ohp.id}}{{ohp.name}}{{ohp.short_name}}{{ohp.speed_code}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Add Hospital\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9ob3NwaXRhbHMvaG9zcGl0YWxzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, } from '@angular/core';\r\nimport { Hospital } from './components/create/hospital';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-hospitals',\r\n templateUrl: './hospitals.component.html',\r\n styleUrls: ['./hospitals.component.scss']\r\n})\r\nexport class HospitalsComponent implements OnInit {\r\n\r\n hp = [];\r\n cliHp: Hospital;\r\n\r\n constructor(\r\n private _hospitals: HospitalsService,\r\n private _toast: ToastrService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.getHospitals();\r\n }\r\n\r\n getHospitals() {\r\n\r\n this._hospitals.get().subscribe(\r\n (successfull) => {\r\n console.log('get Hospital', successfull);\r\n this.hp = successfull.data;\r\n },\r\n (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n cliHospital(ohp: Hospital): void {\r\n this.cliHp = ohp;\r\n }\r\n\r\n deleteHospital(hospital) {\r\n this._hospitals\r\n .delete(hospital.id)\r\n .subscribe(\r\n (successfull) => {\r\n console.log('deleteHospital', successfull);\r\n Swal({\r\n position: 'center',\r\n type: 'success',\r\n title: 'Success!',\r\n showConfirmButton: false,\r\n timer: 1500\r\n });\r\n this.hp.splice(this.hp.indexOf(hospital), 1);\r\n this.getHospitals();\r\n },\r\n (error) => {\r\n Swal({\r\n type: 'error',\r\n title: 'Oops...',\r\n text: (error.message),\r\n });\r\n console.log('deleteHospital', error);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { HospitalsRoutingModule } from './hospitals-routing.module';\r\nimport { HospitalsComponent } from './hospitals.component';\r\nimport { CreateComponent } from './components/create/create.component';\r\nimport { UpdateComponent } from './components/update/update.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HospitalsService } from 'src/app/services/hospitals/hospitals.service';\r\nimport { CardModule } from 'src/app/utils/card/card.module';\r\nimport { SweetAlert2Module } from '@toverux/ngx-sweetalert2';\r\nimport { FilterPipeModule } from 'ngx-filter-pipe';\r\n\r\n@NgModule({\r\n declarations: [HospitalsComponent, CreateComponent, UpdateComponent],\r\n imports: [\r\n CommonModule,\r\n HospitalsRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CardModule,\r\n SweetAlert2Module,\r\n FilterPipeModule\r\n ],\r\n providers: [\r\n HospitalsService\r\n ]\r\n})\r\nexport class HospitalsModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SEQEmployee IDAmountDate of SaleReceiptStatusAction
{{getIndex(item)}}{{item.employee_id}}{{item.amount | currency:'$ '}}{{item?.dateOfService?.formatted}}{{item?.receipt}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Add\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Update\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Save\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\ninput.error, input.ng-invalid, select.error, select.ng-invalid {\\n background-color: rgba(255, 93, 85, 0.1);\\n border-color: rgba(255, 93, 85, 0.1); }\\ninput[disabled], select[disabled] {\\n opacity: .4;\\n cursor: not-allowed; }\\n.ui.table thead th {\\n padding: 6px 10px; }\\n.ui.table td {\\n padding: 2px 5px;\\n font-size: 11px;\\n text-align: center; }\\n.ui.table .ui.mini.button, .ui.table .ui.mini.buttons .button, .ui.table .ui.mini.buttons .or {\\n font-size: 9px; }\\n.min-height {\\n min-height: 400px; }\\ntextarea:focus, input:focus, input[type]:focus {\\n border-color: #00a32b;\\n box-shadow: 0 1px 1px rgba(16, 229, 70, 0.07) inset, 0 0 8px rgba(1, 211, 73, 0.6);\\n outline: 0 none; }\\nbutton.button:focus {\\n background-color: #00a32b !important;\\n border-color: #00a32b !important;\\n box-shadow: 0 1px 1px rgba(16, 229, 70, 0.07) inset, 0 0 8px rgba(1, 211, 73, 0.6) !important;\\n outline: 0 none !important; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvcHVyY2hhc2VzL2NvbXBvbmVudHMvY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9jb2xvcnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9jb21wb25lbnRzL2NyZWF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9hbmltYXRpb25zLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9wdXJjaGFzZXMvY29tcG9uZW50cy9jcmVhdGUvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxhcHBcXHByaXZhdGVcXG1vZHVsZXNcXHB1cmNoYXNlc1xcY29tcG9uZW50c1xcY3JlYXRlXFxjcmVhdGUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBFQUFZO0FDQVosaUJBQWlCO0FDRWpCOzs7O29CQUlvQjtBQUduQix5QkFBeUI7QUFFekIseUJBQXlC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O0VBT0ksaUJBQWdCO0VBQ2hCLGdCQUFlO0VBQ2YsbUJBQWtCLEVBQ25CO0FBVkg7RUFZSSxlQUFjLEVBQ2Y7QUFHSDtFQUNFLGtCQUFpQixFQUNsQjtBQUVEO0VBQ0Usc0JBQTZCO0VBQzdCLG1GQUFrRjtFQUNsRixnQkFBZSxFQUNoQjtBQVFEO0VBQ0UscUNBQTRDO0VBQzVDLGlDQUF3QztFQUN4Qyw4RkFBNkY7RUFDN0YsMkJBQTBCLEVBQzNCIiwiZmlsZSI6InNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9jb21wb25lbnRzL2NyZWF0ZS9jcmVhdGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMCcpO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYSBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBmb250LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1kZWZhdWx0XHJcbiAqL1xyXG4kZm9udC1kZWZhdWx0OiAnSGVsdmV0aWNhJywgJ1JvYm90bycsICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtc2Vjb25kYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2Vjb25kYXJ5XHJcbiAqL1xyXG4kZm9udC1zZWNvbmRhcnk6ICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtYXJpYWxcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1hcmlhbFxyXG4gKi9cclxuJGZvbnQtYXJpYWw6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbi8qKlxyXG4gKiBmb250LXJvYm90b1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJvYm90b1xyXG4gKi9cclxuJGZvbnQtcm9ib3RvOiAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnO1xyXG5cclxuXHJcbiRmb250LWhlbHZldGljYS1vYmxpcXVlOiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZDogJ0hlbHZldGljYSBCb2xkJztcclxuJGZvbnQtaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZTogJ0hlbHZldGljYSBCb2xkIE9ibGlxdWUnO1xyXG5cclxuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXHJcbiRmb250LXRoaW46IDEwMDtcclxuLyoqXHJcbiAqIGZvbnQtbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1saWdodFxyXG4gKi9cclxuJGZvbnQtbGlnaHQ6IDMwMDtcclxuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXHJcbiRmb250LXJlZ3VsYXI6IDQwMDtcclxuLyoqXHJcbiAqIGZvbnQtbWVkaXVtXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbWVkaXVtXHJcbiAqL1xyXG4kZm9udC1tZWRpdW06IDUwMDtcclxuLyoqXHJcbiAqIGZvbnQtc2VtaS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2VtaS1ib2xkXHJcbiAqL1xyXG4kZm9udC1zZW1pLWJvbGQ6IDYwMDtcclxuLyoqXHJcbiAqIGZvbnQtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWJvbGRcclxuICovXHJcbiRmb250LWJvbGQ6IDcwMDtcclxuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXHJcbiRmb250LXVsdHJhLWJvbGQ6IDkwMDtcclxuXHJcbiRmb250czogKFxyXG4gICdkZWZhdWx0JzogJGZvbnQtZGVmYXVsdCxcclxuICAnc2Vjb25kYXJ5JzogJGZvbnQtc2Vjb25kYXJ5LFxyXG4gICdhcmlhbCc6ICRmb250LWFyaWFsLFxyXG4gICdyb2JvdG8nOiAkZm9udC1yb2JvdG8sXHJcbiAgJ2hlbHZldGljYS1vYmxpcXVlJzogJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWUsXHJcbiAgJ2hlbHZldGljYS1ib2xkJzogJGZvbnQtaGVsdmV0aWNhLWJvbGQsXHJcbiAgJ2hlbHZldGljYS1ib2xkLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlLFxyXG4pO1xyXG5cclxuXHJcblxyXG4kZm9udHMtd2VpZ2h0czogKFxyXG4gJ3RoaW4nOiAkZm9udC10aGluLFxyXG4gJ2xpZ2h0JzogJGZvbnQtbGlnaHQsXHJcbiAncmVndWxhcic6ICRmb250LXJlZ3VsYXIsXHJcbiAnbWVkaXVtJzogJGZvbnQtbWVkaXVtLFxyXG4gJ3NlbWktYm9sZCc6ICRmb250LXNlbWktYm9sZCxcclxuICdib2xkJzogJGZvbnQtYm9sZCxcclxuICd1bHRyYS1ib2xkJzogJGZvbnQtdWx0cmEtYm9sZCxcclxuKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXG4vKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXG4vKiogQGNvbG9yIHRyYW5zcGFyZW50ICovXG4vKiogQGNvbG9yIGJsdWUgKi9cbi8qKiBAY29sb3IgaW5kaWdvICovXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xuLyoqIEBjb2xvciBwaW5rICovXG4vKiogQGNvbG9yIHJlZCAqL1xuLyoqIEBjb2xvciBvcmFuZ2UgKi9cbi8qKiBAY29sb3IgeWVsbG93ICovXG4vKiogQGNvbG9yIGdyZWVuICovXG4vKiogQGNvbG9yIHRlYWwgKi9cbi8qKiBAY29sb3IgY3lhbiAqL1xuLyoqIEBjb2xvciB3aGl0ZSAqL1xuLyoqIEBjb2xvciBncmF5ICovXG4vKiogQGNvbG9yIGdyYXktbG93ICovXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xuLyoqIEBjb2xvciBsaWdodCAqL1xuLyoqIEBjb2xvciBjb2xvci1zZWN1bmRhcnkgKi9cbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXN1Y2Nlc3MgZXMgdXRpbGl6YWRvIGVuIGV2ZW50b3Mgc2F0aXNmYWN0b3Jpb3NcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXN1Y2Nlc3NcclxuICovXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheS1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5LWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTJcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtMlxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTNcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtM1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXG4vKipcclxuYXJyYXkgb2YgY29sb3JzXHJcbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw3MDBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2EgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBCb2xkIE9ibGlxdWVcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXVsdHJhLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC11bHRyYS1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtcGVyY2VudCgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHZoXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXZpZXdwb3J0KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cbi5yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfcmVib3VuZC1hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIF9yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0b3A6IDBweDsgfVxuICAxMDAlIHtcbiAgICB0b3A6IDVweDsgfSB9XG5cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXG4uZmxpY2tlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBfZmxpY2tlci1hbWltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5pbnB1dC5lcnJvciwgaW5wdXQubmctaW52YWxpZCwgc2VsZWN0LmVycm9yLCBzZWxlY3QubmctaW52YWxpZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA5MywgODUsIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDkzLCA4NSwgMC4xKTsgfVxuXG5pbnB1dFtkaXNhYmxlZF0sIHNlbGVjdFtkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAuNDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4udWkudGFibGUgdGhlYWQgdGgge1xuICBwYWRkaW5nOiA2cHggMTBweDsgfVxuXG4udWkudGFibGUgdGQge1xuICBwYWRkaW5nOiAycHggNXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udWkudGFibGUgLnVpLm1pbmkuYnV0dG9uLCAudWkudGFibGUgLnVpLm1pbmkuYnV0dG9ucyAuYnV0dG9uLCAudWkudGFibGUgLnVpLm1pbmkuYnV0dG9ucyAub3Ige1xuICBmb250LXNpemU6IDlweDsgfVxuXG4ubWluLWhlaWdodCB7XG4gIG1pbi1oZWlnaHQ6IDQwMHB4OyB9XG5cbnRleHRhcmVhOmZvY3VzLCBpbnB1dDpmb2N1cywgaW5wdXRbdHlwZV06Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMGEzMmI7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDE2LCAyMjksIDcwLCAwLjA3KSBpbnNldCwgMCAwIDhweCByZ2JhKDEsIDIxMSwgNzMsIDAuNik7XG4gIG91dGxpbmU6IDAgbm9uZTsgfVxuXG5idXR0b24uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTMyYiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMGEzMmIgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMTYsIDIyOSwgNzAsIDAuMDcpIGluc2V0LCAwIDAgOHB4IHJnYmEoMSwgMjExLCA3MywgMC42KSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiAwIG5vbmUgIWltcG9ydGFudDsgfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvX2NvbmZpZ3MnO1xyXG5cclxuaW5wdXQsIHNlbGVjdCB7XHJcblxyXG4gICYuZXJyb3IsXHJcbiAgJi5uZy1pbnZhbGlkIHtcclxuICAgICRjb2xvcjogcmdiYShtYXAtZ2V0KCRjb2xvcnMsICdwdW1wa2luJyksIC4xKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xyXG4gIH1cclxuXHJcbiAgJltkaXNhYmxlZF0ge1xyXG4gICAgb3BhY2l0eTogLjQ7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIH1cclxufVxyXG5cclxuLnVpLnRhYmxlIHtcclxuXHJcbiAgdGhlYWQgdGgge1xyXG4gICAgcGFkZGluZzogNnB4IDEwcHg7XHJcbiAgfVxyXG5cclxuICB0ZCB7XHJcbiAgICBwYWRkaW5nOiAycHggNXB4O1xyXG4gICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAudWkubWluaS5idXR0b24sIC51aS5taW5pLmJ1dHRvbnMgLmJ1dHRvbiwgLnVpLm1pbmkuYnV0dG9ucyAub3Ige1xyXG4gICAgZm9udC1zaXplOiA5cHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubWluLWhlaWdodCB7XHJcbiAgbWluLWhlaWdodDogNDAwcHg7XHJcbn1cclxuXHJcbnRleHRhcmVhOmZvY3VzLCBpbnB1dDpmb2N1cywgaW5wdXRbdHlwZV06Zm9jdXN7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMCwgMTYzLCA0Myk7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMTYsIDIyOSwgNzAsIDAuMDcpIGluc2V0LCAwIDAgOHB4IHJnYmEoMSwgMjExLCA3MywgMC42KTtcclxuICBvdXRsaW5lOiAwIG5vbmU7XHJcbn1cclxuXHJcbmJ1dHRvbi5idXR0b257XHJcbiAgLy9iYWNrZ3JvdW5kOiBibGFjayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuXHJcbmJ1dHRvbi5idXR0b246Zm9jdXMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAxNjMsIDQzKSAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDAsIDE2MywgNDMpICFpbXBvcnRhbnQ7XHJcbiAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMTYsIDIyOSwgNzAsIDAuMDcpIGluc2V0LCAwIDAgOHB4IHJnYmEoMSwgMjExLCA3MywgMC42KSAhaW1wb3J0YW50O1xyXG4gIG91dGxpbmU6IDAgbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, Input, SimpleChanges, OnChanges, ViewChild, ElementRef } from '@angular/core';\r\nimport {FormBuilder, FormGroup} from '@angular/forms';\r\nimport { PurchasesService } from 'src/app/services/purchases/purchases.service';\r\nimport { CustomValidators } from 'src/app/utils/custom-validators';\r\nimport { TransactionService } from 'src/app/services/transactions/transaction.service';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IMyDateModel } from 'mydatepicker';\r\nimport { INgxMyDpOptions } from 'ngx-mydatepicker';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CustomersComponent } from 'src/app/utils/drop-downds/components/customers/customers.component';\r\nimport Swal from 'sweetalert2';\r\n\r\ndeclare const moment: any;\r\n\r\n@Component({\r\n selector: 'app-private-purchases-create',\r\n templateUrl: './create.component.html',\r\n styleUrls: ['./create.component.scss']\r\n})\r\n\r\nexport class CreateComponent implements OnInit, OnChanges {\r\n\r\n public form: FormGroup;\r\n public trans: [];\r\n public selectCust: any;\r\n allCustomers = [];\r\n onUpdate = false;\r\n onSave: boolean;\r\n idPur: number;\r\n onSearchCustomer: boolean;\r\n employee = [];\r\n allNewPruchases = [];\r\n currentPurchases = 0;\r\n onCurrentEdit: any;\r\n defaultDeductions = '3';\r\n currentPage: any;\r\n itemsPerPage = 10;\r\n\r\n myOptions: INgxMyDpOptions = {\r\n dateFormat: 'mm-dd-yyyy',\r\n };\r\n\r\n @Output() cancelEmitter: EventEmitter < boolean > = new EventEmitter < boolean > ();\r\n @Output() saveEmitter: EventEmitter < any > = new EventEmitter < any > ();\r\n @ViewChild('dropDown') dropDown: CustomersComponent;\r\n @ViewChild('focusInputIndex') focusInputIndex: ElementRef;\r\n readyCustomers: boolean;\r\n focus: boolean;\r\n @Input() cardEmitter;\r\n @Input() allPurchases = [];\r\n\r\n constructor(\r\n private _purchase: PurchasesService,\r\n private fr: FormBuilder,\r\n private _transaction: TransactionService,\r\n private _customers: CustomersService,\r\n private _toastr: ToastrService\r\n ) {\r\n this.builderForm();\r\n }\r\n\r\n ngOnInit() {\r\n this.getTransaction();\r\n this.valueChanges();\r\n }\r\n\r\n builderForm() {\r\n this.form = this.fr.group({\r\n dateOfService: ['', [CustomValidators.required]],\r\n amount: ['', [CustomValidators.required]],\r\n deductions: [this.defaultDeductions, [CustomValidators.required]],\r\n customer_id: ['', [CustomValidators.required]],\r\n receipt: ['', [CustomValidators.required]],\r\n transaction_type_id: [1],\r\n customer: []\r\n });\r\n this.form.disable();\r\n }\r\n\r\n getTransaction() {\r\n this._transaction.getType().subscribe(\r\n (successfull) => {\r\n console.log(successfull);\r\n this.trans = successfull.data;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n\r\n onSubmit(value) {\r\n this.onSave = true;\r\n this.form.disable();\r\n const data = this.form.getRawValue();\r\n data.transaction_type_id = 1;\r\n data.dateOfService = data.dateOfService.formatted;\r\n if (this.onUpdate === false) {\r\n this._purchase\r\n .create(data)\r\n .pipe(\r\n finalize(() => {\r\n this.onSave = false;\r\n this.form.enable();\r\n })\r\n )\r\n .subscribe(\r\n (successfull) => {\r\n console.log(successfull);\r\n this._toastr.success('Success Ok');\r\n this.resetForm();\r\n this.saveEmitter.emit({\r\n save: true,\r\n data: successfull\r\n });\r\n },\r\n (error) => {\r\n this.saveEmitter.emit({\r\n save: false,\r\n data: error\r\n });\r\n console.log(error);\r\n });\r\n }\r\n if (this.onUpdate === true) {\r\n\r\n this._purchase.update(data, this.idPur).pipe(\r\n finalize(() => {\r\n this.onSave = false;\r\n this.form.enable();\r\n })\r\n )\r\n .subscribe((successfull) => {\r\n console.log(successfull);\r\n this._toastr.success('Success Ok');\r\n this.resetForm();\r\n this.saveEmitter.emit({\r\n save: true,\r\n data: successfull\r\n });\r\n }, (error) => {\r\n this.saveEmitter.emit({\r\n save: false,\r\n data: error\r\n });\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n create(purchase: any) {\r\n purchase.onSave = true;\r\n\r\n this._purchase\r\n .create({\r\n amount: purchase.amount,\r\n customer_id: purchase.customer_id,\r\n dateOfService: purchase.dateOfService.formatted,\r\n deductions: purchase.deductions,\r\n employee_id: purchase.employee_id,\r\n receipt: purchase.receipt,\r\n transaction_type_id: purchase.transaction_type_id,\r\n })\r\n .pipe(\r\n finalize(() => {\r\n this.onSave = false;\r\n purchase.onSave = false;\r\n })\r\n )\r\n .subscribe(\r\n (successfull) => {\r\n purchase.save = true;\r\n console.log(successfull);\r\n this.saveEmitter.emit({\r\n save: true,\r\n data: successfull\r\n });\r\n },\r\n (error) => {\r\n purchase.save = false;\r\n purchase.error = error;\r\n this.saveEmitter.emit({\r\n save: false,\r\n data: error\r\n });\r\n console.log(error);\r\n });\r\n }\r\n\r\n onSubmitPurchases(event: any) {\r\n console.log('onSubmitPurchases', this.allNewPruchases);\r\n this.onCurrentEdit = undefined;\r\n this.selectCust = {\r\n employee_id: '',\r\n last_name: '',\r\n name: ''\r\n };\r\n this.resetForm();\r\n this.allNewPruchases\r\n .forEach((item) => {\r\n if (!item.save) {\r\n this.create(item);\r\n }\r\n });\r\n }\r\n\r\n selectCustid(event) {\r\n this.selectCust = event;\r\n this.form.get('customer_id').setValue(event.id);\r\n this.getCustomer(this.selectCust.employee_id);\r\n this.form.enable();\r\n this.focusAddBtn();\r\n }\r\n\r\n getCustomer(employee: number) {\r\n this._customers\r\n .getDetail(employee)\r\n .subscribe(\r\n success => {\r\n console.log('getCustomer success', success);\r\n this.form.get('customer').setValue(success.data);\r\n },\r\n err => {\r\n console.log('getCustomer err', err);\r\n }\r\n );\r\n }\r\n\r\n // optional data changed callback\r\n onDateChanged(event: IMyDateModel): void {\r\n // data selected\r\n }\r\n\r\n cancel() {\r\n this.cancelEmitter.emit(true);\r\n }\r\n\r\n searchCustomer(value: number) {\r\n this.onSearchCustomer = true;\r\n let data: any;\r\n data = this.allCustomers.filter((row) => {\r\n if (row.employee_id === value) {\r\n return row;\r\n }\r\n });\r\n if (data.length) {\r\n this.selectCustid(data[0]);\r\n this.form.enable();\r\n } else {\r\n this.form.disable();\r\n this.selectCust = {\r\n employee_id: value\r\n };\r\n this.selectCust.employee_id = '';\r\n this.form.get('customer_id').setValue('');\r\n }\r\n this.focusAddBtn();\r\n this.onSearchCustomer = false;\r\n }\r\n\r\n resetForm() {\r\n this.form.reset();\r\n this.form.get('deductions').setValue(this.defaultDeductions);\r\n this.form.disable();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['cardEmitter']) {\r\n if (this.cardEmitter.isOpen) {\r\n this.focusAddBtn();\r\n }\r\n }\r\n\r\n this.onUpdate = false; /*se le da el valor false cuando se activa ngOnChanges*/\r\n this.resetForm();\r\n this.idPur = undefined;\r\n if (changes['cliPurchase']) { /* si hay cambios en cliPurchase cuando se activa ngOnChanges*/\r\n if (changes['cliPurchase'].currentValue) {\r\n this.onUpdate = true; /*se le da el valor true cuando hay canvios en cliHospital*/\r\n this.idPur = changes['cliPurchase'].currentValue.id; /*se asigna el id que trae cliPurchase*/\r\n\r\n const data = new Date(moment(changes['cliPurchase'].currentValue.dateOfService).format());\r\n /* el campo dateOfService del data Picker espera un objeto, para esto se utiliza moment,\r\n este combierte el string que trae cliPurchase en objeto con zona Horaria y se pasa al data Picker*/\r\n\r\n this.form.setValue({\r\n dateOfService: {\r\n date: {\r\n year: data.getFullYear(),\r\n month: data.getMonth() + 1,\r\n day: data.getDate()\r\n }\r\n },\r\n amount: changes['cliPurchase'].currentValue.amount,\r\n deductions: changes['cliPurchase'].currentValue.deductions,\r\n receipt: changes['cliPurchase'].currentValue.receipt,\r\n customer_id: changes['cliPurchase'].currentValue.customer_id,\r\n transaction_type_id: '1',\r\n });\r\n }\r\n }\r\n }\r\n\r\n onLoadCustumers(event) {\r\n console.log('onLoadCustumers', event);\r\n this.allCustomers = event;\r\n }\r\n\r\n addPurchase() {\r\n const data = this.form.getRawValue();\r\n data.employee_id = this.selectCust.employee_id;\r\n data.transaction_type_id = 1;\r\n this.allNewPruchases.push(data);\r\n this.selectCust = {\r\n employee_id: '',\r\n last_name: '',\r\n name: ''\r\n };\r\n this.resetForm();\r\n\r\n this.currentPage = this.allNewPruchases.length / this.itemsPerPage;\r\n this.currentPage = Math.ceil(this.currentPage);\r\n if (this.currentPage <= 0 ) {\r\n this.currentPage = 1;\r\n }\r\n }\r\n\r\n deletePurchase(item: any) {\r\n this.allNewPruchases.splice(\r\n this.allNewPruchases.indexOf(item), 1\r\n );\r\n }\r\n\r\n updateCurrentEdit() {\r\n const data = this.form.getRawValue();\r\n data.employee_id = this.selectCust.employee_id;\r\n const index = this.allNewPruchases.indexOf(this.onCurrentEdit);\r\n if (!this.allNewPruchases[index].onSave) {\r\n if (!this.allNewPruchases[index].save) {\r\n this.allNewPruchases[index] = data;\r\n this.selectCust = {\r\n employee_id: '',\r\n last_name: '',\r\n name: ''\r\n };\r\n this.resetForm();\r\n this.onCurrentEdit = undefined;\r\n } else {\r\n this._toastr.error('This record can not be updated, it has already been sent.');\r\n }\r\n } else {\r\n this._toastr.error('This record can not be updated, it has already been sent.');\r\n }\r\n }\r\n\r\n editPurchase(item: any) {\r\n this.onCurrentEdit = item;\r\n this.resetForm();\r\n this.form.setValue({\r\n dateOfService: item.dateOfService,\r\n amount: item.amount,\r\n deductions: item.deductions,\r\n customer_id: item.customer_id,\r\n receipt: item.receipt,\r\n transaction_type_id: item.transaction_type_id,\r\n customer: item.customer\r\n });\r\n\r\n this.searchCustomer(item.employee_id);\r\n\r\n }\r\n\r\n focusAddBtn() {\r\n this.focusInputIndex.nativeElement.focus();\r\n }\r\n\r\n getIndex(item: any) {\r\n return this.allNewPruchases.indexOf(item) + 1;\r\n }\r\n\r\n private valueChanges() {\r\n this.form.get('receipt').valueChanges.subscribe(val => {\r\n if (val !== null) {\r\n if (this.validateReceipt(false, val)) {\r\n this.validateReceipt(true, val);\r\n }\r\n }\r\n });\r\n }\r\n\r\n validateReceipt(msj, value?) {\r\n const receipt = value ? value : this.form.get('receipt').value;\r\n msj ? this.swal('warning', null, 'There is already a purchase with this receipt') : null;\r\n return !!this.allPurchases.filter( item => item.receipt == receipt).length;\r\n }\r\n\r\n private swal(type: string, resp?: string, msj?: string) {\r\n if (type == 'warning') {\r\n Swal({\r\n position: 'top-end',\r\n title: msj ? msj : resp,\r\n type: 'warning',\r\n showConfirmButton: false,\r\n timer: 3000\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"

\\r\\n delete works!\\r\\n

\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9wdXJjaGFzZXMvY29tcG9uZW50cy9kZWxldGUvZGVsZXRlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-delete',\r\n templateUrl: './delete.component.html',\r\n styleUrls: ['./delete.component.scss']\r\n})\r\nexport class DeleteComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{val}}\\r\\n \\r\\n Status\\r\\n \\r\\n Result\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{val[key]}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{val.msj}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9wdXJjaGFzZXMvY29tcG9uZW50cy9pbXBvcnQvaW1wb3J0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport {finalize} from 'rxjs/operators';\r\nimport {PurchasesService} from '../../../../../services/purchases/purchases.service';\r\n\r\ndeclare const moment: any;\r\n\r\n@Component({\r\n selector: 'app-purchases-import',\r\n templateUrl: './import.component.html',\r\n styleUrls: ['./import.component.scss']\r\n})\r\nexport class ImportComponent implements OnInit {\r\n private data: any;\r\n\r\n constructor(\r\n private _purchases: PurchasesService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onImportXls(event) {\r\n event.json.forEach(element => {\r\n element.import = true;\r\n });\r\n this.data = event;\r\n console.log('onImportXls', this.data);\r\n }\r\n\r\n submit() {\r\n this.data.json.filter((element) => {\r\n if (element.import === true) {\r\n this.send(element);\r\n }\r\n });\r\n }\r\n\r\n send(data: any, retry?: boolean) {\r\n data.send = true;\r\n data.onImport = true;\r\n console.log('send', data);\r\n\r\n this._purchases.importPurchases([{\r\n amount: data.amount,\r\n dateOfService: data.date_of_sale,\r\n deductions: data.deductions,\r\n employee_id: data.employee_id,\r\n receipt: data.ticket_nbr,\r\n }])\r\n .pipe(\r\n finalize(() => {\r\n data.onImport = false;\r\n })).subscribe(resp => {\r\n console.log('resp', resp);\r\n if (resp) {\r\n if (resp[0]) {\r\n data.success = resp[0].resp;\r\n data.msj = resp[0].msj;\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n Update\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy9wdXJjaGFzZXMvY29tcG9uZW50cy91cGRhdGUvdXBkYXRlLmNvbXBvbmVudC5zY3NzIn0= */\"","import {Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges} from '@angular/core';\r\nimport { Purchase } from '../../purchase';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { CustomValidators } from 'src/app/utils/custom-validators';\r\nimport { PurchasesService } from 'src/app/services/purchases/purchases.service';\r\nimport { pureArrayDef } from '@angular/core/src/view';\r\nimport { finalize } from 'rxjs/internal/operators/finalize';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IMyDateModel } from 'mydatepicker';\r\nimport { INgxMyDpOptions } from 'ngx-mydatepicker';\r\nimport * as moment from 'moment';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-purchase-update',\r\n templateUrl: './update.component.html',\r\n styleUrls: ['./update.component.scss']\r\n})\r\nexport class UpdateComponent implements OnInit, OnChanges {\r\n\r\n public form: FormGroup;\r\n\r\n myOptions: INgxMyDpOptions = {\r\n dateFormat: 'yyyy-mm-dd',\r\n };\r\n @Input() purchase: Purchase;\r\n @Input() allPurchases = [];\r\n @Output() closep: EventEmitter = new EventEmitter ();\r\n\r\n constructor (\r\n private _purchase: PurchasesService,\r\n private _toast: ToastrService,\r\n private fr: FormBuilder\r\n\r\n ) {\r\n this.form = this.fr.group({\r\n dateOfService: ['', [CustomValidators.required]],\r\n receipt: ['', [CustomValidators.required]],\r\n deductions: ['', [CustomValidators.required]],\r\n amount: ['', [CustomValidators.required]],\r\n name: ['', [CustomValidators.required]],\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.valueChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['purchase']) {\r\n console.log('info select', this.purchase);\r\n this.form.patchValue({\r\n dateOfService: this.purchase.dateOfService,\r\n receipt: this.purchase.receipt,\r\n deductions: this.purchase.deductions,\r\n amount: this.purchase.amount,\r\n name: this.purchase.customer.name + ' ' + this.purchase.customer.last_name,\r\n });\r\n }\r\n }\r\n\r\n updateEdit(value) {\r\n this._purchase\r\n .update(this.form.value, this.purchase.id)\r\n .pipe(\r\n finalize(() => {\r\n this.form.reset();\r\n this.closeUpdate();\r\n }))\r\n .subscribe((successfull) => {\r\n console.log('Ok', successfull);\r\n this._toast.success('Success Ok');\r\n }, (error) => {\r\n console.log('Error', error);\r\n this._toast.error('error');\r\n });\r\n\r\n }\r\n\r\n closeUpdate() {\r\n // metodo para emitir al padre y cerrar la card\r\n this.closep.emit(false);\r\n }\r\n\r\n\r\n onDateChanged($event: IMyDateModel) {\r\n this.form.patchValue({\r\n dateOfService: $event.formatted,\r\n });\r\n }\r\n\r\n private valueChanges() {\r\n this.form.get('receipt').valueChanges.subscribe(val => {\r\n if (val !== null) {\r\n if (this.validateReceipt(false, val)) {\r\n this.validateReceipt(true, val);\r\n }\r\n }\r\n });\r\n }\r\n\r\n validateReceipt(msj, value?) {\r\n const receipt = value ? value : this.form.get('receipt').value;\r\n msj ? this.swal('warning', null, 'There is already a purchase with this receipt') : null;\r\n return !!this.allPurchases.filter( item => item.receipt == receipt).length;\r\n }\r\n\r\n private swal(type: string, resp?: string, msj?: string) {\r\n if (type == 'warning') {\r\n Swal({\r\n position: 'top-end',\r\n title: msj ? msj : resp,\r\n type: 'warning',\r\n showConfirmButton: false,\r\n timer: 3000\r\n });\r\n }\r\n }\r\n}\r\n","\r\nexport class Purchase {\r\n id: any;\r\n dateOfService: any;\r\n receipt: any;\r\n amount: any;\r\n deductions: any;\r\n customer_id: any;\r\n customer: {\r\n last_name: any,\r\n name: any\r\n };\r\n\r\n\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { PurchasesComponent } from './purchases.component';\r\n\r\nconst routes: Routes = [{\r\n path: 'private/purchases',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: '',\r\n component: PurchasesComponent\r\n }]\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class PurchasesRoutingModule { }\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Loading, please wait.\\r\\n
\\r\\n\\r\\n
\\r\\n

List of Purchases

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Add\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Date Of ServiceReceiptAmountDeductionsCustomerOption
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{pur.dateOfService}}{{pur.receipt}}{{pur.amount | currency:'$ '}}{{pur.deductions}}{{pur.customer.name}} {{pur.customer.last_name}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Total Purchases: {{ purc?.length }}\\r\\n \\r\\n Total Amount: {{ sumTotal() | currency:'$ '}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Post Payments\\r\\n \\r\\n \\r\\n \\r\\n Imprimir\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"@media print {\\n .not-print {\\n display: none !important; } }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXGFwcFxccHJpdmF0ZVxcbW9kdWxlc1xccHVyY2hhc2VzXFxwdXJjaGFzZXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRTtJQUNFLHlCQUF3QixFQUN6QixFQUFBIiwiZmlsZSI6InNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3B1cmNoYXNlcy9wdXJjaGFzZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAbWVkaWEgcHJpbnQge1xyXG4gIC5ub3QtcHJpbnQge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { PurchasesService } from 'src/app/services/purchases/purchases.service';\r\nimport { Purchase } from './purchase';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CreateComponent } from './components/create/create.component';\r\nimport { BalanceService } from 'src/app/services/balance/balance.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { UpdateComponent } from './components/update/update.component';\r\nimport {CardComponent} from '../../../utils/card/card.component';\r\nimport Swal from 'sweetalert2';\r\n\r\ndeclare const $: any;\r\n\r\n@Component({\r\n selector: 'app-purchases',\r\n templateUrl: './purchases.component.html',\r\n styleUrls: ['./purchases.component.scss']\r\n})\r\nexport class PurchasesComponent implements OnInit {\r\n\r\n onSend: boolean;\r\n Transtypeid: any;\r\n purc = [];\r\n clipurc: any;\r\n constSend = [];\r\n idPur = [];\r\n allSelected: boolean;\r\n actSend = true;\r\n\r\n @ViewChild('componentCreatePurchases') componentCreate: CreateComponent;\r\n @ViewChild('componentUpdatePurchases') componentUpdate: UpdateComponent;\r\n @ViewChild('cardUpdate') cardUpdate: CardComponent;\r\n\r\n cardEmitter = {\r\n 'isOpen': false\r\n };\r\n private allPurchases = [];\r\n\r\n constructor(private _purchases: PurchasesService, private _toast: ToastrService, private _balance: BalanceService) {}\r\n\r\n ngOnInit() {\r\n this.getPurchases();\r\n this.getAllPurchase();\r\n }\r\n\r\n getPurchases() {\r\n this._purchases.get(true).subscribe((successfull) => {\r\n console.log('getPurchases', successfull);\r\n this.purc = successfull;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n cliPurchase(pur: any) {\r\n console.log('cliPurchase', pur);\r\n this.clipurc = pur;\r\n }\r\n\r\n deletePurchase(data) {\r\n this._purchases\r\n .delete(data.id)\r\n .subscribe(\r\n (successfull) => {\r\n console.log('deletePurchase', successfull);\r\n this.purc.splice(this.purc.indexOf(data), 1);\r\n this.getPurchases();\r\n Swal({\r\n title: 'Purchase Removal Successfully',\r\n type: 'success',\r\n confirmButtonColor: '#3085d6 ',\r\n confirmButtonText: 'Close'\r\n });\r\n },\r\n (error) => {\r\n this._toast.error(error.message);\r\n console.log('deletePurchase', error);\r\n });\r\n }\r\n\r\n filterForActiveSend() {\r\n const actives = this.purc.filter((row) => {\r\n if (row.checked === true) {\r\n return row;\r\n }\r\n })\r\n .map((row) => {\r\n if (row.checked === true) {\r\n return row.id;\r\n }\r\n });\r\n return actives;\r\n }\r\n\r\n send() {\r\n const data = this.filterForActiveSend();\r\n if (data.length) {\r\n this.onSend = true;\r\n this._balance\r\n .post(data)\r\n .pipe(\r\n finalize(() => {\r\n this.onSend = false;\r\n })\r\n )\r\n .subscribe((success) => {\r\n console.log('send success', success);\r\n this.getPurchases();\r\n Swal({\r\n title: 'Successful Post',\r\n type: 'success',\r\n confirmButtonColor: '#3085d6 ',\r\n confirmButtonText: 'Close'\r\n });\r\n this.getAllPurchase();\r\n },\r\n (err) => {\r\n console.log('send err', err);\r\n });\r\n }\r\n }\r\n\r\n toggleSelectAll(param: boolean) {\r\n this.purc.forEach((element) => {\r\n element.checked = param;\r\n });\r\n this.allSelected = param;\r\n\r\n }\r\n\r\n allSelectedForSend() {\r\n const selected = this.purc.filter((element) => {\r\n if (element.checked) {\r\n return element;\r\n\r\n }\r\n });\r\n\r\n return selected.length === this.purc.length;\r\n }\r\n\r\n sumTotal() {\r\n let total = 0;\r\n this.purc.forEach(element => {\r\n total = total + parseFloat(element.amount);\r\n });\r\n\r\n return total;\r\n }\r\n\r\n\r\n printData() {\r\n window.print();\r\n }\r\n\r\n getAllPurchase() {\r\n this._purchases.getAllPurchase()\r\n .subscribe( resp => this.allPurchases = resp.data);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PurchasesRoutingModule } from './purchases-routing.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CardModule } from 'src/app/utils/card/card.module';\r\nimport { CreateComponent } from './components/create/create.component';\r\nimport { PurchasesComponent } from './purchases.component';\r\nimport { PurchasesService } from 'src/app/services/purchases/purchases.service';\r\nimport { DeleteComponent } from './components/delete/delete.component';\r\nimport { MyDatePickerModule } from 'mydatepicker';\r\nimport { DropDowndsModule } from 'src/app/utils/drop-downds/drop-downds.module';\r\nimport { NgxMyDatePickerModule } from 'ngx-mydatepicker';\r\nimport { ProgressBarModule } from 'src/app/utils/progress-bar/progress-bar.module';\r\nimport { SweetAlert2Module } from '@toverux/ngx-sweetalert2';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { UpdateComponent } from './components/update/update.component';\r\nimport { ImportComponent } from './components/import/import.component';\r\nimport {ToImportModule} from '../../../utils/to-import/to-import.module';\r\n\r\n@NgModule({\r\n declarations: [CreateComponent, PurchasesComponent, DeleteComponent, UpdateComponent, ImportComponent],\r\n imports: [\r\n CommonModule,\r\n PurchasesRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CardModule,\r\n MyDatePickerModule,\r\n NgxMyDatePickerModule,\r\n DropDowndsModule,\r\n ProgressBarModule,\r\n SweetAlert2Module,\r\n NgxMaskModule.forRoot(),\r\n NgxPaginationModule,\r\n ToImportModule\r\n ],\r\n exports: [\r\n ImportComponent\r\n ],\r\n providers: [PurchasesService]\r\n})\r\n\r\nexport class PurchasesModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { TransactionsComponent } from './transactions.component';\r\n\r\n\r\nconst routes: Routes = [{\r\n path: 'private/transactions',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: '',\r\n component: TransactionsComponent\r\n }]\r\n\r\n}];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n })\r\n export class TransactionsRoutingModule { }\r\n","module.exports = \"\\r\\n
\\r\\n

Transactions

\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
idnamelast name
\\r\\n
{{i+1}} - {{item.employee_id}} {{item.name}}{{item.last_name}}
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-transactions',\r\n templateUrl: './transactions.component.html',\r\n styleUrls: ['./transactions.component.scss']\r\n})\r\nexport class TransactionsComponent implements OnInit {\r\n show: boolean;\r\n public users = [];\r\n public search: String;\r\n\r\n constructor(\r\n private _customers: CustomersService,\r\n private _toast: ToastrService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n getAllCustomers() {\r\n this.show = true;\r\n return this._customers\r\n .get()\r\n .pipe(\r\n finalize(() => {\r\n this.show = false;\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n console.log(success);\r\n this.users = success.data;\r\n }, (error) => {\r\n console.log('getAllCustomers error', error);\r\n this._toast.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n filter() {\r\n\r\n\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TransactionsComponent } from './transactions.component';\r\nimport { TransactionService } from 'src/app/services/transactions/transaction.service';\r\nimport { TransactionsRoutingModule } from './transactions-routing.module';\r\n\r\n@NgModule({\r\n declarations: [TransactionsComponent],\r\n imports: [\r\n CommonModule,\r\n TransactionsRoutingModule\r\n\r\n ],\r\n providers: [TransactionService]\r\n})\r\nexport class TransactionsModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvbW9kdWxlcy91c2Vycy9jb21wb25lbnRzL2NyZWF0ZS9jcmVhdGUuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CustomValidators } from 'src/app/utils/custom-validators';\r\nimport { INgxMyDpOptions } from 'ngx-mydatepicker';\r\nimport { UsersService } from 'src/app/services/users/users.service';\r\nimport { UsersInterface } from '../../users-interface';\r\n\r\ndeclare const moment: any;\r\n\r\n@Component({\r\n selector: 'app-private-users-create',\r\n templateUrl: './create.component.html',\r\n styleUrls: ['./create.component.scss']\r\n})\r\nexport class CreateComponent implements OnInit, OnChanges {\r\n\r\n form: FormGroup;\r\n\r\n myOptions: INgxMyDpOptions = {\r\n dateFormat: 'mm-dd-yyyy',\r\n };\r\n\r\n onSave: boolean;\r\n isUpdate: boolean;\r\n\r\n @Input() user: any;\r\n\r\n @Output() onsuccess: EventEmitter = new EventEmitter();\r\n @Output() onupdate: EventEmitter = new EventEmitter();\r\n @Output() onerror: EventEmitter = new EventEmitter();\r\n @Output() closeEmitter: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n private fr: FormBuilder,\r\n private _toastr: ToastrService,\r\n private _users: UsersService\r\n ) {\r\n this.builderForm();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n builderForm() {\r\n this.form = this.fr.group({\r\n name: ['', [CustomValidators.required]],\r\n last_name: ['', [CustomValidators.required]],\r\n email: ['', [CustomValidators.required]],\r\n date_of_birthay: [''],\r\n gender: [''],\r\n address: [''],\r\n zipcode: [''],\r\n phone: [''],\r\n cell_phone: [''],\r\n });\r\n }\r\n\r\n onSubmit(value) {\r\n const user = this.form.getRawValue();\r\n user.date_of_birthay = user.date_of_birthay.formatted;\r\n if (!this.isUpdate) {\r\n return this.create(user);\r\n }\r\n\r\n user.date_of_birthay = user.date_of_birthay ? user.date_of_birthay : this.user.date_of_birthay;\r\n return this.update(user);\r\n }\r\n\r\n update(data: any) {\r\n data.profile = {...data};\r\n return this._users\r\n .update(data, this.user.id)\r\n .subscribe(\r\n (success) => {\r\n this._toastr.success(success.message);\r\n this.onupdate.emit(success);\r\n },\r\n (error) => {\r\n this._toastr.error(error.message);\r\n this.onerror.emit(error);\r\n });\r\n }\r\n\r\n create(user: UsersInterface) {\r\n return this._users\r\n .create(user)\r\n .subscribe(\r\n (success) => {\r\n this._toastr.success(success.message);\r\n this.onsuccess.emit(success);\r\n this.form.reset();\r\n },\r\n (error) => {\r\n this._toastr.error(error.message);\r\n console.log('success create', error);\r\n this.onerror.emit(error);\r\n });\r\n }\r\n\r\n clickOnClose() {\r\n this.closeEmitter.emit(false);\r\n }\r\n\r\n refreshForm(values) {\r\n const date = moment(values.profile ? values.profile.date_of_birthay : '');\r\n this.form.patchValue({\r\n name: values.name,\r\n email: values.email,\r\n last_name: values.profile ? values.profile.last_name : '',\r\n gender: values.profile ? values.profile.gender : '',\r\n address: values.profile ? values.profile.address : '',\r\n zipcode: values.profile ? values.profile.zipcode : '',\r\n phone: values.profile ? values.profile.phone : '',\r\n cell_phone: values.profile ? values.profile.cell_phone : '',\r\n date_of_birthay: date.isValid() ? {date: {\r\n year: date.toObject().years,\r\n month: date.toObject().months + 1,\r\n day: date.toObject().date\r\n }} : '',\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.isUpdate = false;\r\n\r\n if (changes['user']) {\r\n if (changes['user'].currentValue) {\r\n if (changes['user'].currentValue.id) {\r\n this.isUpdate = true;\r\n this.refreshForm(changes['user'].currentValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { TemplateComponent } from '../../template/template.component';\r\nimport { AuthGuard } from '../../guards/auth/auth.guard';\r\nimport { UsersComponent } from './users.component';\r\n\r\nconst routes: Routes = [{\r\n path: 'private/users',\r\n component: TemplateComponent,\r\n canActivate: [AuthGuard],\r\n children: [{\r\n path: '',\r\n component: UsersComponent\r\n }]\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class UsersRoutingModule { }\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n Users\\r\\n
\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Img\\\"\\r\\n
\\r\\n {{user.name}} {{user?.profile?.last_name}}\\r\\n
\\r\\n
\\r\\n

\\r\\n {{user?.profile?.phone}}\\r\\n

\\r\\n
\\r\\n
\\r\\n

\\r\\n {{user.email}}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \".ui.card, .ui.cards > .card {\\n width: 245px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS9tb2R1bGVzL3VzZXJzL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcYXBwXFxwcml2YXRlXFxtb2R1bGVzXFx1c2Vyc1xcdXNlcnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFZLEVBQ2IiLCJmaWxlIjoic3JjL2FwcC9wcml2YXRlL21vZHVsZXMvdXNlcnMvdXNlcnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudWkuY2FyZCwgLnVpLmNhcmRzPi5jYXJkIHtcclxuICB3aWR0aDogMjQ1cHg7XHJcbn0iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { UsersService } from 'src/app/services/users/users.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CardComponent } from 'src/app/utils/card/card.component';\r\n\r\ndeclare const faker: any;\r\n\r\n@Component({\r\n selector: 'app-private-users',\r\n templateUrl: './users.component.html',\r\n styleUrls: ['./users.component.scss']\r\n})\r\nexport class UsersComponent implements OnInit {\r\n\r\n users = [];\r\n userSelected: any;\r\n\r\n @ViewChild('usersCreate') cardUsersCreate: CardComponent;\r\n\r\n constructor(\r\n private _users: UsersService,\r\n private _toastr: ToastrService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getAllUsers();\r\n }\r\n\r\n getAllUsers() {\r\n return this._users\r\n .get(true)\r\n .subscribe(\r\n (success) => {\r\n console.log('getAllUsers success', success);\r\n this.users = success.data;\r\n },\r\n (error) => {\r\n this._toastr.error(error.message);\r\n console.log('getAllUsers error', error);\r\n\r\n });\r\n }\r\n\r\n onSaveUser(event: any) {\r\n this.users.push(event.data);\r\n }\r\n\r\n deleteUser(user: any) {\r\n return this._users\r\n .delete(user.id)\r\n .subscribe(\r\n (success) => {\r\n this._toastr.success(success.message);\r\n this.users.splice(this.users.indexOf(user), 1);\r\n },\r\n (error) => {\r\n this._toastr.error(error.message);\r\n console.log('success deleteUser', error);\r\n });\r\n }\r\n\r\n selectToEdit(user: any) {\r\n this.userSelected = user;\r\n this.cardUsersCreate.open();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { UsersRoutingModule } from './users-routing.module';\r\nimport { UsersComponent } from './users.component';\r\nimport { CreateComponent } from './components/create/create.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMyDatePickerModule } from 'ngx-mydatepicker';\r\nimport { CardModule } from 'src/app/utils/card/card.module';\r\nimport { SweetAlert2Module } from '@toverux/ngx-sweetalert2';\r\n\r\n@NgModule({\r\n declarations: [UsersComponent, CreateComponent],\r\n imports: [\r\n CommonModule,\r\n UsersRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMyDatePickerModule,\r\n CardModule,\r\n SweetAlert2Module\r\n ]\r\n})\r\nexport class UsersModule { }\r\n","module.exports = \"
\\r\\n Aside\\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvdGVtcGxhdGUvY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-private-template-aside',\r\n templateUrl: './aside.component.html',\r\n styleUrls: ['./aside.component.scss']\r\n})\r\nexport class AsideComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.private-template-content {\\n width: 778px;\\n display: block;\\n margin: auto;\\n padding: 0 12px 50px 0; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2NvbnRlbnQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfZm9udHMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2NvbnRlbnQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfY29sb3JzLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvdGVtcGxhdGUvY29tcG9uZW50cy9jb250ZW50L0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX2Z1bmN0aW9ucy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL2NvbXBvbmVudHMvY29udGVudC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2NvbnRlbnQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfYW5pbWF0aW9ucy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL2NvbXBvbmVudHMvY29udGVudC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXGFwcFxccHJpdmF0ZVxcdGVtcGxhdGVcXGNvbXBvbmVudHNcXGNvbnRlbnRcXGNvbnRlbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBFQUFZO0FDQVosaUJBQWlCO0FDRWpCOzs7O29CQUlvQjtBQUduQix5QkFBeUI7QUFFekIseUJBQXlCO0FBRXpCLGtCQUFrQjtBQUVuQixvQkFBb0I7QUFFcEIsb0JBQW9CO0FBRXBCLGtCQUFrQjtBQUVsQixpQkFBaUI7QUFFakIsb0JBQW9CO0FBRXBCLG9CQUFvQjtBQUVwQixtQkFBbUI7QUFFbkIsa0JBQWtCO0FBRWxCLGtCQUFrQjtBQUVsQixtQkFBbUI7QUFFbkIsa0JBQWtCO0FBRWxCLHNCQUFzQjtBQUV0Qix5QkFBeUI7QUFFekIsdUJBQXVCO0FBRXZCLG1CQUFtQjtBQUduQiw2QkFBNkI7QUFlN0I7Ozs7O0dBS0c7QUFHSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBR0g7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBR0g7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQVdIOztFQUVFO0FGaE1GO0VBQ0UseUJBQXdCO0VBQ3hCLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsOERBQXdGLEVBQUE7QUFHMUY7RUFDRSxpQ0FBZ0M7RUFDaEMsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQiw4RUFBd0csRUFBQTtBQUcxRztFQUNFLDhCQUE2QjtFQUM3QixtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLG1FQUE2RixFQUFBO0FBRy9GO0VBQ0Usc0NBQXFDO0VBQ3JDLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsdUZBQWlILEVBQUE7QUFHbkg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFRSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBRzlHSDs7Ozs7O0dBTUc7QUNQSDs7Ozs7Ozs7OztHQVVHO0FBV0g7Ozs7Ozs7Ozs7R0FVRztBQWVIOzs7Ozs7Ozs7O0dBVUc7QUFnQkg7Ozs7Ozs7Ozs7R0FVRztBQWVIOzs7Ozs7Ozs7O0dBVUc7QUFlSDs7Ozs7Ozs7OztHQVVHO0FBNEJIOzs7Ozs7Ozs7O0dBVUc7QUE2REg7Ozs7Ozs7Ozs7R0FVRztBQXFDSDs7Ozs7Ozs7O0dBU0c7QUFlSDs7Ozs7Ozs7R0FRRztBQWVIOzs7Ozs7OztHQVFHO0FBVUg7Ozs7Ozs7R0FPRztBQU1IOzs7Ozs7Ozs7R0FTRztBQStCSDs7Ozs7Ozs7O0dBU0c7QUFvQkg7Ozs7Ozs7O0dBUUc7QUNqYkg7Ozs7Ozs7O0dBUUc7QUFDSDtFQUNFLDJDQUFpQztVQUFqQyxtQ0FBaUM7RUFDakMsZ0NBQXVCO1VBQXZCLHdCQUF1QjtFQUN2Qiw0Q0FBbUM7VUFBbkMsb0NBQW1DO0VBQ25DLHVDQUE4QjtVQUE5QiwrQkFBOEI7RUFDOUIsK0NBQXNDO1VBQXRDLHVDQUFzQyxFQVV2QztBQVJDO0VBQ0U7SUFDRSxTQUFPLEVBQUE7RUFFVDtJQUNFLFNBQU8sRUFBQSxFQUFBO0FBTFg7RUFDRTtJQUNFLFNBQU8sRUFBQTtFQUVUO0lBQ0UsU0FBTyxFQUFBLEVBQUE7QUFLYjs7Ozs7Ozs7R0FRRztBQUNIO0VBQ0UsMkNBQWtDO1VBQWxDLG1DQUFrQztFQUNsQywrQkFBc0I7VUFBdEIsdUJBQXNCO0VBQ3RCLDBDQUFpQztVQUFqQyxrQ0FBaUM7RUFDakMsNENBQW1DO1VBQW5DLG9DQUFtQyxFQU9wQztBQUxDO0VBQ0U7SUFBSyxXQUFVLEVBQUE7RUFDZjtJQUFNLFlBQVcsRUFBQTtFQUNqQjtJQUFPLFdBQVUsRUFBQSxFQUFBO0FBSG5CO0VBQ0U7SUFBSyxXQUFVLEVBQUE7RUFDZjtJQUFNLFlBQVcsRUFBQTtFQUNqQjtJQUFPLFdBQVUsRUFBQSxFQUFBO0FDMUNyQjtFQUNFLGFBQTZDO0VBQzdDLGVBQWM7RUFDZCxhQUFZO0VBQ1osdUJBQWtDLEVBSW5DIiwiZmlsZSI6InNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNzAwJyk7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIE9ibGlxdWUnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLUJvbGRPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXHJcbiRmb250LWRlZmF1bHQ6ICdIZWx2ZXRpY2EnLCAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXHJcbiRmb250LXNlY29uZGFyeTogJ0NhbGlicmknLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xyXG4kZm9udC1hcmlhbDogJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xyXG4kZm9udC1yb2JvdG86ICdSb2JvdG8nLCAnQ2FsaWJyaScsICdBcmlhbCc7XHJcblxyXG5cclxuJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWU6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XHJcbiRmb250LWhlbHZldGljYS1ib2xkOiAnSGVsdmV0aWNhIEJvbGQnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlOiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcblxyXG4vKipcclxuICogZm9udC10aGluXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdGhpblxyXG4gKi9cclxuJGZvbnQtdGhpbjogMTAwO1xyXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xyXG4kZm9udC1saWdodDogMzAwO1xyXG4vKipcclxuICogZm9udC1yZWd1bGFyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcmVndWxhclxyXG4gKi9cclxuJGZvbnQtcmVndWxhcjogNDAwO1xyXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXHJcbiRmb250LW1lZGl1bTogNTAwO1xyXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXHJcbiRmb250LXNlbWktYm9sZDogNjAwO1xyXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cclxuJGZvbnQtYm9sZDogNzAwO1xyXG4vKipcclxuICogZm9udC11bHRyYS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdWx0cmEtYm9sZFxyXG4gKi9cclxuJGZvbnQtdWx0cmEtYm9sZDogOTAwO1xyXG5cclxuJGZvbnRzOiAoXHJcbiAgJ2RlZmF1bHQnOiAkZm9udC1kZWZhdWx0LFxyXG4gICdzZWNvbmRhcnknOiAkZm9udC1zZWNvbmRhcnksXHJcbiAgJ2FyaWFsJzogJGZvbnQtYXJpYWwsXHJcbiAgJ3JvYm90byc6ICRmb250LXJvYm90byxcclxuICAnaGVsdmV0aWNhLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2Etb2JsaXF1ZSxcclxuICAnaGVsdmV0aWNhLWJvbGQnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZCxcclxuICAnaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZSc6ICRmb250LWhlbHZldGljYS1ib2xkLW9ibGlxdWUsXHJcbik7XHJcblxyXG5cclxuXHJcbiRmb250cy13ZWlnaHRzOiAoXHJcbiAndGhpbic6ICRmb250LXRoaW4sXHJcbiAnbGlnaHQnOiAkZm9udC1saWdodCxcclxuICdyZWd1bGFyJzogJGZvbnQtcmVndWxhcixcclxuICdtZWRpdW0nOiAkZm9udC1tZWRpdW0sXHJcbiAnc2VtaS1ib2xkJzogJGZvbnQtc2VtaS1ib2xkLFxyXG4gJ2JvbGQnOiAkZm9udC1ib2xkLFxyXG4gJ3VsdHJhLWJvbGQnOiAkZm9udC11bHRyYS1ib2xkLFxyXG4pO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cbi8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cbi8qKiBAY29sb3IgdHJhbnNwYXJlbnQgKi9cbi8qKiBAY29sb3IgYmx1ZSAqL1xuLyoqIEBjb2xvciBpbmRpZ28gKi9cbi8qKiBAY29sb3IgcHVycGxlICovXG4vKiogQGNvbG9yIHBpbmsgKi9cbi8qKiBAY29sb3IgcmVkICovXG4vKiogQGNvbG9yIG9yYW5nZSAqL1xuLyoqIEBjb2xvciB5ZWxsb3cgKi9cbi8qKiBAY29sb3IgZ3JlZW4gKi9cbi8qKiBAY29sb3IgdGVhbCAqL1xuLyoqIEBjb2xvciBjeWFuICovXG4vKiogQGNvbG9yIHdoaXRlICovXG4vKiogQGNvbG9yIGdyYXkgKi9cbi8qKiBAY29sb3IgZ3JheS1sb3cgKi9cbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cbi8qKiBAY29sb3IgZ3JheS1kYXJrICovXG4vKiogQGNvbG9yIGxpZ2h0ICovXG4vKiogQGNvbG9yIGNvbG9yLXNlY3VuZGFyeSAqL1xuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXG4vKipcclxuICogQ29sb3Itc3VjY2VzcyBlcyB1dGlsaXphZG8gZW4gZXZlbnRvcyBzYXRpc2ZhY3Rvcmlvc1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itc3VjY2Vzc1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1pbmZvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1pbmZvXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheVxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1ncmF5LWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXktZGFya1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13aGl0ZVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itd2hpdGVcclxuICovXG4vKipcclxuICogQ29sb3ItYmxhY2tcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWJsYWNrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC1kZWZhdWx0XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtMlxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0yXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtM1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0zXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG5hcnJheSBvZiBjb2xvcnNcclxuKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMFwiKTtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBPYmxpcXVlXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLUJvbGRPYmxpcXVlLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG4vKipcclxuICogZm9udC1kZWZhdWx0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXNlY29uZGFyeVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXNlY29uZGFyeVxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWFyaWFsXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYXJpYWxcclxuICovXG4vKipcclxuICogZm9udC1yb2JvdG9cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1yb2JvdG9cclxuICovXG4vKipcclxuICogZm9udC10aGluXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdGhpblxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbGlnaHRcclxuICovXG4vKipcclxuICogZm9udC1yZWd1bGFyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcmVndWxhclxyXG4gKi9cbi8qKlxyXG4gKiBmb250LW1lZGl1bVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LW1lZGl1bVxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXNlbWktYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXNlbWktYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQW5jaG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQW5jaG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFuY2hvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAd2lkdGgtZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiBwb3JjZW50YWplc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gdmhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtdmlld3BvcnQoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLXBlcmNlbnQoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtZW0oKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHB4XHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1weCgpXHJcbiAqL1xuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlIHBhcmEgc3VicmF5YWRvIGNvbiBhbmltYWNpb25cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkaGVpZ2h0IGFsdG9cclxuICogQHBhcmFtICRjb2xvciBDb2xvclxyXG4gKiBAcGFyYW0gJHBzZXVkby1lbGVtZW50IHBzZXVkbyBhIGFncmVnYXIgZWwgZXN0aWxvXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBodnItdW5kZXJsaW5lLWZyb20tY2VudGVyKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwZXJzb25hbGl6YWNpb24gZGUgc2Nyb2xsXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG92ZXJmbG93IHNjcm9sbCBhIGFwbGljYXIgZWwgZXN0aWxvIChvdmVyZmxvdyB8IG92ZXJmbG93LXkgfCBvdmVyZmxvdy14KVxyXG4gKiBAcGFyYW0gJHdpZHRoIEFuY2hvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIF9zY3JvbGxiYXIoKVxyXG4gKi9cbi8qKlxyXG4gKiBSZXN0YXVyYSB0b2RhcyBsYXMgcHJvcGllZGFkZXMsIGV4Y2VwdG8gdW5pY29kZS1iaWRpIHkgZGlyZWN0aW9uLCBhIHN1IHZhbG9yIGluaWNpYWwgbyBoZXJlZGFkby5cclxuICpcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIERpc3BsYXlcclxuICogQHBhcmFtICR2YWx1ZSBpbmhlcml0IHx8IGluaXRpYWwgfHwgdW5zZXRcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJlc2V0KCk7XHJcbiAqL1xuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xuLnJlYm91bmQtYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uLW5hbWU6IF9yZWJvdW5kLWFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB9XG5cbkBrZXlmcmFtZXMgX3JlYm91bmQtYW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIHRvcDogMHB4OyB9XG4gIDEwMCUge1xuICAgIHRvcDogNXB4OyB9IH1cblxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cbi5mbGlja2VyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IF9mbGlja2VyLWFtaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIF9mbGlja2VyLWFtaW1hdGlvbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogLjU7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5wcml2YXRlLXRlbXBsYXRlLWNvbnRlbnQge1xuICB3aWR0aDogNzc4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDAgMTJweCA1MHB4IDA7IH1cbiIsIi8vQ29sb3Jlc1xyXG5cclxuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXHJcbiRiZy1ib2R5OiAjZmZmICFkZWZhdWx0OyAvL0NvbG9yIGRlIGJhY2tncm91bmQgZGVsIGJvZHlcclxuXHJcbiAvKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXHJcbiRibGFjazogIzAwMCAhZGVmYXVsdDtcclxuIC8qKiBAY29sb3IgdHJhbnNwYXJlbnQgKi9cclxuJHRyYW5zcGFyZW50OiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuIC8qKiBAY29sb3IgYmx1ZSAqL1xyXG4kYmx1ZTogIzE0NjRmNiAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBpbmRpZ28gKi9cclxuJGluZGlnbzogIzY2MTBmMiAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBwdXJwbGUgKi9cclxuJHB1cnBsZTogIzZmNDJjMSAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBwaW5rICovXHJcbiRwaW5rOiAjZTgzZThjICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHJlZCAqL1xyXG4kcmVkOiAjZGMzNTQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIG9yYW5nZSAqL1xyXG4kb3JhbmdlOiAjZmQ3ZTE0ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHllbGxvdyAqL1xyXG4keWVsbG93OiAjZmZjMTA3ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyZWVuICovXHJcbiRncmVlbjogIzI4YTc0NSAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB0ZWFsICovXHJcbiR0ZWFsOiAjMjBjOTk3ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGN5YW4gKi9cclxuJGN5YW46ICMxN2EyYjggIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igd2hpdGUgKi9cclxuJHdoaXRlOiAjZmZmICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXkgKi9cclxuJGdyYXk6ICM2Yzc1N2QgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1sb3cgKi9cclxuJGdyYXktbG93OiAjZWNlZmY0ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXHJcbiRncmF5LW1lZGl1bTogI2VjZWNlZSAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWRhcmsgKi9cclxuJGdyYXktZGFyazogIzM0M2E0MCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBsaWdodCAqL1xyXG4kbGlnaHQ6ICNmOGY5ZmEgIWRlZmF1bHQ7XHJcblxyXG4vKiogQGNvbG9yIGNvbG9yLXNlY3VuZGFyeSAqL1xyXG4kY29sb3Itc2VjdW5kYXJ5OiAjM2I1OTk4O1xyXG5cclxuJGdyZWVuLWFwcDogI2E0OWMzYztcclxuJHllbGxvdy1hcHA6ICNmM2Q0MTQ7XHJcbiR5ZWxsb3ctbGlnaHQtYXBwOiByZ2JhKCR5ZWxsb3ctYXBwLCAuMTQpO1xyXG4kcmVkLWFwcDogI2NjMjQyNDtcclxuJGJyb3duLWFwcDogIzg0NDQ0NDtcclxuJHB1bXBraW46ICNmZjVkNTU7XHJcbiRncmVlbi1saWdodC1hcHA6ICNjYmU4YmE7XHJcbiRncmVlbi1saWdodDItYXBwOiAjZGZlZGQ2O1xyXG4kZ3JlZW4tZGFyay1hcHA6ICM0YzdhMzQ7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xyXG4kY29sb3ItcHJpbWFyeTogJGJsdWU7XHJcblxyXG4vKipcclxuICogQ29sb3Itc3VjY2VzcyBlcyB1dGlsaXphZG8gZW4gZXZlbnRvcyBzYXRpc2ZhY3Rvcmlvc1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itc3VjY2Vzc1xyXG4gKi9cclxuJGNvbG9yLXN1Y2Nlc3M6ICRncmVlbjtcclxuLyoqXHJcbiAqIENvbG9yLWluZm9cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWluZm9cclxuICovXHJcbiRjb2xvci1pbmZvOiAkY3lhbjtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xyXG4kY29sb3Itd2FybmluZzogJHllbGxvdztcclxuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xyXG4kY29sb3ItZGFuZ2VyOiAkcmVkO1xyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRsaWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiBkYXJrZW4oJGxpZ2h0LCAxMCUpO1xyXG4vKipcclxuICogQ29sb3ItZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFya1xyXG4gKi9cclxuJGNvbG9yLWRhcms6ICRncmF5LWRhcms7XHJcbi8qKlxyXG4gKiBDb2xvci1ncmF5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5XHJcbiAqL1xyXG4kY29sb3ItZ3JheTogJGdyYXk7XHJcbi8qKlxyXG4gKiBDb2xvci1ncmF5LWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXktZGFya1xyXG4gKi9cclxuJGNvbG9yLWdyYXktZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLXdoaXRlXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13aGl0ZVxyXG4gKi9cclxuJGNvbG9yLXdoaXRlOiAkd2hpdGU7XHJcbi8qKlxyXG4gKiBDb2xvci1ibGFja1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItYmxhY2tcclxuICovXHJcbiRjb2xvci1ibGFjazogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC1kZWZhdWx0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LWRlZmF1bHRcclxuICovXHJcbiRjb2xvci10ZXh0LWRlZmF1bHQ6ICRibGFjaztcclxuLyoqXHJcbiAqIENvbG9yLXRleHQtMlxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0yXHJcbiAqL1xyXG4kY29sb3ItdGV4dC0yOiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLXRleHQtM1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0zXHJcbiAqL1xyXG4kY29sb3ItdGV4dC0zOiAkZ3JheS1kYXJrO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cclxuJGNvbG9yLWxpZ2h0OiAkY29sb3ItbGlnaHQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cclxuJGNvbG9yLWxpZ2h0LWRhcmtlbjogJGNvbG9yLWxpZ2h0LWRhcmtlbjtcclxuXHJcblxyXG4kY29sb3ItMTogJGdyZWVuLWFwcDtcclxuJGNvbG9yLTI6ICR5ZWxsb3ctYXBwO1xyXG4kY29sb3ItMzogJHJlZC1hcHA7XHJcbiRjb2xvci00OiAkYnJvd24tYXBwO1xyXG4kY29sb3ItNTogJHllbGxvdy1saWdodC1hcHA7XHJcbiRjb2xvci02OiAkcHVtcGtpbjtcclxuXHJcbi8qKlxyXG5hcnJheSBvZiBjb2xvcnNcclxuKi9cclxuJGNvbG9yczogKFxyXG4gICAgJ2Rhbmdlcic6ICRjb2xvci1kYW5nZXIsXHJcbiAgICAnc3VjY2Vzcyc6ICRjb2xvci1zdWNjZXNzLFxyXG4gICAgJ3dhcm5pbmcnOiAkY29sb3Itd2FybmluZyxcclxuICAgICdwcmltYXJ5JzogJGNvbG9yLXByaW1hcnksXHJcbiAgICAnbGlnaHQnOiAkY29sb3ItbGlnaHQsXHJcbiAgICAnYmxhY2snOiAkY29sb3ItYmxhY2ssXHJcbiAgICAnd2hpdGUnOiAkY29sb3Itd2hpdGUsXHJcbiAgICAnaW5mbyc6ICRjb2xvci1pbmZvLFxyXG4gICAgJ2dyYXknOiAkY29sb3ItZ3JheSxcclxuICAgICdncmF5LWRhcmtlbic6ICRjb2xvci1saWdodC1kYXJrZW4sXHJcbiAgICAnZ3JheS1sb3cnOiAkZ3JheS1sb3csXHJcbiAgICAnYmctYm9keScgOiAkYmctYm9keSxcclxuICAgICd0cmFuc3BhcmVudCc6ICR0cmFuc3BhcmVudCxcclxuICAgICdibHVlJzogJGJsdWUsXHJcbiAgICAnaW5kaWdvJzogJGluZGlnbyxcclxuICAgICdwdXJwbGUnOiAkcHVycGxlLFxyXG4gICAgJ3BpbmsnOiAkcGluayxcclxuICAgICdyZWQnOiAkcmVkLFxyXG4gICAgJ29yYW5nZSc6ICRvcmFuZ2UsXHJcbiAgICAneWVsbG93JzogJHllbGxvdyxcclxuICAgICdncmVlbic6ICRncmVlbixcclxuICAgICd0ZWFsJzogJHRlYWwsXHJcbiAgICAnY3lhbic6ICRjeWFuLFxyXG4gICAgJ2dyYXktbWVkaXVtJzogJGdyYXktbWVkaXVtLFxyXG4gICAgJ2dyYXktZGFyayc6ICRncmF5LWRhcmssXHJcbiAgICAnY29sb3ItMSc6ICRjb2xvci0xLFxyXG4gICAgJ2NvbG9yLTInOiAkY29sb3ItMixcclxuICAgICdjb2xvci0zJzogJGNvbG9yLTMsXHJcbiAgICAnY29sb3ItNCc6ICRjb2xvci00LFxyXG4gICAgJ2NvbG9yLTUnOiAkY29sb3ItNSxcclxuICAgICdjb2xvci02JzogJGNvbG9yLTYsXHJcbiAgICAnZ3JlZW4tYXBwJzogJGdyZWVuLWFwcCxcclxuICAgICd5ZWxsb3ctYXBwJzogJHllbGxvdy1hcHAsXHJcbiAgICAneWVsbG93LWxpZ2h0LWFwcCc6ICR5ZWxsb3ctbGlnaHQtYXBwLFxyXG4gICAgJ3JlZC1hcHAnOiAkcmVkLWFwcCxcclxuICAgICdicm93bi1hcHAnOiAkYnJvd24tYXBwLFxyXG4gICAgJ3B1bXBraW4nOiAkcHVtcGtpbixcclxuICAgICdncmVlbi1saWdodCc6ICRncmVlbi1saWdodC1hcHAsXHJcbiAgICAnZ3JlZW4tZGFyayc6ICRncmVlbi1kYXJrLWFwcCxcclxuICAgICdncmVlbi1saWdodDInOiAkZ3JlZW4tbGlnaHQyLWFwcCxcclxuICApO1xyXG4iLCJcclxuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cclxuQGZ1bmN0aW9uIGNhbGN1bGF0ZS1yZW0oJHNpemUpIHtcclxuICAkcmVtLXNpemU6ICRzaXplIC8gJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIC8vRGVmYXVsdCBmb250IHNpemUgb24gaHRtbCBlbGVtZW50IGlzIDEwMCUsIGVxdWl2YWxlbnQgdG8gMTZweDtcclxuICBAcmV0dXJuICN7JHJlbS1zaXplfXJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGNob29zZS1jb25zdHJhc3QtY29sb3IoJGNvbG9yKSB7XHJcbiAgJHI6IHJlZCgkY29sb3IpO1xyXG4gICRnOiBncmVlbigkY29sb3IpO1xyXG4gICRiOiBibHVlKCRjb2xvcik7XHJcblxyXG4gJGx1bWluYW5jZTogKCgkcioyOTkpICsgKCRnKjU4NykgKyAoJGIqMTE0KSkvMTAwMDtcclxuXHJcbiAgQGlmICgkbHVtaW5hbmNlID49IDEyOCkge1xyXG4gICAgQHJldHVybiAjMDAwO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICNmZmY7XHJcbiAgfVxyXG59IiwiLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQW5jaG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQW5jaG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFuY2hvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAd2lkdGgtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gd2lkdGgtZHluYW1pYyAoJG1pbjogNSwgJG1heDogMTkyMCwgJHN0ZXA6IDUsICRjbGFzczogJ3cnKSB7XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICB3aWR0aDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LWR5bmFtaWMoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogMSwgJGNsYXNzOiAnaCcpIHtcclxuXHJcbiAgLiN7JGNsYXNzfS1hdXRvIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisncHgnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiBwb3JjZW50YWplc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiBoZWlnaHQtcGVyY2VudCAoJG1pbjogNSwgJG1heDogMTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnaCcpIHtcclxuXHJcbiAgLiN7JGNsYXNzfS1hdXRvIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn1wIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gdmhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtdmlld3BvcnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC12aWV3cG9ydCAoJG1pbjogNSwgJG1heDogMTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnaCcpIHtcclxuXHJcbiAgLiN7JGNsYXNzfS1hdXRvIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn12aCB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKyd2aCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQW5jaG9zIERpbmFtaWNvcyBlbiBwb3JjZW50YWplc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQW5jaG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFuY2hvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAd2lkdGgtcGVyY2VudCgpXHJcbiAqL1xyXG5AbWl4aW4gd2lkdGgtcGVyY2VudCAoJG1pbjogNSwgJG1heDogMTAwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgLiN7JGNsYXNzfS1hdXRvIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICB3aWR0aDogI3skbWluKyclJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXHJcbkBtaXhpbiByb3ctZHluYW1pYy1ub3QtY2FsYyAoJG1pbjogMSwgJG1heDogMTAwLCAkc3RlcDogMSwgJGNsYXNzOiAncm93Jykge1xyXG5cclxuICAmID4gKiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtZGVmYXVsdDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30tI3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcblxyXG4gICRzdGFydDogMDtcclxuICAkZW5kOiAxMDAwO1xyXG4gICRzOiA1O1xyXG4gIEB3aGlsZSAkc3RhcnQgPD0gJGVuZCB7XHJcbiAgICAuI3skY2xhc3N9LSN7MTAwfS0jeyRzdGFydH0ge1xyXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skc3RhcnQrJ3B4J30pO1xyXG4gICAgfVxyXG4gICAgJHN0YXJ0OiAkc3RhcnQgKyAkcztcclxuICB9XHJcblxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gbWFyZ2luLWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDUwMCwgJHN0ZXA6IDUsICRjbGFzczogJ20nKSB7XHJcbiAgLiN7JGNsYXNzfWxyLWF1dG8ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9dC0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLXRvcDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9bCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9bC0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfXIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ci0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31iI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWItI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW46ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc30tI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogLSgjezAgKyAkbWluKydweCd9KTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9dGIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICAgIG1hcmdpbi10b3A6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cclxuQG1peGluIHBhZGRpbmctZHluYW1pYyAoJG1pbjogMCwgJG1heDogMzAwLCAkc3RlcDogNSwgJGNsYXNzOiAncCcpIHtcclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc310I3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31iI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc30jeyRtaW59IHtcclxuICAgICAgcGFkZGluZzogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9dGIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICAgIHBhZGRpbmctdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sciN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtZW0oKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1lbSAoJG1pbjogMCwgJG1heDogNCwgJGNsYXNzOiAnZW0nKSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAuI3skY2xhc3N9LSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufWVtO1xyXG4gICAgICB9XHJcbiAgICAgICRjdXJyZW50LW1pbjogJGN1cnJlbnQtbWluICsgJHN0ZXA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLXJlbSAoJG1pbjogMCwgJG1heDogNCkge1xyXG4gIEBmb3IgJGkgZnJvbSAkbWluIHRocm91Z2ggJG1heCB7XHJcbiAgICAkY3VycmVudC1taW46IDA7XHJcbiAgICAkY3VycmVudC1tYXg6IDk7XHJcbiAgICAkc3RlcDogMTtcclxuICAgIEB3aGlsZSAkY3VycmVudC1taW4gPD0gJGN1cnJlbnQtbWF4IHtcclxuICAgICAgLnJlbS0jeyRpfS0jeyRjdXJyZW50LW1pbn0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogI3skaX0jeycuJ30jeyRjdXJyZW50LW1pbn1yZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcHhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLXB4KClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcHggKCRtaW46IDAsICRtYXg6IDUwKSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgIC5mb250LSN7JGl9LXB4IHtcclxuICAgICAgZm9udC1zaXplOiAjeyRpfXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUoJHNpemUpIHtcclxuICBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGFyYSBzdWJyYXlhZG8gY29uIGFuaW1hY2lvblxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRoZWlnaHQgYWx0b1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBwYXJhbSAkcHNldWRvLWVsZW1lbnQgcHNldWRvIGEgYWdyZWdhciBlbCBlc3RpbG9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGh2ci11bmRlcmxpbmUtZnJvbS1jZW50ZXIoKVxyXG4gKi9cclxuQG1peGluIGh2ci11bmRlcmxpbmUtZnJvbS1jZW50ZXIgKCAkaGVpZ2h0OiAxcHgsICRjb2xvcjogJGNvbG9yLXByaW1hcnksICRwc2V1ZG8tZWxlbWVudDogJzphZnRlcicpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDFweCkgdHJhbnNsYXRlWigwKTtcclxuICBib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICYjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgbGVmdDogNTElO1xyXG4gICAgcmlnaHQ6IDUxJTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQsIHJpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcclxuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcclxuICB9XHJcbiAgJi5hY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjpob3ZlciN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmZvY3VzI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6YWN0aXZlI3skcHNldWRvLWVsZW1lbnR9IHtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlIHBlcnNvbmFsaXphY2lvbiBkZSBzY3JvbGxcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkb3ZlcmZsb3cgc2Nyb2xsIGEgYXBsaWNhciBlbCBlc3RpbG8gKG92ZXJmbG93IHwgb3ZlcmZsb3cteSB8IG92ZXJmbG93LXgpXHJcbiAqIEBwYXJhbSAkd2lkdGggQW5jaG9cclxuICogQHBhcmFtICRjb2xvciBDb2xvclxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgX3Njcm9sbGJhcigpXHJcbiAqL1xyXG5AbWl4aW4gX3Njcm9sbGJhciAoJG92ZXJmbG93OiAnb3ZlcmZsb3cnLCAkd2lkdGg6IDEwcHgsICRjb2xvcjogJGNvbG9yLWxpZ2h0LWRhcmtlbikge1xyXG5cclxuICAjeyRvdmVyZmxvd306IHNjcm9sbDtcclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9XHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gICAgICBib3gtc2hhZG93OiAgMCAwIDZweCByZ2JhKCRjb2xvciwgMC41KTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc3RhdXJhIHRvZGFzIGxhcyBwcm9waWVkYWRlcywgZXhjZXB0byB1bmljb2RlLWJpZGkgeSBkaXJlY3Rpb24sIGEgc3UgdmFsb3IgaW5pY2lhbCBvIGhlcmVkYWRvLlxyXG4gKlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRGlzcGxheVxyXG4gKiBAcGFyYW0gJHZhbHVlIGluaGVyaXQgfHwgaW5pdGlhbCB8fCB1bnNldFxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcmVzZXQoKTtcclxuICovXHJcbiBAbWl4aW4gcmVzZXQoJHZhbHVlOiBpbml0aWFsKSB7XHJcbiAgYWxsOiAkdmFsdWU7XHJcbiAgZGlzcGxheTogaW5pdGlhbDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZGVmYXVsdDtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtZGVmYXVsdDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufSIsIi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cclxuLnJlYm91bmQtYW5pbWF0aW9ue1xyXG4gIGFuaW1hdGlvbi1uYW1lOl9yZWJvdW5kLWFuaW1hdGlvbjtcclxuICBhbmltYXRpb24tZHVyYXRpb246IC41cztcclxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XHJcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcblxyXG4gIEBrZXlmcmFtZXMgX3JlYm91bmQtYW5pbWF0aW9uIHtcclxuICAgIDAle1xyXG4gICAgICB0b3A6MHB4O1xyXG4gICAgfVxyXG4gICAgMTAwJXtcclxuICAgICAgdG9wOjVweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXHJcbi5mbGlja2VyIHtcclxuICBhbmltYXRpb24tbmFtZTogX2ZsaWNrZXItYW1pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XHJcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG5cclxuICBAa2V5ZnJhbWVzIF9mbGlja2VyLWFtaW1hdGlvbiB7XHJcbiAgICAwJSB7IG9wYWNpdHk6IDE7IH1cclxuICAgIDUwJSB7IG9wYWNpdHk6IC41OyB9XHJcbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gIH1cclxufVxyXG5cclxuIiwiQGltcG9ydCAnfnNyYy9zY3NzL2NvbmZpZ3MnO1xyXG5cclxuLnByaXZhdGUtdGVtcGxhdGUtY29udGVudCB7XHJcbiAgd2lkdGg6ICR3aWR0aC1wcml2YXRlLXRlbXBsYXRlLWNvbnRlbnQgKyAxMHB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBwYWRkaW5nOiAwICR3aWR0aC1zY3JvbGxiYXIgNTBweCAwO1xyXG4gIC8vIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XHJcbiAgLy8gbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcclxuICAvLyBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XHJcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-private-template-content',\r\n templateUrl: './content.component.html',\r\n styleUrls: ['./content.component.scss']\r\n})\r\nexport class ContentComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"

\\r\\n footer works!\\r\\n

\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3ByaXZhdGUvdGVtcGxhdGUvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-private-template-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\\"\\\"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.container-private-main-header {\\n position: relative;\\n margin-top: 10px; }\\n.container-private-main-header:after {\\n position: absolute;\\n right: 0;\\n bottom: 3px;\\n content: '';\\n width: calc(100% - 63px);\\n height: 1px;\\n background-color: #844444;\\n z-index: 1; }\\n.container-private-main-header .logo {\\n position: relative;\\n z-index: 2; }\\n.main-menu {\\n display: block;\\n width: 100%;\\n list-style: none;\\n list-style-position: inside;\\n margin-bottom: 15px; }\\n.main-menu li {\\n display: inline-block;\\n margin-right: 50px;\\n text-align: center;\\n margin-top: 10px;\\n opacity: .5;\\n transition: all .5s; }\\n.main-menu li:hover:not([class=\\\"active\\\"]) {\\n cursor: pointer; }\\n.main-menu li:hover, .main-menu li.active {\\n opacity: 1;\\n -webkit-transform: scale(1.3);\\n transform: scale(1.3); }\\n.main-menu li.active a {\\n cursor: initial; }\\n.logout {\\n opacity: .5;\\n cursor: pointer; }\\n.logout:hover {\\n opacity: 1; }\\n@media print {\\n .container-private-main-header {\\n display: none !important; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2hlYWRlci9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2hlYWRlci9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9jb2xvcnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2hlYWRlci9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mdW5jdGlvbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2hlYWRlci9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9taXhpbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9jb21wb25lbnRzL2hlYWRlci9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9hbmltYXRpb25zLnNjc3MiLCJzcmMvYXBwL3ByaXZhdGUvdGVtcGxhdGUvY29tcG9uZW50cy9oZWFkZXIvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxhcHBcXHByaXZhdGVcXHRlbXBsYXRlXFxjb21wb25lbnRzXFxoZWFkZXJcXGhlYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEVBQVk7QUNBWixpQkFBaUI7QUNFakI7Ozs7b0JBSW9CO0FBR25CLHlCQUF5QjtBQUV6Qix5QkFBeUI7QUFFekIsa0JBQWtCO0FBRW5CLG9CQUFvQjtBQUVwQixvQkFBb0I7QUFFcEIsa0JBQWtCO0FBRWxCLGlCQUFpQjtBQUVqQixv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WDtBQUdIO0VBQ0UsZUFBYztFQUNkLFlBQVc7RUFDWCxpQkFBZ0I7RUFDaEIsNEJBQTJCO0VBQzNCLG9CQUFtQixFQXlCcEI7QUE5QkQ7SUFRSSxzQkFBcUI7SUFDckIsbUJBQWtCO0lBQ2xCLG1CQUFrQjtJQUNsQixpQkFBZ0I7SUFDaEIsWUFBVztJQUNYLG9CQUFtQixFQWVwQjtBQTVCSDtNQWdCTSxnQkFBZSxFQUNoQjtBQWpCTDtNQXFCTSxXQUFVO01BQ1YsOEJBQXFCO2NBQXJCLHNCQUFxQixFQUN0QjtBQXZCTDtNQTBCTSxnQkFBZSxFQUNoQjtBQUtMO0VBQ0UsWUFBVztFQUNYLGdCQUFlLEVBS2hCO0FBUEQ7SUFLSSxXQUFVLEVBQ1g7QUFJSDtFQUNFO0lBQ0UseUJBQXdCLEVBQ3pCLEVBQUEiLCJmaWxlIjoic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNzAwJyk7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIE9ibGlxdWUnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLUJvbGRPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXHJcbiRmb250LWRlZmF1bHQ6ICdIZWx2ZXRpY2EnLCAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXHJcbiRmb250LXNlY29uZGFyeTogJ0NhbGlicmknLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xyXG4kZm9udC1hcmlhbDogJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xyXG4kZm9udC1yb2JvdG86ICdSb2JvdG8nLCAnQ2FsaWJyaScsICdBcmlhbCc7XHJcblxyXG5cclxuJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWU6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XHJcbiRmb250LWhlbHZldGljYS1ib2xkOiAnSGVsdmV0aWNhIEJvbGQnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlOiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcblxyXG4vKipcclxuICogZm9udC10aGluXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdGhpblxyXG4gKi9cclxuJGZvbnQtdGhpbjogMTAwO1xyXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xyXG4kZm9udC1saWdodDogMzAwO1xyXG4vKipcclxuICogZm9udC1yZWd1bGFyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcmVndWxhclxyXG4gKi9cclxuJGZvbnQtcmVndWxhcjogNDAwO1xyXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXHJcbiRmb250LW1lZGl1bTogNTAwO1xyXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXHJcbiRmb250LXNlbWktYm9sZDogNjAwO1xyXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cclxuJGZvbnQtYm9sZDogNzAwO1xyXG4vKipcclxuICogZm9udC11bHRyYS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdWx0cmEtYm9sZFxyXG4gKi9cclxuJGZvbnQtdWx0cmEtYm9sZDogOTAwO1xyXG5cclxuJGZvbnRzOiAoXHJcbiAgJ2RlZmF1bHQnOiAkZm9udC1kZWZhdWx0LFxyXG4gICdzZWNvbmRhcnknOiAkZm9udC1zZWNvbmRhcnksXHJcbiAgJ2FyaWFsJzogJGZvbnQtYXJpYWwsXHJcbiAgJ3JvYm90byc6ICRmb250LXJvYm90byxcclxuICAnaGVsdmV0aWNhLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2Etb2JsaXF1ZSxcclxuICAnaGVsdmV0aWNhLWJvbGQnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZCxcclxuICAnaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZSc6ICRmb250LWhlbHZldGljYS1ib2xkLW9ibGlxdWUsXHJcbik7XHJcblxyXG5cclxuXHJcbiRmb250cy13ZWlnaHRzOiAoXHJcbiAndGhpbic6ICRmb250LXRoaW4sXHJcbiAnbGlnaHQnOiAkZm9udC1saWdodCxcclxuICdyZWd1bGFyJzogJGZvbnQtcmVndWxhcixcclxuICdtZWRpdW0nOiAkZm9udC1tZWRpdW0sXHJcbiAnc2VtaS1ib2xkJzogJGZvbnQtc2VtaS1ib2xkLFxyXG4gJ2JvbGQnOiAkZm9udC1ib2xkLFxyXG4gJ3VsdHJhLWJvbGQnOiAkZm9udC11bHRyYS1ib2xkLFxyXG4pO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cbi8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cbi8qKiBAY29sb3IgdHJhbnNwYXJlbnQgKi9cbi8qKiBAY29sb3IgYmx1ZSAqL1xuLyoqIEBjb2xvciBpbmRpZ28gKi9cbi8qKiBAY29sb3IgcHVycGxlICovXG4vKiogQGNvbG9yIHBpbmsgKi9cbi8qKiBAY29sb3IgcmVkICovXG4vKiogQGNvbG9yIG9yYW5nZSAqL1xuLyoqIEBjb2xvciB5ZWxsb3cgKi9cbi8qKiBAY29sb3IgZ3JlZW4gKi9cbi8qKiBAY29sb3IgdGVhbCAqL1xuLyoqIEBjb2xvciBjeWFuICovXG4vKiogQGNvbG9yIHdoaXRlICovXG4vKiogQGNvbG9yIGdyYXkgKi9cbi8qKiBAY29sb3IgZ3JheS1sb3cgKi9cbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cbi8qKiBAY29sb3IgZ3JheS1kYXJrICovXG4vKiogQGNvbG9yIGxpZ2h0ICovXG4vKiogQGNvbG9yIGNvbG9yLXNlY3VuZGFyeSAqL1xuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXG4vKipcclxuICogQ29sb3Itc3VjY2VzcyBlcyB1dGlsaXphZG8gZW4gZXZlbnRvcyBzYXRpc2ZhY3Rvcmlvc1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itc3VjY2Vzc1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1pbmZvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1pbmZvXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheVxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1ncmF5LWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXktZGFya1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13aGl0ZVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itd2hpdGVcclxuICovXG4vKipcclxuICogQ29sb3ItYmxhY2tcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWJsYWNrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC1kZWZhdWx0XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtMlxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0yXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtM1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0zXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG5hcnJheSBvZiBjb2xvcnNcclxuKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMFwiKTtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBPYmxpcXVlXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLUJvbGRPYmxpcXVlLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG4vKipcclxuICogZm9udC1kZWZhdWx0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXNlY29uZGFyeVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXNlY29uZGFyeVxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWFyaWFsXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYXJpYWxcclxuICovXG4vKipcclxuICogZm9udC1yb2JvdG9cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1yb2JvdG9cclxuICovXG4vKipcclxuICogZm9udC10aGluXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdGhpblxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbGlnaHRcclxuICovXG4vKipcclxuICogZm9udC1yZWd1bGFyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcmVndWxhclxyXG4gKi9cbi8qKlxyXG4gKiBmb250LW1lZGl1bVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LW1lZGl1bVxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXNlbWktYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXNlbWktYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQW5jaG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQW5jaG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFuY2hvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAd2lkdGgtZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiBwb3JjZW50YWplc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gdmhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtdmlld3BvcnQoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLXBlcmNlbnQoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtZW0oKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHB4XHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1weCgpXHJcbiAqL1xuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlIHBhcmEgc3VicmF5YWRvIGNvbiBhbmltYWNpb25cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkaGVpZ2h0IGFsdG9cclxuICogQHBhcmFtICRjb2xvciBDb2xvclxyXG4gKiBAcGFyYW0gJHBzZXVkby1lbGVtZW50IHBzZXVkbyBhIGFncmVnYXIgZWwgZXN0aWxvXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBodnItdW5kZXJsaW5lLWZyb20tY2VudGVyKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwZXJzb25hbGl6YWNpb24gZGUgc2Nyb2xsXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG92ZXJmbG93IHNjcm9sbCBhIGFwbGljYXIgZWwgZXN0aWxvIChvdmVyZmxvdyB8IG92ZXJmbG93LXkgfCBvdmVyZmxvdy14KVxyXG4gKiBAcGFyYW0gJHdpZHRoIEFuY2hvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIF9zY3JvbGxiYXIoKVxyXG4gKi9cbi8qKlxyXG4gKiBSZXN0YXVyYSB0b2RhcyBsYXMgcHJvcGllZGFkZXMsIGV4Y2VwdG8gdW5pY29kZS1iaWRpIHkgZGlyZWN0aW9uLCBhIHN1IHZhbG9yIGluaWNpYWwgbyBoZXJlZGFkby5cclxuICpcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIERpc3BsYXlcclxuICogQHBhcmFtICR2YWx1ZSBpbmhlcml0IHx8IGluaXRpYWwgfHwgdW5zZXRcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJlc2V0KCk7XHJcbiAqL1xuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xuLnJlYm91bmQtYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uLW5hbWU6IF9yZWJvdW5kLWFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB9XG5cbkBrZXlmcmFtZXMgX3JlYm91bmQtYW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIHRvcDogMHB4OyB9XG4gIDEwMCUge1xuICAgIHRvcDogNXB4OyB9IH1cblxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cbi5mbGlja2VyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IF9mbGlja2VyLWFtaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIF9mbGlja2VyLWFtaW1hdGlvbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogLjU7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5jb250YWluZXItcHJpdmF0ZS1tYWluLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAuY29udGFpbmVyLXByaXZhdGUtbWFpbi1oZWFkZXI6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDNweDtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNjNweCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg0NDQ0NDtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5jb250YWluZXItcHJpdmF0ZS1tYWluLWhlYWRlciAubG9nbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cblxuLm1haW4tbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIC5tYWluLW1lbnUgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgdHJhbnNpdGlvbjogYWxsIC41czsgfVxuICAgIC5tYWluLW1lbnUgbGk6aG92ZXI6bm90KFtjbGFzcz1cImFjdGl2ZVwiXSkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLm1haW4tbWVudSBsaTpob3ZlciwgLm1haW4tbWVudSBsaS5hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTsgfVxuICAgIC5tYWluLW1lbnUgbGkuYWN0aXZlIGEge1xuICAgICAgY3Vyc29yOiBpbml0aWFsOyB9XG5cbi5sb2dvdXQge1xuICBvcGFjaXR5OiAuNTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5sb2dvdXQ6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgLmNvbnRhaW5lci1wcml2YXRlLW1haW4taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4uY29udGFpbmVyLXByaXZhdGUtbWFpbi1oZWFkZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAzcHg7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2M3B4KTtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLTQ7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gIH1cclxuXHJcbiAgLmxvZ28ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuICB9XHJcbn1cclxuXHJcbi5tYWluLW1lbnUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xyXG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4gIGxpIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi1yaWdodDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBvcGFjaXR5OiAuNTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XHJcblxyXG4gICAgJjpob3Zlcjpub3QoW2NsYXNzPVwiYWN0aXZlXCJdKSB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hY3RpdmUgYSB7XHJcbiAgICAgIGN1cnNvcjogaW5pdGlhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ubG9nb3V0IHtcclxuICBvcGFjaXR5OiAuNTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgcHJpbnQge1xyXG4gIC5jb250YWluZXItcHJpdmF0ZS1tYWluLWhlYWRlciB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { constant } from 'src/app/app.constants';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-private-template-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n logout() {\r\n localStorage.removeItem(constant.auth.keys.token);\r\n this.router.navigateByUrl('');\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n.template-private {\\n max-width: 1366px;\\n margin: auto; }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL3RlbXBsYXRlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX2NvbG9ycy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX2Z1bmN0aW9ucy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX21peGlucy5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX2FuaW1hdGlvbnMuc2NzcyIsInNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXGFwcFxccHJpdmF0ZVxcdGVtcGxhdGVcXHRlbXBsYXRlLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9wcml2YXRlL3RlbXBsYXRlL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcc2Nzc1xcX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRUFBWTtBQ0FaLGlCQUFpQjtBQ0VqQjs7OztvQkFJb0I7QUFHbkIseUJBQXlCO0FBRXpCLHlCQUF5QjtBQUV6QixrQkFBa0I7QUFFbkIsb0JBQW9CO0FBRXBCLG9CQUFvQjtBQUVwQixrQkFBa0I7QUFFbEIsaUJBQWlCO0FBRWpCLG9CQUFvQjtBQUVwQixvQkFBb0I7QUFFcEIsbUJBQW1CO0FBRW5CLGtCQUFrQjtBQUVsQixrQkFBa0I7QUFFbEIsbUJBQW1CO0FBRW5CLGtCQUFrQjtBQUVsQixzQkFBc0I7QUFFdEIseUJBQXlCO0FBRXpCLHVCQUF1QjtBQUV2QixtQkFBbUI7QUFHbkIsNkJBQTZCO0FBZTdCOzs7OztHQUtHO0FBR0g7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUdIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUdIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFXSDs7RUFFRTtBRmhNRjtFQUNFLHlCQUF3QjtFQUN4QixtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLDhEQUF3RixFQUFBO0FBRzFGO0VBQ0UsaUNBQWdDO0VBQ2hDLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsOEVBQXdHLEVBQUE7QUFHMUc7RUFDRSw4QkFBNkI7RUFDN0IsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQixtRUFBNkYsRUFBQTtBQUcvRjtFQUNFLHNDQUFxQztFQUNyQyxtQkFBa0I7RUFDbEIsb0JBQW1CO0VBQ25CLHVGQUFpSCxFQUFBO0FBR25IOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBUUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUc5R0g7Ozs7OztHQU1HO0FDUEg7Ozs7Ozs7Ozs7R0FVRztBQVdIOzs7Ozs7Ozs7O0dBVUc7QUFlSDs7Ozs7Ozs7OztHQVVHO0FBZ0JIOzs7Ozs7Ozs7O0dBVUc7QUFlSDs7Ozs7Ozs7OztHQVVHO0FBZUg7Ozs7Ozs7Ozs7R0FVRztBQTRCSDs7Ozs7Ozs7OztHQVVHO0FBNkRIOzs7Ozs7Ozs7O0dBVUc7QUFxQ0g7Ozs7Ozs7OztHQVNHO0FBZUg7Ozs7Ozs7O0dBUUc7QUFlSDs7Ozs7Ozs7R0FRRztBQVVIOzs7Ozs7O0dBT0c7QUFNSDs7Ozs7Ozs7O0dBU0c7QUErQkg7Ozs7Ozs7OztHQVNHO0FBb0JIOzs7Ozs7OztHQVFHO0FDamJIOzs7Ozs7OztHQVFHO0FBQ0g7RUFDRSwyQ0FBaUM7VUFBakMsbUNBQWlDO0VBQ2pDLGdDQUF1QjtVQUF2Qix3QkFBdUI7RUFDdkIsNENBQW1DO1VBQW5DLG9DQUFtQztFQUNuQyx1Q0FBOEI7VUFBOUIsK0JBQThCO0VBQzlCLCtDQUFzQztVQUF0Qyx1Q0FBc0MsRUFVdkM7QUFSQztFQUNFO0lBQ0UsU0FBTyxFQUFBO0VBRVQ7SUFDRSxTQUFPLEVBQUEsRUFBQTtBQUxYO0VBQ0U7SUFDRSxTQUFPLEVBQUE7RUFFVDtJQUNFLFNBQU8sRUFBQSxFQUFBO0FBS2I7Ozs7Ozs7O0dBUUc7QUFDSDtFQUNFLDJDQUFrQztVQUFsQyxtQ0FBa0M7RUFDbEMsK0JBQXNCO1VBQXRCLHVCQUFzQjtFQUN0QiwwQ0FBaUM7VUFBakMsa0NBQWlDO0VBQ2pDLDRDQUFtQztVQUFuQyxvQ0FBbUMsRUFPcEM7QUFMQztFQUNFO0lBQUssV0FBVSxFQUFBO0VBQ2Y7SUFBTSxZQUFXLEVBQUE7RUFDakI7SUFBTyxXQUFVLEVBQUEsRUFBQTtBQUhuQjtFQUNFO0lBQUssV0FBVSxFQUFBO0VBQ2Y7SUFBTSxZQUFXLEVBQUE7RUFDakI7SUFBTyxXQUFVLEVBQUEsRUFBQTtBQzFDckI7RUFDRSxrQkNBZ0I7RURDaEIsYUFBWSxFQUNiIiwiZmlsZSI6InNyYy9hcHAvcHJpdmF0ZS90ZW1wbGF0ZS90ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNzAwJyk7XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIE9ibGlxdWUnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLUJvbGRPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXHJcbiRmb250LWRlZmF1bHQ6ICdIZWx2ZXRpY2EnLCAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXHJcbiRmb250LXNlY29uZGFyeTogJ0NhbGlicmknLCAnQXJpYWwnLCBzYW5zLXNlcmlmO1xyXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xyXG4kZm9udC1hcmlhbDogJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xyXG4kZm9udC1yb2JvdG86ICdSb2JvdG8nLCAnQ2FsaWJyaScsICdBcmlhbCc7XHJcblxyXG5cclxuJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWU6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XHJcbiRmb250LWhlbHZldGljYS1ib2xkOiAnSGVsdmV0aWNhIEJvbGQnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlOiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcblxyXG4vKipcclxuICogZm9udC10aGluXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdGhpblxyXG4gKi9cclxuJGZvbnQtdGhpbjogMTAwO1xyXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xyXG4kZm9udC1saWdodDogMzAwO1xyXG4vKipcclxuICogZm9udC1yZWd1bGFyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcmVndWxhclxyXG4gKi9cclxuJGZvbnQtcmVndWxhcjogNDAwO1xyXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXHJcbiRmb250LW1lZGl1bTogNTAwO1xyXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXHJcbiRmb250LXNlbWktYm9sZDogNjAwO1xyXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cclxuJGZvbnQtYm9sZDogNzAwO1xyXG4vKipcclxuICogZm9udC11bHRyYS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdWx0cmEtYm9sZFxyXG4gKi9cclxuJGZvbnQtdWx0cmEtYm9sZDogOTAwO1xyXG5cclxuJGZvbnRzOiAoXHJcbiAgJ2RlZmF1bHQnOiAkZm9udC1kZWZhdWx0LFxyXG4gICdzZWNvbmRhcnknOiAkZm9udC1zZWNvbmRhcnksXHJcbiAgJ2FyaWFsJzogJGZvbnQtYXJpYWwsXHJcbiAgJ3JvYm90byc6ICRmb250LXJvYm90byxcclxuICAnaGVsdmV0aWNhLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2Etb2JsaXF1ZSxcclxuICAnaGVsdmV0aWNhLWJvbGQnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZCxcclxuICAnaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZSc6ICRmb250LWhlbHZldGljYS1ib2xkLW9ibGlxdWUsXHJcbik7XHJcblxyXG5cclxuXHJcbiRmb250cy13ZWlnaHRzOiAoXHJcbiAndGhpbic6ICRmb250LXRoaW4sXHJcbiAnbGlnaHQnOiAkZm9udC1saWdodCxcclxuICdyZWd1bGFyJzogJGZvbnQtcmVndWxhcixcclxuICdtZWRpdW0nOiAkZm9udC1tZWRpdW0sXHJcbiAnc2VtaS1ib2xkJzogJGZvbnQtc2VtaS1ib2xkLFxyXG4gJ2JvbGQnOiAkZm9udC1ib2xkLFxyXG4gJ3VsdHJhLWJvbGQnOiAkZm9udC11bHRyYS1ib2xkLFxyXG4pO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cbi8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cbi8qKiBAY29sb3IgdHJhbnNwYXJlbnQgKi9cbi8qKiBAY29sb3IgYmx1ZSAqL1xuLyoqIEBjb2xvciBpbmRpZ28gKi9cbi8qKiBAY29sb3IgcHVycGxlICovXG4vKiogQGNvbG9yIHBpbmsgKi9cbi8qKiBAY29sb3IgcmVkICovXG4vKiogQGNvbG9yIG9yYW5nZSAqL1xuLyoqIEBjb2xvciB5ZWxsb3cgKi9cbi8qKiBAY29sb3IgZ3JlZW4gKi9cbi8qKiBAY29sb3IgdGVhbCAqL1xuLyoqIEBjb2xvciBjeWFuICovXG4vKiogQGNvbG9yIHdoaXRlICovXG4vKiogQGNvbG9yIGdyYXkgKi9cbi8qKiBAY29sb3IgZ3JheS1sb3cgKi9cbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cbi8qKiBAY29sb3IgZ3JheS1kYXJrICovXG4vKiogQGNvbG9yIGxpZ2h0ICovXG4vKiogQGNvbG9yIGNvbG9yLXNlY3VuZGFyeSAqL1xuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXG4vKipcclxuICogQ29sb3Itc3VjY2VzcyBlcyB1dGlsaXphZG8gZW4gZXZlbnRvcyBzYXRpc2ZhY3Rvcmlvc1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itc3VjY2Vzc1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1pbmZvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1pbmZvXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheVxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1ncmF5LWRhcmtcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXktZGFya1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13aGl0ZVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3Itd2hpdGVcclxuICovXG4vKipcclxuICogQ29sb3ItYmxhY2tcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWJsYWNrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC1kZWZhdWx0XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtMlxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0yXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXRleHQtM1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItdGV4dC0zXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG5hcnJheSBvZiBjb2xvcnNcclxuKi9cbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMFwiKTtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBPYmxpcXVlXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgQm9sZCBPYmxpcXVlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLUJvbGRPYmxpcXVlLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTsgfVxuXG4vKipcclxuICogZm9udC1kZWZhdWx0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXNlY29uZGFyeVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXNlY29uZGFyeVxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWFyaWFsXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYXJpYWxcclxuICovXG4vKipcclxuICogZm9udC1yb2JvdG9cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1yb2JvdG9cclxuICovXG4vKipcclxuICogZm9udC10aGluXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtdGhpblxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbGlnaHRcclxuICovXG4vKipcclxuICogZm9udC1yZWd1bGFyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcmVndWxhclxyXG4gKi9cbi8qKlxyXG4gKiBmb250LW1lZGl1bVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LW1lZGl1bVxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXNlbWktYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXNlbWktYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQW5jaG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQW5jaG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFuY2hvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAd2lkdGgtZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiBwb3JjZW50YWplc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gdmhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtdmlld3BvcnQoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLXBlcmNlbnQoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtZW0oKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHB4XHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1weCgpXHJcbiAqL1xuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlIHBhcmEgc3VicmF5YWRvIGNvbiBhbmltYWNpb25cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkaGVpZ2h0IGFsdG9cclxuICogQHBhcmFtICRjb2xvciBDb2xvclxyXG4gKiBAcGFyYW0gJHBzZXVkby1lbGVtZW50IHBzZXVkbyBhIGFncmVnYXIgZWwgZXN0aWxvXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBodnItdW5kZXJsaW5lLWZyb20tY2VudGVyKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwZXJzb25hbGl6YWNpb24gZGUgc2Nyb2xsXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG92ZXJmbG93IHNjcm9sbCBhIGFwbGljYXIgZWwgZXN0aWxvIChvdmVyZmxvdyB8IG92ZXJmbG93LXkgfCBvdmVyZmxvdy14KVxyXG4gKiBAcGFyYW0gJHdpZHRoIEFuY2hvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIF9zY3JvbGxiYXIoKVxyXG4gKi9cbi8qKlxyXG4gKiBSZXN0YXVyYSB0b2RhcyBsYXMgcHJvcGllZGFkZXMsIGV4Y2VwdG8gdW5pY29kZS1iaWRpIHkgZGlyZWN0aW9uLCBhIHN1IHZhbG9yIGluaWNpYWwgbyBoZXJlZGFkby5cclxuICpcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIERpc3BsYXlcclxuICogQHBhcmFtICR2YWx1ZSBpbmhlcml0IHx8IGluaXRpYWwgfHwgdW5zZXRcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJlc2V0KCk7XHJcbiAqL1xuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xuLnJlYm91bmQtYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uLW5hbWU6IF9yZWJvdW5kLWFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB9XG5cbkBrZXlmcmFtZXMgX3JlYm91bmQtYW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIHRvcDogMHB4OyB9XG4gIDEwMCUge1xuICAgIHRvcDogNXB4OyB9IH1cblxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cbi5mbGlja2VyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IF9mbGlja2VyLWFtaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIF9mbGlja2VyLWFtaW1hdGlvbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogLjU7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi50ZW1wbGF0ZS1wcml2YXRlIHtcbiAgbWF4LXdpZHRoOiAxMzY2cHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4udGVtcGxhdGUtcHJpdmF0ZSB7XHJcbiAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xyXG4gIG1hcmdpbjogYXV0bztcclxufSIsIi8vVmFyaWJsZXMgZ2xvYmFsZXNcclxuXHJcbiR3aWR0aC1wcml2YXRlLXRlbXBsYXRlLWNvbnRlbnQ6IDc2OHB4O1xyXG4kbWF4LXdpZHRoOiAxMzY2cHggIWRlZmF1bHQ7IC8vTWF4aW1vIGFuY2hvIGRlIGNvbnRlbmRvciBwcmluY2lwYWxcclxuJGZvbnQtc2l6ZS1kZWZhdWx0OiAxNHB4O1xyXG4kc2l6ZS10aXRsZTogJGZvbnQtc2l6ZS1kZWZhdWx0ICsgOHB4O1xyXG5cclxuJGgtbGF5b3V0LW1haW4taGVhZGVyOiA1MHB4OyAvL0FsdG8gZGVsIGhlYWRlciBwcmluY2lwYWxcclxuJHctbGF5b3V0LW1haW4tYXNpZGU6IDgwcHg7IC8vQW5jaG8gZGVsIG1lbnVcclxuXHJcbiR0aW1lLXRyYW5zaXRpb24tYXNpZGUtbWVudTogMC4zcztcclxuJG1haW4taWRlbnQ6IDMwcHg7XHJcblxyXG5cclxuJHdpZHRoLXNjcm9sbGJhcjogMTJweDsgLy9BbmNobyBkZSBsb3Mgc2Nyb2xsc1xyXG4kd2lkdGgtc2Nyb2xsYmFyLXNtYWxsOiAycHg7IC8vQW5jaG8gZGUgbG9zIHNjcm9sbHMgc21hbGxcclxuXHJcbiRoZWlnaHQtaW5wdXQ6IDM1cHg7XHJcbiRoZWlnaHQtaW5wdXQtc21hbGw6IDI1cHg7XHJcblxyXG4kcGFkZGluZy10b3AtbWFpbi1jb250ZW50OiA1cHg7XHJcbiRwYWRkaW5nLWJvdHRvbS1tYWluLWNvbnRlbnQ6IDVweDtcclxuJHBhZGRpbmctbGVmdC1tYWluLWNvbnRlbnQ6IDEwcHg7XHJcbiRwYWRkaW5nLXJpZ2h0LW1haW4tY29udGVudDogMDtcclxuXHJcbiRwYWRkaW5nLW1haW4tY29udGVudDpcclxuJHBhZGRpbmctdG9wLW1haW4tY29udGVudFxyXG4kcGFkZGluZy1yaWdodC1tYWluLWNvbnRlbnRcclxuJHBhZGRpbmctYm90dG9tLW1haW4tY29udGVudFxyXG4kcGFkZGluZy1sZWZ0LW1haW4tY29udGVudDtcclxuXHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-private-template',\r\n templateUrl: './template.component.html',\r\n styleUrls: ['./template.component.scss']\r\n})\r\nexport class TemplateComponent implements OnInit {\r\n\r\n activeMenu: boolean;\r\n\r\n constructor(router: Router) {\r\n\r\n router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.activeMenu = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AuthenticationService } from 'src/app/services/authentication/authentication.service';\r\nimport { InlineSVGModule } from 'ng-inline-svg';\r\nimport { TemplateComponent } from './template.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { AsideComponent } from './components/aside/aside.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { ContentComponent } from './components/content/content.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n InlineSVGModule\r\n ],\r\n declarations: [\r\n TemplateComponent,\r\n HeaderComponent,\r\n AsideComponent,\r\n FooterComponent,\r\n ContentComponent\r\n ],\r\n providers: [\r\n AuthenticationService\r\n ]\r\n})\r\nexport class TemplateModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { LoginComponent } from './components/login/login.component';\r\n\r\nconst routes: Routes = [{\r\n path: '',\r\n component: LoginComponent\r\n}];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AuthenticationRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AuthenticationRoutingModule } from './authentication-routing.module';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { InlineSVGModule } from 'ng-inline-svg';\r\nimport { AuthenticationService } from 'src/app/services/authentication/authentication.service';\r\nimport { ProgressBarModule } from 'src/app/utils/progress-bar/progress-bar.module';\r\n\r\n@NgModule({\r\n declarations: [LoginComponent],\r\n imports: [\r\n CommonModule,\r\n AuthenticationRoutingModule,\r\n InlineSVGModule.forRoot(),\r\n FormsModule,\r\n ProgressBarModule\r\n ],\r\n providers: [AuthenticationService]\r\n})\r\nexport class AuthenticationModule { }\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3B1YmxpYy9tb2R1bGVzL2F1dGhlbnRpY2F0aW9uL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, AfterViewInit } from '@angular/core';\r\nimport { LoginInterface } from './login-interface';\r\nimport { AuthenticationService } from 'src/app/services/authentication/authentication.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { constant } from 'src/app/app.constants';\r\n\r\n@Component({\r\n selector: 'app-public-authentication-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n onLogin: boolean;\r\n\r\n login: LoginInterface = {\r\n username: '',\r\n password: ''\r\n };\r\n\r\n constructor(\r\n private _auth: AuthenticationService,\r\n private _toastr: ToastrService,\r\n private router: Router\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n /**\r\n * @description Solicitud de login\r\n */\r\n onSubmit(event) {\r\n this.onLogin = true;\r\n return this._auth\r\n .login(this.login)\r\n .pipe(\r\n finalize(() => {\r\n this.onLogin = false;\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n localStorage.setItem(constant.auth.keys.token, success.access_token);\r\n this._toastr.success('Successful', 'Login');\r\n const urlBeforExpelling = localStorage.getItem(constant.auth.keys.urlBeforExpelling);\r\n localStorage.removeItem(constant.auth.keys.urlBeforExpelling);\r\n this.router.navigateByUrl(\r\n urlBeforExpelling ? urlBeforExpelling.length > 2 ? urlBeforExpelling : constant.views.home.base : constant.views.home.base\r\n );\r\n }, (error) => {\r\n console.log('onSubmit error', error);\r\n this._toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LoginInterface } from 'src/app/public/modules/authentication/components/login/login-interface';\r\nimport { constant } from 'src/app/app.constants';\r\nimport { GlobalService } from '../global.service';\r\n\r\n@Injectable({\r\n providedIn: null\r\n})\r\nexport class AuthenticationService {\r\n\r\n constructor(private _global: GlobalService) {}\r\n\r\n /**\r\n * @description realizar login\r\n * @returns Observable \r\n */\r\n login(data: LoginInterface ): Observable {\r\n return this._global\r\n .post(constant.auth.urls.login, {\r\n grant_type: 'password',\r\n client_id: constant.auth.client_id,\r\n client_secret: constant.auth.client_secret,\r\n username: data.username,\r\n password: data.password\r\n });\r\n }\r\n\r\n verifyToken() {\r\n return this._global\r\n .get(constant.auth.urls.verifyToken);\r\n }\r\n\r\n /**\r\n * logout\r\n */\r\n logout(): Observable {\r\n return this._global.delete(\r\n constant.auth.urls.base\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GlobalService } from '../global.service';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\nimport {LoginInterface} from '../../public/modules/authentication/components/login/login-interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BalanceService {\r\n\r\n constructor(private _global: GlobalService ) { }\r\n\r\npost(data: any): Observable {\r\n\r\nreturn this._global.post(constant.balance.urls.base, data);\r\n\r\n}\r\n\r\nget(id): Observable {\r\n return this._global\r\n .get(`${constant.balance.urls.pendingBalance}/${id}`);\r\n}\r\n\r\n postUpdateDeduction(data): Observable {\r\n return this._global\r\n .post(constant.balance.urls.postUpdateDeduction, data);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GlobalService } from '../global.service';\r\nimport { CustomersInterface } from 'src/app/private/modules/customers/customers-interface';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\n\r\n@Injectable({\r\n providedIn: null\r\n})\r\nexport class CustomersService {\r\n\r\n constructor(private _global: GlobalService) {}\r\n\r\n /**\r\n * @description Crear nuevo Cliente\r\n * @returns Observable \r\n */\r\n create(data: CustomersInterface): Observable {\r\n return this._global\r\n .post(constant.customers.urls.profiles, data);\r\n }\r\n\r\n /**\r\n * @description Creacion masiva de cliente\r\n */\r\n import(data, hospital): Observable {\r\n return this._global\r\n .post(constant.customers.urls.import, {\r\n customers: data,\r\n hospital: hospital\r\n });\r\n }\r\n\r\n\r\n /**\r\n * @description Cargar todos los Clientes\r\n * @returns Observable \r\n */\r\n get(): Observable {\r\n return this._global\r\n .get(constant.customers.urls.profiles);\r\n }\r\n\r\n /**\r\n * @description Cargar detalle de un cliente\r\n * @returns Observable \r\n */\r\n getDetail(employee): Observable {\r\n return this._global\r\n .get(`${constant.customers.urls.profiles}/${employee}`);\r\n }\r\n\r\n /**\r\n * @description Editar Cliente\r\n * @returns Observable \r\n */\r\n update(data: CustomersInterface, id: number): Observable {\r\n return this._global\r\n .put(`${constant.customers.urls.profiles}/${id}`, data);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { constant } from '../app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalService {\r\n\r\n\r\n private headers;\r\n private options;\r\n private httpOptions;\r\n\r\n constructor(private http: HttpClient) {\r\n this.httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n }\r\n\r\n /**\r\n * @description Manejo de errores en las peticiones.\r\n */\r\n private handleError(error: HttpErrorResponse) {\r\n\r\n const stylesLogErrors = `\r\n background: linear-gradient(#a30b34, #571402);\r\n border: 1px solid #3E0E02;\r\n color: white;\r\n display: block;\r\n text-shadow: 0 1px 0 rgba(0, 0, 0, 0.3);\r\n box-shadow:\r\n 0 1px 0 rgba(255, 255, 255, 0.4) inset,\r\n 0 5px 3px -5px rgba(0, 0, 0, 0.5),\r\n 0 -13px 5px -10px rgba(255, 255, 255, 0.4) inset;\r\n text-align: center;\r\n font-weight: bold;\r\n `;\r\n\r\n if (!constant.production) {\r\n console.log(`%c handleError %c ${window['emoticons'].bomb}`, stylesLogErrors, 'padding-left: 10px; font-size: 20px;');\r\n console.log(error);\r\n console.log('%c End HandleError', stylesLogErrors);\r\n }\r\n\r\n return throwError({\r\n code: error.statusText,\r\n message: error.error.message ? error.error.message : error.error.message,\r\n data: [],\r\n handleError: true\r\n });\r\n }\r\n\r\n /**\r\n * @description Optener token de autententication\r\n * @returns String\r\n */\r\n getToken (): string {\r\n return constant.auth.getToken();\r\n }\r\n\r\n /**\r\n * @description Optener cabecera por defecto\r\n * @return HttpHeaders {any}\r\n */\r\n getHeader() {\r\n return this.httpOptions;\r\n }\r\n\r\n /**\r\n * @description Peticiones por el metodo post\r\n * @param url string\r\n * @param data Object\r\n * @param header? HttpHeaders\r\n * @return Observable\r\n */\r\n post(url: string, data: any, headerOptions?: any ): Observable {\r\n return this.http\r\n .post(url, data, headerOptions ? headerOptions : this.getHeader())\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n /**\r\n * @description Peticiones por el metodo GET\r\n * @param url string\r\n * @param header? HttpHeaders\r\n * @return Observable\r\n */\r\n get(url: string, headerOptions?: any ): Observable {\r\n return this.http\r\n .get(url, headerOptions ? headerOptions : this.getHeader())\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n /**\r\n * @description Peticiones por el metodo PUT\r\n * @param url string\r\n * @param header? HttpHeaders\r\n * @return Observable\r\n */\r\n put(url: string, data?: any, headerOptions?: any ): Observable {\r\n return this.http\r\n .put(url, data, headerOptions ? headerOptions : this.getHeader())\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n /**\r\n * @description Peticiones por el metodo DEL\r\n * @param url string\r\n * @param header? HttpHeaders\r\n * @return Observable\r\n */\r\n delete(url: string, headerOptions?: any ): Observable {\r\n return this.http\r\n .delete(url, headerOptions ? headerOptions : this.getHeader())\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GlobalService } from '../global.service';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\nimport { CustomersInterface } from 'src/app/private/modules/customers/customers-interface';\r\nimport { Form, FormGroup } from '@angular/forms';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HospitalsService {\r\n\r\n constructor(private _global: GlobalService) {}\r\n\r\n /**\r\n * @description Cargar todos los Clientes\r\n * @returns Observable \r\n */\r\n get(): Observable {\r\n return this._global\r\n .get(constant.hospitals.urls.base);\r\n }\r\n create(data) {\r\n return this._global.post(constant.hospitals.urls.base, data);\r\n }\r\n\r\n update(data, id): Observable {\r\n return this._global\r\n .put(`${constant.hospitals.urls.base}/${id}`, data);\r\n }\r\n\r\n delete(hospital): Observable {\r\n return this._global\r\n .delete(`${constant.hospitals.urls.base}/${hospital}`);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from '../app.constants';\r\nimport { tap } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InterceptService implements HttpInterceptor {\r\n\r\n constructor(private router: Router) { }\r\n\r\n // intercept request and add headers\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n request = request.clone();\r\n\r\n if (!request.headers.get('Content-Type')) {\r\n request = request.clone({\r\n setHeaders: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n if (!request.headers.get('Authorization')) {\r\n request = request.clone({\r\n setHeaders: {\r\n 'Authorization': `Bearer ${constant.auth.getToken()}`\r\n }\r\n });\r\n }\r\n\r\n\r\n return next.handle(request)\r\n .pipe(\r\n tap(event => {\r\n if (event instanceof HttpResponse) {\r\n if (!constant.production && constant.debug) {\r\n console.log(`%cSTART HttpRequest :: Method => ${request.method} :: URL => ${request.url} :: `, 'color: green;');\r\n console.log(`%cHttpResponse`, 'color: green;', event);\r\n console.log(`%cEND HttpRequest :: Method => ${request.method} :: URL => ${request.url} :: `, 'color: green;');\r\n }\r\n }\r\n }, error => {\r\n if (!constant.production && constant.debug) {\r\n console.log(`%cSTART HttpRequest :: Method => ${request.method} :: URL => ${request.url} :: `, 'color: red;');\r\n console.error(`%cHttpResponse`, 'color: red;', error);\r\n console.log(`%cEND HttpRequest :: Method => ${request.method} :: URL => ${request.url} :: `, 'color: red;');\r\n }\r\n if (error.status === 401) {\r\n localStorage.setItem(constant.auth.keys.urlBeforExpelling, this.router.url);\r\n localStorage.removeItem(constant.auth.keys.token);\r\n this.router.navigateByUrl('');\r\n }\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GlobalService } from '../global.service';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PurchasesService {\r\n\r\n constructor(private _global: GlobalService) { }\r\n\r\n get(status: boolean): Observable {\r\n return this._global.get(`${constant.pruchase.urls.base}/status/${status}`);\r\n }\r\n\r\n getAllPurchase(): Observable {\r\n return this._global.get(`${constant.pruchase.urls.base}`);\r\n }\r\n\r\n create(data: any): Observable {\r\n return this._global.post(constant.pruchase.urls.base, data);\r\n }\r\n\r\n update(data, id): Observable {\r\n return this._global\r\n .put(`${constant.pruchase.urls.base}/${id}`, data);\r\n }\r\n\r\n delete(pur): Observable {\r\n return this._global\r\n .delete(`${constant.pruchase.urls.base}/${pur}`);\r\n }\r\n\r\n importPurchases(data: any): Observable {\r\n return this._global.post(constant.purchases.urls.import, data);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GlobalService } from '../global.service';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TransactionService {\r\n\r\n constructor(private _global: GlobalService, private http: HttpClient) {}\r\n\r\n getType(): Observable < any > {\r\n\r\n return this._global.get(constant.transaction.urls.base);\r\n }\r\n\r\n getHistoryTransactions(employee: number): Observable < any > {\r\n return this._global.get(`${constant.balance.urls.history}/${employee}`);\r\n }\r\n\r\n getPendingTransactions(employee: number): Observable < any > {\r\n return this._global.get(`${constant.balance.urls.pending}/${employee}`);\r\n }\r\n\r\n importDeductions(deduction: any): Observable {\r\n return this._global.post(`${constant.balance.urls.deductions}`, deduction);\r\n }\r\n\r\n exportBalances(hospital: any): Observable {\r\n return this._global.get(`${constant.balance.urls.exportBalance}${hospital}`, {\r\n responseType: 'blob',\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GlobalService } from '../global.service';\r\nimport { Observable } from 'rxjs';\r\nimport { constant } from 'src/app/app.constants';\r\nimport { UsersInterface } from 'src/app/private/modules/users/users-interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UsersService {\r\n\r\n constructor(private _global: GlobalService) { }\r\n\r\n create(user: UsersInterface): Observable {\r\n user.password = new Date().toString();\r\n return this._global.post(constant.users.urls.base, user);\r\n }\r\n\r\n update(data: any, user: number): Observable {\r\n return this._global.put(`${constant.users.urls.profiles}/${user}`, data);\r\n }\r\n\r\n get(active?: boolean): Observable {\r\n return this._global.get(`${constant.users.urls.actives}/${active}`);\r\n }\r\n\r\n delete(id: number): Observable {\r\n return this._global\r\n .delete(`${constant.users.urls.base}/${id}`);\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n {{title}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n@import url(\\\"https://fonts.googleapis.com/css?family=Roboto:300,400,700\\\");\\n@charset \\\"UTF-8\\\";\\n/**\\r\\n * Background body\\r\\n *\\r\\n * @section Vars\\r\\n * @color bg-body */\\n/** @color Solid black */\\n/** @color transparent */\\n/** @color blue */\\n/** @color indigo */\\n/** @color purple */\\n/** @color pink */\\n/** @color red */\\n/** @color orange */\\n/** @color yellow */\\n/** @color green */\\n/** @color teal */\\n/** @color cyan */\\n/** @color white */\\n/** @color gray */\\n/** @color gray-low */\\n/** @color gray-medium */\\n/** @color gray-dark */\\n/** @color light */\\n/** @color color-secundary */\\n/**\\r\\n * Color-primary\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-primary\\r\\n */\\n/**\\r\\n * Color-success es utilizado en eventos satisfactorios\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-success\\r\\n */\\n/**\\r\\n * Color-info\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-info\\r\\n */\\n/**\\r\\n * Color-warning\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-warning\\r\\n */\\n/**\\r\\n * Color-danger\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-danger\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\n * Color-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-dark\\r\\n */\\n/**\\r\\n * Color-gray\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray\\r\\n */\\n/**\\r\\n * Color-gray-dark\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-gray-dark\\r\\n */\\n/**\\r\\n * Color-white\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-white\\r\\n */\\n/**\\r\\n * Color-black\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-black\\r\\n */\\n/**\\r\\n * Color-text-default\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-default\\r\\n */\\n/**\\r\\n * Color-text-2\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-2\\r\\n */\\n/**\\r\\n * Color-text-3\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-text-3\\r\\n */\\n/**\\r\\n * Color-light\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light\\r\\n */\\n/**\\r\\n * Color-light-darken\\r\\n *\\r\\n * @section Config > colors\\r\\n * @nuclide color-light-darken\\r\\n */\\n/**\\r\\narray of colors\\r\\n*/\\n@font-face {\\n font-family: 'Helvetica';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Oblique\\\"), url('Helvetica-Oblique.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica\\\"), url('Helvetica-Bold.woff') format(\\\"woff\\\"); }\\n@font-face {\\n font-family: 'Helvetica Bold Oblique';\\n font-style: normal;\\n font-weight: normal;\\n src: local(\\\"Helvetica Bold Oblique\\\"), url('Helvetica-BoldOblique.woff') format(\\\"woff\\\"); }\\n/**\\r\\n * font-default\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-default\\r\\n */\\n/**\\r\\n * font-secondary\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-secondary\\r\\n */\\n/**\\r\\n * font-arial\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-arial\\r\\n */\\n/**\\r\\n * font-roboto\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-roboto\\r\\n */\\n/**\\r\\n * font-thin\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-thin\\r\\n */\\n/**\\r\\n * font-light\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-light\\r\\n */\\n/**\\r\\n * font-regular\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-regular\\r\\n */\\n/**\\r\\n * font-medium\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-medium\\r\\n */\\n/**\\r\\n * font-semi-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-semi-bold\\r\\n */\\n/**\\r\\n * font-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-bold\\r\\n */\\n/**\\r\\n * font-ultra-bold\\r\\n *\\r\\n * @section Config > Fonts\\r\\n * @nuclide font-ultra-bold\\r\\n */\\n/**\\r\\n * Function for converting a px based font-size to rem.\\r\\n * @mixin\\r\\n * @section Functions\\r\\n * @param $size tamaño de la fuente en px\\r\\n * @example font-size: calculate-rem($size)\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Altos Dinamicos en vh\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Alto minimo\\r\\n * @param $max Alto Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @height-viewport()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include @width-percent()\\r\\n */\\n/**\\r\\n * Generar clases para Anchos Dinamicos de rows Dinamicos en porcentajes\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min Ancho minimo\\r\\n * @param $max Ancho Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include row-dynamic-not-calc()\\r\\n */\\n/**\\r\\n * Generar clases para Margenes Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min margin minimo\\r\\n * @param $max margin Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include margin-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para Paddings Dinamicos en PX\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min padding minimo\\r\\n * @param $max padding Maximo\\r\\n * @param $step Saltos\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include padding-dynamic()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @param $class Clases a signar los estilos\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size rem minimo\\r\\n * @param $max font-size rem Maximo\\r\\n * @example\\r\\n * @include font-size-em()\\r\\n */\\n/**\\r\\n * Generar clases para font-size Dinamicos en px\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $min font-size minimo\\r\\n * @param $max font-size Maximo\\r\\n * @example\\r\\n * @include font-size-px()\\r\\n */\\n/**\\r\\n * Calcular convertir font size de px a rem\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $size font-size minimo\\r\\n * @example\\r\\n * @include font-size()\\r\\n */\\n/**\\r\\n * Generar clase para subrayado con animacion\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $height alto\\r\\n * @param $color Color\\r\\n * @param $pseudo-element pseudo a agregar el estilo\\r\\n * @example\\r\\n * @include hvr-underline-from-center()\\r\\n */\\n/**\\r\\n * Generar clase personalizacion de scroll\\r\\n * @mixin\\r\\n * @section mixin\\r\\n * @param $overflow scroll a aplicar el estilo (overflow | overflow-y | overflow-x)\\r\\n * @param $width Ancho\\r\\n * @param $color Color\\r\\n * @example\\r\\n * @include _scrollbar()\\r\\n */\\n/**\\r\\n * Restaura todas las propiedades, excepto unicode-bidi y direction, a su valor inicial o heredado.\\r\\n *\\r\\n * @mixin\\r\\n * @section Display\\r\\n * @param $value inherit || initial || unset\\r\\n * @example\\r\\n * @include reset();\\r\\n */\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations rebound\\r\\n * @description Amimacion de rebote\\r\\n * @modifiers\\r\\n * .rebound-animation .position-relative || .position-absolute || .position-fixed\\r\\n * @markup\\r\\n * \\r\\n */\\n.rebound-animation {\\n -webkit-animation-name: _rebound-animation;\\n animation-name: _rebound-animation;\\n -webkit-animation-duration: .5s;\\n animation-duration: .5s;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n -webkit-animation-direction: alternate;\\n animation-direction: alternate;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out; }\\n@-webkit-keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n@keyframes _rebound-animation {\\n 0% {\\n top: 0px; }\\n 100% {\\n top: 5px; } }\\n/**\\r\\n * @atom Animation\\r\\n * @section Helpers > Animations flicker\\r\\n * @description Amimacion de parpadeo\\r\\n * @modifiers\\r\\n * .flicker Animacion de parpadeo\\r\\n * @markup\\r\\n * \\r\\n */\\n.flicker {\\n -webkit-animation-name: _flicker-amimation;\\n animation-name: _flicker-amimation;\\n -webkit-animation-duration: 1s;\\n animation-duration: 1s;\\n -webkit-animation-timing-function: linear;\\n animation-timing-function: linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite; }\\n@-webkit-keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\n@keyframes _flicker-amimation {\\n 0% {\\n opacity: 1; }\\n 50% {\\n opacity: .5; }\\n 100% {\\n opacity: 1; } }\\napp-utils-card {\\n border: 1px solid transparent;\\n display: block;\\n padding: 0 5px;\\n position: relative; }\\napp-utils-card .card-modal-bg {\\n background-color: rgba(0, 0, 0, 0.5);\\n display: block;\\n height: 0;\\n left: 0;\\n opacity: 0;\\n overflow: hidden;\\n position: absolute;\\n top: 0;\\n width: 0;\\n z-index: 99; }\\napp-utils-card .card-modal.card-modal-open + .card-modal-bg {\\n -webkit-animation: animation_bg 0.5s ease-in;\\n animation: animation_bg 0.5s ease-in;\\n height: 100vh;\\n opacity: 1;\\n position: fixed;\\n width: 100vw; }\\napp-utils-card .t2-card-main-header {\\n background-color: #3b5998;\\n color: #fff; }\\napp-utils-card .card-danger .t2-card-main-header {\\n background-color: #dc3545; }\\napp-utils-card .card-success .t2-card-main-header {\\n background-color: #28a745; }\\napp-utils-card .card-warning .t2-card-main-header {\\n background-color: #ffc107; }\\napp-utils-card .card-primary .t2-card-main-header {\\n background-color: #1464f6; }\\napp-utils-card .card-light .t2-card-main-header {\\n background-color: #f8f9fa; }\\napp-utils-card .card-black .t2-card-main-header {\\n background-color: #000; }\\napp-utils-card .card-white .t2-card-main-header {\\n background-color: #fff; }\\napp-utils-card .card-info .t2-card-main-header {\\n background-color: #17a2b8; }\\napp-utils-card .card-gray .t2-card-main-header {\\n background-color: #6c757d; }\\napp-utils-card .card-gray-darken .t2-card-main-header {\\n background-color: #dae0e5; }\\napp-utils-card .card-gray-low .t2-card-main-header {\\n background-color: #eceff4; }\\napp-utils-card .card-bg-body .t2-card-main-header {\\n background-color: #fff; }\\napp-utils-card .card-transparent .t2-card-main-header {\\n background-color: transparent; }\\napp-utils-card .card-blue .t2-card-main-header {\\n background-color: #1464f6; }\\napp-utils-card .card-indigo .t2-card-main-header {\\n background-color: #6610f2; }\\napp-utils-card .card-purple .t2-card-main-header {\\n background-color: #6f42c1; }\\napp-utils-card .card-pink .t2-card-main-header {\\n background-color: #e83e8c; }\\napp-utils-card .card-red .t2-card-main-header {\\n background-color: #dc3545; }\\napp-utils-card .card-orange .t2-card-main-header {\\n background-color: #fd7e14; }\\napp-utils-card .card-yellow .t2-card-main-header {\\n background-color: #ffc107; }\\napp-utils-card .card-green .t2-card-main-header {\\n background-color: #28a745; }\\napp-utils-card .card-teal .t2-card-main-header {\\n background-color: #20c997; }\\napp-utils-card .card-cyan .t2-card-main-header {\\n background-color: #17a2b8; }\\napp-utils-card .card-gray-medium .t2-card-main-header {\\n background-color: #ececee; }\\napp-utils-card .card-gray-dark .t2-card-main-header {\\n background-color: #343a40; }\\napp-utils-card .card-color-1 .t2-card-main-header {\\n background-color: #a49c3c; }\\napp-utils-card .card-color-2 .t2-card-main-header {\\n background-color: #f3d414; }\\napp-utils-card .card-color-3 .t2-card-main-header {\\n background-color: #cc2424; }\\napp-utils-card .card-color-4 .t2-card-main-header {\\n background-color: #844444; }\\napp-utils-card .card-color-5 .t2-card-main-header {\\n background-color: rgba(243, 212, 20, 0.14); }\\napp-utils-card .card-color-6 .t2-card-main-header {\\n background-color: #ff5d55; }\\napp-utils-card .card-green-app .t2-card-main-header {\\n background-color: #a49c3c; }\\napp-utils-card .card-yellow-app .t2-card-main-header {\\n background-color: #f3d414; }\\napp-utils-card .card-yellow-light-app .t2-card-main-header {\\n background-color: rgba(243, 212, 20, 0.14); }\\napp-utils-card .card-red-app .t2-card-main-header {\\n background-color: #cc2424; }\\napp-utils-card .card-brown-app .t2-card-main-header {\\n background-color: #844444; }\\napp-utils-card .card-pumpkin .t2-card-main-header {\\n background-color: #ff5d55; }\\napp-utils-card .card-green-light .t2-card-main-header {\\n background-color: #cbe8ba; }\\napp-utils-card .card-green-dark .t2-card-main-header {\\n background-color: #4c7a34; }\\napp-utils-card .card-green-light2 .t2-card-main-header {\\n background-color: #dfedd6; }\\napp-utils-card.container-tabs > .t2-card > .card-content > .content {\\n padding: 0; }\\napp-utils-card.container-tabs > .t2-card > .card-content > .content .tabs-header:last-child {\\n margin-top: 10px;\\n padding-bottom: 0; }\\napp-utils-card.container-tabs > .t2-card > .card-content > .content .tabs-header:last-child .m-btn.active {\\n border-bottom-color: transparent;\\n border-top: 1px solid #1464f6; }\\napp-utils-card.container-tabs .tabs-header .input-radio span {\\n color: #000; }\\napp-utils-card.container-tabs .tabs-header .input-radio span::after, app-utils-card.container-tabs .tabs-header .input-radio span::before {\\n display: none;\\n opacity: 0; }\\napp-utils-card.container-tabs .tabs-header .input-radio input:checked + span {\\n color: #1464f6; }\\napp-utils-card.container-tabs .tabs-header .m-btn {\\n background-color: transparent;\\n border-bottom: 1px solid #f8f9fa;\\n padding: 10px 5px;\\n opacity: .5;\\n font-weight: 700; }\\napp-utils-card.container-tabs .tabs-header .m-btn.active {\\n border-bottom: 1px solid #1464f6;\\n opacity: 1;\\n color: #1464f6; }\\napp-utils-card.container-tabs .tabs-header .m-btn:after {\\n background-color: #f8f9fa; }\\napp-utils-card.container-tabs .content-switch {\\n padding: 15px; }\\n.t2-card {\\n background-color: #fff;\\n border: 1px solid #f8f9fa;\\n box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.25);\\n min-height: 100px;\\n min-width: 150px;\\n overflow: hidden;\\n margin: 0 auto; }\\n.t2-card .card-content {\\n background-color: #fff;\\n border-radius: 5px; }\\n.t2-card .t2-card-main-header {\\n display: block;\\n padding: 10px 20px;\\n position: relative; }\\n.t2-card .t2-card-main-header.ui-draggable-handle {\\n cursor: move; }\\n.t2-card .t2-card-main-header .container-options {\\n display: block;\\n position: absolute;\\n right: 10px;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%); }\\n.t2-card .content {\\n height: 100%;\\n padding: 15px;\\n position: relative; }\\n.t2-card .content.header-false {\\n padding: 0; }\\n.t2-card footer {\\n border-top: 1px solid #f8f9fa;\\n padding-top: 10px; }\\n.t2-card.card-modal {\\n border-color: transparent;\\n display: none;\\n top: -100vh;\\n transition: all .3s;\\n z-index: -999; }\\n.t2-card.card-modal .card-content {\\n position: relative; }\\n.t2-card.card-modal.card-modal-open {\\n display: block;\\n position: fixed;\\n top: 0;\\n z-index: 999; }\\n.t2-card.card-pop {\\n border-color: transparent;\\n display: none;\\n z-index: -999;\\n border-radius: 0; }\\n.t2-card.card-pop .t2-card-main-header {\\n border-radius: 0; }\\n.t2-card.card-pop.card-pop-open {\\n display: block;\\n z-index: 999; }\\n.t2-card.card-minimized {\\n width: 250px;\\n max-width: 250px;\\n min-width: 250px;\\n overflow: hidden;\\n top: auto !important;\\n bottom: 0;\\n left: auto !important;\\n right: 0;\\n max-height: 40px !important;\\n -webkit-transform: translateX(0) !important;\\n transform: translateX(0) !important; }\\n.t2-card.card-minimized .card-content .t2-card-main-header > .title {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: 50%; }\\n.t2-card.card-minimized .card-content > .content {\\n height: 0 !important;\\n max-height: 0 !important;\\n min-height: 0 !important;\\n overflow: hidden;\\n padding: 0; }\\n.t2-card.card-minimized .ui-resizable-handle {\\n display: none !important; }\\n.t2-card.card-minimized.minimized-not-display {\\n opacity: 0;\\n z-index: -99;\\n width: 0;\\n max-width: 0;\\n min-width: 0;\\n max-height: 0 !important; }\\n@-webkit-keyframes animation_bg {\\n 0% {\\n height: 100vh;\\n opacity: 0;\\n width: 100vw; }\\n 100% {\\n height: 100vh;\\n opacity: 1;\\n width: 100vw; } }\\n@keyframes animation_bg {\\n 0% {\\n height: 100vh;\\n opacity: 0;\\n width: 100vw; }\\n 100% {\\n height: 100vh;\\n opacity: 1;\\n width: 100vw; } }\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXRpbHMvY2FyZC9DOlxcaW5ldHB1Ylxcd3d3cm9vdFxcZ3Nmcm9udC9zcmNcXHNjc3NcXF9mb250cy5zY3NzIiwic3JjL2FwcC91dGlscy9jYXJkL2NhcmQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3V0aWxzL2NhcmQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfY29sb3JzLnNjc3MiLCJzcmMvYXBwL3V0aWxzL2NhcmQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfZnVuY3Rpb25zLnNjc3MiLCJzcmMvYXBwL3V0aWxzL2NhcmQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfbWl4aW5zLnNjc3MiLCJzcmMvYXBwL3V0aWxzL2NhcmQvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxzY3NzXFxfYW5pbWF0aW9ucy5zY3NzIiwic3JjL2FwcC91dGlscy9jYXJkL0M6XFxpbmV0cHViXFx3d3dyb290XFxnc2Zyb250L3NyY1xcYXBwXFx1dGlsc1xcY2FyZFxcY2FyZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEVBQVk7QUNBWixpQkFBaUI7QUNFakI7Ozs7b0JBSW9CO0FBR25CLHlCQUF5QjtBQUV6Qix5QkFBeUI7QUFFekIsa0JBQWtCO0FBRW5CLG9CQUFvQjtBQUVwQixvQkFBb0I7QUFFcEIsa0JBQWtCO0FBRWxCLGlCQUFpQjtBQUVqQixvQkFBb0I7QUFFcEIsb0JBQW9CO0FBRXBCLG1CQUFtQjtBQUVuQixrQkFBa0I7QUFFbEIsa0JBQWtCO0FBRWxCLG1CQUFtQjtBQUVuQixrQkFBa0I7QUFFbEIsc0JBQXNCO0FBRXRCLHlCQUF5QjtBQUV6Qix1QkFBdUI7QUFFdkIsbUJBQW1CO0FBR25CLDZCQUE2QjtBQWU3Qjs7Ozs7R0FLRztBQUdIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFHSDs7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SUFvQ1EsMEJKMUJNLEVJNEJQO0FBdENQO0lBb0NRLDBCSklPLEVJRlI7QUF0Q1A7SUFvQ1EsdUJKOUJJLEVJZ0NMO0FBdENQO0lBb0NRLHVCSk5JLEVJUUw7QUF0Q1A7SUFvQ1EsMEJKUk0sRUlVUDtBQXRDUDtJQW9DUSwwQkpKTSxFSU1QO0FBdENQO0lBb0NRLDBCSnVFZ0MsRUlyRWpDO0FBdENQO0lBb0NRLDBCSkZVLEVJSVg7QUF0Q1A7SUFvQ1EsdUJKakNNLEVJbUNQO0FBdENQO0lBb0NRLDhCSjVCaUIsRUk4QmxCO0FBdENQO0lBb0NRLDBCSjFCTSxFSTRCUDtBQXRDUDtJQW9DUSwwQkp4QlEsRUkwQlQ7QUF0Q1A7SUFvQ1EsMEJKdEJRLEVJd0JUO0FBdENQO0lBb0NRLDBCSnBCTSxFSXNCUDtBQXRDUDtJQW9DUSwwQkpsQkssRUlvQk47QUF0Q1A7SUFvQ1EsMEJKaEJRLEVJa0JUO0FBdENQO0lBb0NRLDBCSmRRLEVJZ0JUO0FBdENQO0lBb0NRLDBCSlpPLEVJY1I7QUF0Q1A7SUFvQ1EsMEJKVk0sRUlZUDtBQXRDUDtJQW9DUSwwQkpSTSxFSVVQO0FBdENQO0lBb0NRLDBCSkFhLEVJRWQ7QUF0Q1A7SUFvQ1EsMEJKRVcsRUlBWjtBQXRDUDtJQW9DUSwwQkpTVyxFSVBaO0FBdENQO0lBb0NRLDBCSlVZLEVJUmI7QUF0Q1A7SUFvQ1EsMEJKWVMsRUlWVjtBQXRDUDtJQW9DUSwwQkphVyxFSVhaO0FBdENQO0lBb0NRLDJDSlVZLEVJUmI7QUF0Q1A7SUFvQ1EsMEJKY1MsRUlaVjtBQXRDUDtJQW9DUSwwQkpTVyxFSVBaO0FBdENQO0lBb0NRLDBCSlVZLEVJUmI7QUF0Q1A7SUFvQ1EsMkNKVVksRUlSYjtBQXRDUDtJQW9DUSwwQkpZUyxFSVZWO0FBdENQO0lBb0NRLDBCSmFXLEVJWFo7QUF0Q1A7SUFvQ1EsMEJKY1MsRUlaVjtBQXRDUDtJQW9DUSwwQkplaUIsRUlibEI7QUF0Q1A7SUFvQ1EsMEJKaUJnQixFSWZqQjtBQXRDUDtJQW9DUSwwQkpnQmtCLEVJZG5CO0FBdENQO0lBZ0RNLFdBQVUsRUFjWDtBQTlETDtNQW1EUSxpQkFBZ0I7TUFDaEIsa0JBQWlCLEVBU2xCO0FBN0RQO1FBd0RZLGlDQUFnQztRQUNoQyw4QkovQ0UsRUlnREg7QUExRFg7SUFxRVUsWUovREUsRUlzRUg7QUE1RVQ7TUF5RVksY0FBYTtNQUNiLFdBQVUsRUFDWDtBQTNFWDtJQStFVSxlSnJFSSxFSXNFTDtBQWhGVDtJQXFGUSw4QkFBNkI7SUFDN0IsaUNKOUNPO0lJK0NQLGtCQUFpQjtJQUNqQixZQUFXO0lBQ1gsaUJOWU8sRU1EUjtBQXBHUDtNQTRGVSxpQ0psRkk7TUltRkosV0FBVTtNQUNWLGVKcEZJLEVJcUZMO0FBL0ZUO01Ba0dVLDBCSjFESyxFSTJETjtBQW5HVDtJQXdHTSxjQUFhLEVBQ2Q7QUFNTDtFQUNFLHVCSjdHWTtFSThHWiwwQkp6RWE7RUkwRWIsNENBQTJDO0VBQzNDLGtCQUFpQjtFQUNqQixpQkFBZ0I7RUFDaEIsaUJBQWdCO0VBQ2hCLGVBQWMsRUF3SGY7QUEvSEQ7SUFVSSx1Qkp0SFU7SUl1SFYsbUJBQWtCLEVBQ25CO0FBWkg7SUFlSSxlQUFjO0lBQ2QsbUJBQWtCO0lBQ2xCLG1CQUFrQixFQWFuQjtBQTlCSDtNQW9CTSxhQUFZLEVBQ2I7QUFyQkw7TUF3Qk0sZUFBYztNQUNkLG1CQUFrQjtNQUNsQixZQUFXO01BQ1gsU0FBUTtNQUNSLG9DQUEyQjtjQUEzQiw0QkFBMkIsRUFDNUI7QUE3Qkw7SUFpQ0ksYUFBWTtJQUNaLGNBQWE7SUFDYixtQkFBa0IsRUFLbkI7QUF4Q0g7TUFzQ00sV0FBVSxFQUNYO0FBdkNMO0lBMkNJLDhCSmxIVztJSW1IWCxrQkFBaUIsRUFDbEI7QUE3Q0g7SUFnREksMEJBQXlCO0lBQ3pCLGNBQWE7SUFDYixZQUFXO0lBQ1gsb0JBQW1CO0lBQ25CLGNBQWEsRUFhZDtBQWpFSDtNQXVETSxtQkFBa0IsRUFDbkI7QUF4REw7TUEyRE0sZUFBYztNQUNkLGdCQUFlO01BQ2YsT0FBTTtNQUNOLGFBQVksRUFDYjtBQS9ETDtJQW9FSSwwQkFBeUI7SUFDekIsY0FBYTtJQUNiLGNBQWE7SUFDYixpQkFBZ0IsRUFVakI7QUFqRkg7TUEwRU0saUJBQ0YsRUFBQztBQTNFTDtNQThFTSxlQUFjO01BQ2QsYUFBWSxFQUNiO0FBaEZMO0lBb0ZJLGFBQVk7SUFDWixpQkFBZ0I7SUFDaEIsaUJBQWdCO0lBQ2hCLGlCQUFnQjtJQUNoQixxQkFBb0I7SUFDcEIsVUFBUztJQUNULHNCQUFxQjtJQUNyQixTQUFRO0lBQ1IsNEJBQTJCO0lBQzNCLDRDQUFtQztZQUFuQyxvQ0FBbUMsRUFnQ3BDO0FBN0hIO01Ba0dRLGlCQUFnQjtNQUNoQix3QkFBdUI7TUFDdkIsb0JBQW1CO01BQ25CLGVBQWMsRUFDZjtBQXRHUDtNQXlHVSxxQkFBb0I7TUFDcEIseUJBQXdCO01BQ3hCLHlCQUF3QjtNQUN4QixpQkFBZ0I7TUFDaEIsV0FBVSxFQUNiO0FBOUdQO01Ba0hNLHlCQUF3QixFQUN6QjtBQW5ITDtNQXNITSxXQUFVO01BQ1YsYUFBWTtNQUNaLFNBQVE7TUFDUixhQUFZO01BQ1osYUFBWTtNQUNaLHlCQUF3QixFQUN6QjtBQUtMO0VBQ0U7SUFDRSxjQUFhO0lBQ2IsV0FBVTtJQUNWLGFBQVksRUFBQTtFQUVkO0lBQ0UsY0FBYTtJQUNiLFdBQVU7SUFDVixhQUFZLEVBQUEsRUFBQTtBQVRoQjtFQUNFO0lBQ0UsY0FBYTtJQUNiLFdBQVU7SUFDVixhQUFZLEVBQUE7RUFFZDtJQUNFLGNBQWE7SUFDYixXQUFVO0lBQ1YsYUFBWSxFQUFBLEVBQUEiLCJmaWxlIjoic3JjL2FwcC91dGlscy9jYXJkL2NhcmQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDcwMCcpO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYSBPYmxpcXVlJyksIHVybCgnc3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2EnKSwgdXJsKCdzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3JjOiBsb2NhbCgnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZScpLCB1cmwoJ3NyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBmb250LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1kZWZhdWx0XHJcbiAqL1xyXG4kZm9udC1kZWZhdWx0OiAnSGVsdmV0aWNhJywgJ1JvYm90bycsICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtc2Vjb25kYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2Vjb25kYXJ5XHJcbiAqL1xyXG4kZm9udC1zZWNvbmRhcnk6ICdDYWxpYnJpJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcclxuLyoqXHJcbiAqIGZvbnQtYXJpYWxcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1hcmlhbFxyXG4gKi9cclxuJGZvbnQtYXJpYWw6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XHJcbi8qKlxyXG4gKiBmb250LXJvYm90b1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJvYm90b1xyXG4gKi9cclxuJGZvbnQtcm9ib3RvOiAnUm9ib3RvJywgJ0NhbGlicmknLCAnQXJpYWwnO1xyXG5cclxuXHJcbiRmb250LWhlbHZldGljYS1vYmxpcXVlOiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xyXG4kZm9udC1oZWx2ZXRpY2EtYm9sZDogJ0hlbHZldGljYSBCb2xkJztcclxuJGZvbnQtaGVsdmV0aWNhLWJvbGQtb2JsaXF1ZTogJ0hlbHZldGljYSBCb2xkIE9ibGlxdWUnO1xyXG5cclxuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXHJcbiRmb250LXRoaW46IDEwMDtcclxuLyoqXHJcbiAqIGZvbnQtbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1saWdodFxyXG4gKi9cclxuJGZvbnQtbGlnaHQ6IDMwMDtcclxuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXHJcbiRmb250LXJlZ3VsYXI6IDQwMDtcclxuLyoqXHJcbiAqIGZvbnQtbWVkaXVtXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtbWVkaXVtXHJcbiAqL1xyXG4kZm9udC1tZWRpdW06IDUwMDtcclxuLyoqXHJcbiAqIGZvbnQtc2VtaS1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtc2VtaS1ib2xkXHJcbiAqL1xyXG4kZm9udC1zZW1pLWJvbGQ6IDYwMDtcclxuLyoqXHJcbiAqIGZvbnQtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWJvbGRcclxuICovXHJcbiRmb250LWJvbGQ6IDcwMDtcclxuLyoqXHJcbiAqIGZvbnQtdWx0cmEtYm9sZFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXVsdHJhLWJvbGRcclxuICovXHJcbiRmb250LXVsdHJhLWJvbGQ6IDkwMDtcclxuXHJcbiRmb250czogKFxyXG4gICdkZWZhdWx0JzogJGZvbnQtZGVmYXVsdCxcclxuICAnc2Vjb25kYXJ5JzogJGZvbnQtc2Vjb25kYXJ5LFxyXG4gICdhcmlhbCc6ICRmb250LWFyaWFsLFxyXG4gICdyb2JvdG8nOiAkZm9udC1yb2JvdG8sXHJcbiAgJ2hlbHZldGljYS1vYmxpcXVlJzogJGZvbnQtaGVsdmV0aWNhLW9ibGlxdWUsXHJcbiAgJ2hlbHZldGljYS1ib2xkJzogJGZvbnQtaGVsdmV0aWNhLWJvbGQsXHJcbiAgJ2hlbHZldGljYS1ib2xkLW9ibGlxdWUnOiAkZm9udC1oZWx2ZXRpY2EtYm9sZC1vYmxpcXVlLFxyXG4pO1xyXG5cclxuXHJcblxyXG4kZm9udHMtd2VpZ2h0czogKFxyXG4gJ3RoaW4nOiAkZm9udC10aGluLFxyXG4gJ2xpZ2h0JzogJGZvbnQtbGlnaHQsXHJcbiAncmVndWxhcic6ICRmb250LXJlZ3VsYXIsXHJcbiAnbWVkaXVtJzogJGZvbnQtbWVkaXVtLFxyXG4gJ3NlbWktYm9sZCc6ICRmb250LXNlbWktYm9sZCxcclxuICdib2xkJzogJGZvbnQtYm9sZCxcclxuICd1bHRyYS1ib2xkJzogJGZvbnQtdWx0cmEtYm9sZCxcclxuKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXHJcbiAqIEJhY2tncm91bmQgYm9keVxyXG4gKlxyXG4gKiBAc2VjdGlvbiBWYXJzXHJcbiAqIEBjb2xvciBiZy1ib2R5ICovXG4vKiogQGNvbG9yIFNvbGlkIGJsYWNrICovXG4vKiogQGNvbG9yIHRyYW5zcGFyZW50ICovXG4vKiogQGNvbG9yIGJsdWUgKi9cbi8qKiBAY29sb3IgaW5kaWdvICovXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xuLyoqIEBjb2xvciBwaW5rICovXG4vKiogQGNvbG9yIHJlZCAqL1xuLyoqIEBjb2xvciBvcmFuZ2UgKi9cbi8qKiBAY29sb3IgeWVsbG93ICovXG4vKiogQGNvbG9yIGdyZWVuICovXG4vKiogQGNvbG9yIHRlYWwgKi9cbi8qKiBAY29sb3IgY3lhbiAqL1xuLyoqIEBjb2xvciB3aGl0ZSAqL1xuLyoqIEBjb2xvciBncmF5ICovXG4vKiogQGNvbG9yIGdyYXktbG93ICovXG4vKiogQGNvbG9yIGdyYXktbWVkaXVtICovXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xuLyoqIEBjb2xvciBsaWdodCAqL1xuLyoqIEBjb2xvciBjb2xvci1zZWN1bmRhcnkgKi9cbi8qKlxyXG4gKiBDb2xvci1wcmltYXJ5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1wcmltYXJ5XHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLXN1Y2Nlc3MgZXMgdXRpbGl6YWRvIGVuIGV2ZW50b3Mgc2F0aXNmYWN0b3Jpb3NcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXN1Y2Nlc3NcclxuICovXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci13YXJuaW5nXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci13YXJuaW5nXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWRhbmdlclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZGFuZ2VyXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWxpZ2h0XHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodC1kYXJrZW5cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXG4vKipcclxuICogQ29sb3ItZ3JheS1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ncmF5LWRhcmtcclxuICovXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTJcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtMlxyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci10ZXh0LTNcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtM1xyXG4gKi9cbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXG4vKipcclxuYXJyYXkgb2YgY29sb3JzXHJcbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw3MDBcIik7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2FcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE9ibGlxdWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoXCJIZWx2ZXRpY2EgT2JsaXF1ZVwiKSwgdXJsKFwic3JjL2Fzc2V0cy9mb250cy9oZWx2ZXRpY2EvSGVsdmV0aWNhLU9ibGlxdWUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBCb2xkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKFwiSGVsdmV0aWNhXCIpLCB1cmwoXCJzcmMvYXNzZXRzL2ZvbnRzL2hlbHZldGljYS9IZWx2ZXRpY2EtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIEJvbGQgT2JsaXF1ZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiBsb2NhbChcIkhlbHZldGljYSBCb2xkIE9ibGlxdWVcIiksIHVybChcInNyYy9hc3NldHMvZm9udHMvaGVsdmV0aWNhL0hlbHZldGljYS1Cb2xkT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7IH1cblxuLyoqXHJcbiAqIGZvbnQtZGVmYXVsdFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWRlZmF1bHRcclxuICovXG4vKipcclxuICogZm9udC1zZWNvbmRhcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZWNvbmRhcnlcclxuICovXG4vKipcclxuICogZm9udC1hcmlhbFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWFyaWFsXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcm9ib3RvXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtcm9ib3RvXHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtdGhpblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXRoaW5cclxuICovXG4vKipcclxuICogZm9udC1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LWxpZ2h0XHJcbiAqL1xuLyoqXHJcbiAqIGZvbnQtcmVndWxhclxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBGb250c1xyXG4gKiBAbnVjbGlkZSBmb250LXJlZ3VsYXJcclxuICovXG4vKipcclxuICogZm9udC1tZWRpdW1cclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1tZWRpdW1cclxuICovXG4vKipcclxuICogZm9udC1zZW1pLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC1zZW1pLWJvbGRcclxuICovXG4vKipcclxuICogZm9udC1ib2xkXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IEZvbnRzXHJcbiAqIEBudWNsaWRlIGZvbnQtYm9sZFxyXG4gKi9cbi8qKlxyXG4gKiBmb250LXVsdHJhLWJvbGRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gRm9udHNcclxuICogQG51Y2xpZGUgZm9udC11bHRyYS1ib2xkXHJcbiAqL1xuLyoqXHJcbiAqIEZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGEgcHggYmFzZWQgZm9udC1zaXplIHRvIHJlbS5cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIEZ1bmN0aW9uc1xyXG4gKiBAcGFyYW0gJHNpemUgdGFtYcOxbyBkZSBsYSBmdWVudGUgZW4gcHhcclxuICogQGV4YW1wbGUgZm9udC1zaXplOiBjYWxjdWxhdGUtcmVtKCRzaXplKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQHdpZHRoLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvc1xyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC1keW5hbWljKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtcGVyY2VudCgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHZoXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXZpZXdwb3J0KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGRlIHJvd3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHJvdy1keW5hbWljLW5vdC1jYWxjKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBNYXJnZW5lcyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIG1hcmdpbiBtaW5pbW9cclxuICogQHBhcmFtICRtYXggbWFyZ2luIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBtYXJnaW4tZHluYW1pYygpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgUGFkZGluZ3MgRGluYW1pY29zIGVuIFBYXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBwYWRkaW5nIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBwYWRkaW5nIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBwYWRkaW5nLWR5bmFtaWMoKVxyXG4gKi9cbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIGZvbnQtc2l6ZSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIE1heGltb1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zIGVuIHJlbVxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIHJlbSBtaW5pbW9cclxuICogQHBhcmFtICRtYXggZm9udC1zaXplIHJlbSBNYXhpbW9cclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cbi8qKlxyXG4gKiBDYWxjdWxhciBjb252ZXJ0aXIgZm9udCBzaXplIGRlIHB4IGEgcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJHNpemUgZm9udC1zaXplIG1pbmltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplKClcclxuICovXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgcmVib3VuZFxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHJlYm90ZVxyXG4gKiBAbW9kaWZpZXJzXHJcbiAqICAucmVib3VuZC1hbmltYXRpb24gIC5wb3NpdGlvbi1yZWxhdGl2ZSB8fCAucG9zaXRpb24tYWJzb2x1dGUgfHwgLnBvc2l0aW9uLWZpeGVkXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBidG4tY2lyY2xlIHJlYm91bmQtYW5pbWF0aW9uXCI+UzwvYnV0dG9uPlxyXG4gKi9cbi5yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfcmVib3VuZC1hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIF9yZWJvdW5kLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0b3A6IDBweDsgfVxuICAxMDAlIHtcbiAgICB0b3A6IDVweDsgfSB9XG5cbi8qKlxyXG4gKiBAYXRvbSBBbmltYXRpb25cclxuICogQHNlY3Rpb24gSGVscGVycyA+IEFuaW1hdGlvbnMgZmxpY2tlclxyXG4gKiBAZGVzY3JpcHRpb24gQW1pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5mbGlja2VyIEFuaW1hY2lvbiBkZSBwYXJwYWRlb1xyXG4gKiBAbWFya3VwXHJcbiAqICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWN1bmRhcnkgZmxpY2tlclwiPmZsaWNrZXI8L2J1dHRvbj5cclxuICovXG4uZmxpY2tlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBfZmxpY2tlci1hbWltYXRpb24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IC41OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG5hcHAtdXRpbHMtY2FyZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMCA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1tb2RhbC1iZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIHotaW5kZXg6IDk5OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLW1vZGFsLmNhcmQtbW9kYWwtb3BlbiArIC5jYXJkLW1vZGFsLWJnIHtcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbl9iZyAwLjVzIGVhc2UtaW47XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwdnc7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjU5OTg7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZGFuZ2VyIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXN1Y2Nlc3MgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOGE3NDU7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtd2FybmluZyAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNzsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1wcmltYXJ5IC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NGY2OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWxpZ2h0IC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWJsYWNrIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXdoaXRlIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWluZm8gLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxN2EyYjg7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZ3JheSAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1ncmF5LWRhcmtlbiAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RhZTBlNTsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1ncmF5LWxvdyAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWZmNDsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1iZy1ib2R5IC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXRyYW5zcGFyZW50IC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1ibHVlIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NGY2OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWluZGlnbyAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzY2MTBmMjsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1wdXJwbGUgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2ZjQyYzE7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtcGluayAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4M2U4YzsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1yZWQgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkYzM1NDU7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtb3JhbmdlIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmQ3ZTE0OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXllbGxvdyAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzEwNzsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1ncmVlbiAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC10ZWFsIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjBjOTk3OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWN5YW4gLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxN2EyYjg7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZ3JheS1tZWRpdW0gLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWU7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZ3JheS1kYXJrIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWNvbG9yLTEgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhNDljM2M7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtY29sb3ItMiAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZDQxNDsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1jb2xvci0zIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2MyNDI0OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWNvbG9yLTQgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4NDQ0NDQ7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtY29sb3ItNSAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDMsIDIxMiwgMjAsIDAuMTQpOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLWNvbG9yLTYgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjVkNTU7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZ3JlZW4tYXBwIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQ5YzNjOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXllbGxvdy1hcHAgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Q0MTQ7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQteWVsbG93LWxpZ2h0LWFwcCAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDMsIDIxMiwgMjAsIDAuMTQpOyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXJlZC1hcHAgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzI0MjQ7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtYnJvd24tYXBwIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODQ0NDQ0OyB9XG4gIGFwcC11dGlscy1jYXJkIC5jYXJkLXB1bXBraW4gLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjVkNTU7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZ3JlZW4tbGlnaHQgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYmU4YmE7IH1cbiAgYXBwLXV0aWxzLWNhcmQgLmNhcmQtZ3JlZW4tZGFyayAudDItY2FyZC1tYWluLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRjN2EzNDsgfVxuICBhcHAtdXRpbHMtY2FyZCAuY2FyZC1ncmVlbi1saWdodDIgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmVkZDY7IH1cbiAgYXBwLXV0aWxzLWNhcmQuY29udGFpbmVyLXRhYnMgPiAudDItY2FyZCA+IC5jYXJkLWNvbnRlbnQgPiAuY29udGVudCB7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIGFwcC11dGlscy1jYXJkLmNvbnRhaW5lci10YWJzID4gLnQyLWNhcmQgPiAuY2FyZC1jb250ZW50ID4gLmNvbnRlbnQgLnRhYnMtaGVhZGVyOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICAgICBhcHAtdXRpbHMtY2FyZC5jb250YWluZXItdGFicyA+IC50Mi1jYXJkID4gLmNhcmQtY29udGVudCA+IC5jb250ZW50IC50YWJzLWhlYWRlcjpsYXN0LWNoaWxkIC5tLWJ0bi5hY3RpdmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMxNDY0ZjY7IH1cbiAgYXBwLXV0aWxzLWNhcmQuY29udGFpbmVyLXRhYnMgLnRhYnMtaGVhZGVyIC5pbnB1dC1yYWRpbyBzcGFuIHtcbiAgICBjb2xvcjogIzAwMDsgfVxuICAgIGFwcC11dGlscy1jYXJkLmNvbnRhaW5lci10YWJzIC50YWJzLWhlYWRlciAuaW5wdXQtcmFkaW8gc3Bhbjo6YWZ0ZXIsIGFwcC11dGlscy1jYXJkLmNvbnRhaW5lci10YWJzIC50YWJzLWhlYWRlciAuaW5wdXQtcmFkaW8gc3Bhbjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gIGFwcC11dGlscy1jYXJkLmNvbnRhaW5lci10YWJzIC50YWJzLWhlYWRlciAuaW5wdXQtcmFkaW8gaW5wdXQ6Y2hlY2tlZCArIHNwYW4ge1xuICAgIGNvbG9yOiAjMTQ2NGY2OyB9XG4gIGFwcC11dGlscy1jYXJkLmNvbnRhaW5lci10YWJzIC50YWJzLWhlYWRlciAubS1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjhmOWZhO1xuICAgIHBhZGRpbmc6IDEwcHggNXB4O1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICBhcHAtdXRpbHMtY2FyZC5jb250YWluZXItdGFicyAudGFicy1oZWFkZXIgLm0tYnRuLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzE0NjRmNjtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzE0NjRmNjsgfVxuICAgIGFwcC11dGlscy1jYXJkLmNvbnRhaW5lci10YWJzIC50YWJzLWhlYWRlciAubS1idG46YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTsgfVxuICBhcHAtdXRpbHMtY2FyZC5jb250YWluZXItdGFicyAuY29udGVudC1zd2l0Y2gge1xuICAgIHBhZGRpbmc6IDE1cHg7IH1cblxuLnQyLWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjhmOWZhO1xuICBib3gtc2hhZG93OiAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLnQyLWNhcmQgLmNhcmQtY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cbiAgLnQyLWNhcmQgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudDItY2FyZCAudDItY2FyZC1tYWluLWhlYWRlci51aS1kcmFnZ2FibGUtaGFuZGxlIHtcbiAgICAgIGN1cnNvcjogbW92ZTsgfVxuICAgIC50Mi1jYXJkIC50Mi1jYXJkLW1haW4taGVhZGVyIC5jb250YWluZXItb3B0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnQyLWNhcmQgLmNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC50Mi1jYXJkIC5jb250ZW50LmhlYWRlci1mYWxzZSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIC50Mi1jYXJkIGZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmOGY5ZmE7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7IH1cbiAgLnQyLWNhcmQuY2FyZC1tb2RhbCB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRvcDogLTEwMHZoO1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgei1pbmRleDogLTk5OTsgfVxuICAgIC50Mi1jYXJkLmNhcmQtbW9kYWwgLmNhcmQtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudDItY2FyZC5jYXJkLW1vZGFsLmNhcmQtbW9kYWwtb3BlbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDk5OTsgfVxuICAudDItY2FyZC5jYXJkLXBvcCB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IC05OTk7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAgIC50Mi1jYXJkLmNhcmQtcG9wIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgICAudDItY2FyZC5jYXJkLXBvcC5jYXJkLXBvcC1vcGVuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogOTk5OyB9XG4gIC50Mi1jYXJkLmNhcmQtbWluaW1pemVkIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICByaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApICFpbXBvcnRhbnQ7IH1cbiAgICAudDItY2FyZC5jYXJkLW1pbmltaXplZCAuY2FyZC1jb250ZW50IC50Mi1jYXJkLW1haW4taGVhZGVyID4gLnRpdGxlIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgIC50Mi1jYXJkLmNhcmQtbWluaW1pemVkIC5jYXJkLWNvbnRlbnQgPiAuY29udGVudCB7XG4gICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG1heC1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnQyLWNhcmQuY2FyZC1taW5pbWl6ZWQgLnVpLXJlc2l6YWJsZS1oYW5kbGUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLnQyLWNhcmQuY2FyZC1taW5pbWl6ZWQubWluaW1pemVkLW5vdC1kaXNwbGF5IHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB6LWluZGV4OiAtOTk7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1heC13aWR0aDogMDtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbl9iZyB7XG4gIDAlIHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDEwMHZ3OyB9XG4gIDEwMCUge1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgb3BhY2l0eTogMTtcbiAgICB3aWR0aDogMTAwdnc7IH0gfVxuIiwiLy9Db2xvcmVzXHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBib2R5XHJcbiAqXHJcbiAqIEBzZWN0aW9uIFZhcnNcclxuICogQGNvbG9yIGJnLWJvZHkgKi9cclxuJGJnLWJvZHk6ICNmZmYgIWRlZmF1bHQ7IC8vQ29sb3IgZGUgYmFja2dyb3VuZCBkZWwgYm9keVxyXG5cclxuIC8qKiBAY29sb3IgU29saWQgYmxhY2sgKi9cclxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciB0cmFuc3BhcmVudCAqL1xyXG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4gLyoqIEBjb2xvciBibHVlICovXHJcbiRibHVlOiAjMTQ2NGY2ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGluZGlnbyAqL1xyXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHB1cnBsZSAqL1xyXG4kcHVycGxlOiAjNmY0MmMxICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHBpbmsgKi9cclxuJHBpbms6ICNlODNlOGMgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgcmVkICovXHJcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3Igb3JhbmdlICovXHJcbiRvcmFuZ2U6ICNmZDdlMTQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgeWVsbG93ICovXHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JlZW4gKi9cclxuJGdyZWVuOiAjMjhhNzQ1ICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIHRlYWwgKi9cclxuJHRlYWw6ICMyMGM5OTcgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgY3lhbiAqL1xyXG4kY3lhbjogIzE3YTJiOCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciB3aGl0ZSAqL1xyXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheSAqL1xyXG4kZ3JheTogIzZjNzU3ZCAhZGVmYXVsdDtcclxuLyoqIEBjb2xvciBncmF5LWxvdyAqL1xyXG4kZ3JheS1sb3c6ICNlY2VmZjQgIWRlZmF1bHQ7XHJcbi8qKiBAY29sb3IgZ3JheS1tZWRpdW0gKi9cclxuJGdyYXktbWVkaXVtOiAjZWNlY2VlICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGdyYXktZGFyayAqL1xyXG4kZ3JheS1kYXJrOiAjMzQzYTQwICFkZWZhdWx0O1xyXG4vKiogQGNvbG9yIGxpZ2h0ICovXHJcbiRsaWdodDogI2Y4ZjlmYSAhZGVmYXVsdDtcclxuXHJcbi8qKiBAY29sb3IgY29sb3Itc2VjdW5kYXJ5ICovXHJcbiRjb2xvci1zZWN1bmRhcnk6ICMzYjU5OTg7XHJcblxyXG4kZ3JlZW4tYXBwOiAjYTQ5YzNjO1xyXG4keWVsbG93LWFwcDogI2YzZDQxNDtcclxuJHllbGxvdy1saWdodC1hcHA6IHJnYmEoJHllbGxvdy1hcHAsIC4xNCk7XHJcbiRyZWQtYXBwOiAjY2MyNDI0O1xyXG4kYnJvd24tYXBwOiAjODQ0NDQ0O1xyXG4kcHVtcGtpbjogI2ZmNWQ1NTtcclxuJGdyZWVuLWxpZ2h0LWFwcDogI2NiZThiYTtcclxuJGdyZWVuLWxpZ2h0Mi1hcHA6ICNkZmVkZDY7XHJcbiRncmVlbi1kYXJrLWFwcDogIzRjN2EzNDtcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIENvbG9yLXByaW1hcnlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXByaW1hcnlcclxuICovXHJcbiRjb2xvci1wcmltYXJ5OiAkYmx1ZTtcclxuXHJcbi8qKlxyXG4gKiBDb2xvci1zdWNjZXNzIGVzIHV0aWxpemFkbyBlbiBldmVudG9zIHNhdGlzZmFjdG9yaW9zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1zdWNjZXNzXHJcbiAqL1xyXG4kY29sb3Itc3VjY2VzczogJGdyZWVuO1xyXG4vKipcclxuICogQ29sb3ItaW5mb1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItaW5mb1xyXG4gKi9cclxuJGNvbG9yLWluZm86ICRjeWFuO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yLXdhcm5pbmdcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdhcm5pbmdcclxuICovXHJcbiRjb2xvci13YXJuaW5nOiAkeWVsbG93O1xyXG4vKipcclxuICogQ29sb3ItZGFuZ2VyXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYW5nZXJcclxuICovXHJcbiRjb2xvci1kYW5nZXI6ICRyZWQ7XHJcbi8qKlxyXG4gKiBDb2xvci1saWdodFxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHRcclxuICovXHJcbiRjb2xvci1saWdodDogJGxpZ2h0O1xyXG4vKipcclxuICogQ29sb3ItbGlnaHQtZGFya2VuXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1saWdodC1kYXJrZW5cclxuICovXHJcbiRjb2xvci1saWdodC1kYXJrZW46IGRhcmtlbigkbGlnaHQsIDEwJSk7XHJcbi8qKlxyXG4gKiBDb2xvci1kYXJrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZGFyazogJGdyYXktZGFyaztcclxuLyoqXHJcbiAqIENvbG9yLWdyYXlcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWdyYXlcclxuICovXHJcbiRjb2xvci1ncmF5OiAkZ3JheTtcclxuLyoqXHJcbiAqIENvbG9yLWdyYXktZGFya1xyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItZ3JheS1kYXJrXHJcbiAqL1xyXG4kY29sb3ItZ3JheS1kYXJrOiAkZ3JheS1kYXJrO1xyXG4vKipcclxuICogQ29sb3Itd2hpdGVcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXdoaXRlXHJcbiAqL1xyXG4kY29sb3Itd2hpdGU6ICR3aGl0ZTtcclxuLyoqXHJcbiAqIENvbG9yLWJsYWNrXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci1ibGFja1xyXG4gKi9cclxuJGNvbG9yLWJsYWNrOiAkYmxhY2s7XHJcbi8qKlxyXG4gKiBDb2xvci10ZXh0LWRlZmF1bHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLXRleHQtZGVmYXVsdFxyXG4gKi9cclxuJGNvbG9yLXRleHQtZGVmYXVsdDogJGJsYWNrO1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0yXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTJcclxuICovXHJcbiRjb2xvci10ZXh0LTI6ICRncmF5O1xyXG4vKipcclxuICogQ29sb3ItdGV4dC0zXHJcbiAqXHJcbiAqIEBzZWN0aW9uIENvbmZpZyA+IGNvbG9yc1xyXG4gKiBAbnVjbGlkZSBjb2xvci10ZXh0LTNcclxuICovXHJcbiRjb2xvci10ZXh0LTM6ICRncmF5LWRhcms7XHJcblxyXG4vKipcclxuICogQ29sb3ItbGlnaHRcclxuICpcclxuICogQHNlY3Rpb24gQ29uZmlnID4gY29sb3JzXHJcbiAqIEBudWNsaWRlIGNvbG9yLWxpZ2h0XHJcbiAqL1xyXG4kY29sb3ItbGlnaHQ6ICRjb2xvci1saWdodDtcclxuLyoqXHJcbiAqIENvbG9yLWxpZ2h0LWRhcmtlblxyXG4gKlxyXG4gKiBAc2VjdGlvbiBDb25maWcgPiBjb2xvcnNcclxuICogQG51Y2xpZGUgY29sb3ItbGlnaHQtZGFya2VuXHJcbiAqL1xyXG4kY29sb3ItbGlnaHQtZGFya2VuOiAkY29sb3ItbGlnaHQtZGFya2VuO1xyXG5cclxuXHJcbiRjb2xvci0xOiAkZ3JlZW4tYXBwO1xyXG4kY29sb3ItMjogJHllbGxvdy1hcHA7XHJcbiRjb2xvci0zOiAkcmVkLWFwcDtcclxuJGNvbG9yLTQ6ICRicm93bi1hcHA7XHJcbiRjb2xvci01OiAkeWVsbG93LWxpZ2h0LWFwcDtcclxuJGNvbG9yLTY6ICRwdW1wa2luO1xyXG5cclxuLyoqXHJcbmFycmF5IG9mIGNvbG9yc1xyXG4qL1xyXG4kY29sb3JzOiAoXHJcbiAgICAnZGFuZ2VyJzogJGNvbG9yLWRhbmdlcixcclxuICAgICdzdWNjZXNzJzogJGNvbG9yLXN1Y2Nlc3MsXHJcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxyXG4gICAgJ3ByaW1hcnknOiAkY29sb3ItcHJpbWFyeSxcclxuICAgICdsaWdodCc6ICRjb2xvci1saWdodCxcclxuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcclxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcclxuICAgICdpbmZvJzogJGNvbG9yLWluZm8sXHJcbiAgICAnZ3JheSc6ICRjb2xvci1ncmF5LFxyXG4gICAgJ2dyYXktZGFya2VuJzogJGNvbG9yLWxpZ2h0LWRhcmtlbixcclxuICAgICdncmF5LWxvdyc6ICRncmF5LWxvdyxcclxuICAgICdiZy1ib2R5JyA6ICRiZy1ib2R5LFxyXG4gICAgJ3RyYW5zcGFyZW50JzogJHRyYW5zcGFyZW50LFxyXG4gICAgJ2JsdWUnOiAkYmx1ZSxcclxuICAgICdpbmRpZ28nOiAkaW5kaWdvLFxyXG4gICAgJ3B1cnBsZSc6ICRwdXJwbGUsXHJcbiAgICAncGluayc6ICRwaW5rLFxyXG4gICAgJ3JlZCc6ICRyZWQsXHJcbiAgICAnb3JhbmdlJzogJG9yYW5nZSxcclxuICAgICd5ZWxsb3cnOiAkeWVsbG93LFxyXG4gICAgJ2dyZWVuJzogJGdyZWVuLFxyXG4gICAgJ3RlYWwnOiAkdGVhbCxcclxuICAgICdjeWFuJzogJGN5YW4sXHJcbiAgICAnZ3JheS1tZWRpdW0nOiAkZ3JheS1tZWRpdW0sXHJcbiAgICAnZ3JheS1kYXJrJzogJGdyYXktZGFyayxcclxuICAgICdjb2xvci0xJzogJGNvbG9yLTEsXHJcbiAgICAnY29sb3ItMic6ICRjb2xvci0yLFxyXG4gICAgJ2NvbG9yLTMnOiAkY29sb3ItMyxcclxuICAgICdjb2xvci00JzogJGNvbG9yLTQsXHJcbiAgICAnY29sb3ItNSc6ICRjb2xvci01LFxyXG4gICAgJ2NvbG9yLTYnOiAkY29sb3ItNixcclxuICAgICdncmVlbi1hcHAnOiAkZ3JlZW4tYXBwLFxyXG4gICAgJ3llbGxvdy1hcHAnOiAkeWVsbG93LWFwcCxcclxuICAgICd5ZWxsb3ctbGlnaHQtYXBwJzogJHllbGxvdy1saWdodC1hcHAsXHJcbiAgICAncmVkLWFwcCc6ICRyZWQtYXBwLFxyXG4gICAgJ2Jyb3duLWFwcCc6ICRicm93bi1hcHAsXHJcbiAgICAncHVtcGtpbic6ICRwdW1wa2luLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogJGdyZWVuLWxpZ2h0LWFwcCxcclxuICAgICdncmVlbi1kYXJrJzogJGdyZWVuLWRhcmstYXBwLFxyXG4gICAgJ2dyZWVuLWxpZ2h0Mic6ICRncmVlbi1saWdodDItYXBwLFxyXG4gICk7XHJcbiIsIlxyXG4vKipcclxuICogRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgYSBweCBiYXNlZCBmb250LXNpemUgdG8gcmVtLlxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gRnVuY3Rpb25zXHJcbiAqIEBwYXJhbSAkc2l6ZSB0YW1hw7FvIGRlIGxhIGZ1ZW50ZSBlbiBweFxyXG4gKiBAZXhhbXBsZSBmb250LXNpemU6IGNhbGN1bGF0ZS1yZW0oJHNpemUpXHJcbiAqL1xyXG5AZnVuY3Rpb24gY2FsY3VsYXRlLXJlbSgkc2l6ZSkge1xyXG4gICRyZW0tc2l6ZTogJHNpemUgLyAkZm9udC1zaXplLWRlZmF1bHQ7XHJcbiAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xyXG4gIEByZXR1cm4gI3skcmVtLXNpemV9cmVtO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnN0cmFzdC1jb2xvcigkY29sb3IpIHtcclxuICAkcjogcmVkKCRjb2xvcik7XHJcbiAgJGc6IGdyZWVuKCRjb2xvcik7XHJcbiAgJGI6IGJsdWUoJGNvbG9yKTtcclxuXHJcbiAkbHVtaW5hbmNlOiAoKCRyKjI5OSkgKyAoJGcqNTg3KSArICgkYioxMTQpKS8xMDAwO1xyXG5cclxuICBAaWYgKCRsdW1pbmFuY2UgPj0gMTI4KSB7XHJcbiAgICBAcmV0dXJuICMwMDA7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gI2ZmZjtcclxuICB9XHJcbn0iLCIvKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1keW5hbWljICgkbWluOiA1LCAkbWF4OiAxOTIwLCAkc3RlcDogNSwgJGNsYXNzOiAndycpIHtcclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbHRvcyBEaW5hbWljb3NcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFsdG8gbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IEFsdG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEBoZWlnaHQtZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LWR5bmFtaWMgKCRtaW46IDUsICRtYXg6IDE5MjAsICRzdGVwOiAxLCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIGhlaWdodDogI3skbWluKydweCd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgQWx0b3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbHRvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbHRvIE1heGltb1xyXG4gKiBAcGFyYW0gJHN0ZXAgU2FsdG9zXHJcbiAqIEBwYXJhbSAkY2xhc3MgQ2xhc2VzIGEgc2lnbmFyIGxvcyBlc3RpbG9zXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBAaGVpZ2h0LXBlcmNlbnQoKVxyXG4gKi9cclxuQG1peGluIGhlaWdodC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXAge1xyXG4gICAgICBoZWlnaHQ6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFsdG9zIERpbmFtaWNvcyBlbiB2aFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gQWx0byBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQWx0byBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgQGhlaWdodC12aWV3cG9ydCgpXHJcbiAqL1xyXG5AbWl4aW4gaGVpZ2h0LXZpZXdwb3J0ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdoJykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9I3skbWlufXZoIHtcclxuICAgICAgaGVpZ2h0OiAjeyRtaW4rJ3ZoJ307XHJcbiAgICB9XHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBBbmNob3MgRGluYW1pY29zIGVuIHBvcmNlbnRhamVzXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBBbmNobyBtaW5pbW9cclxuICogQHBhcmFtICRtYXggQW5jaG8gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIEB3aWR0aC1wZXJjZW50KClcclxuICovXHJcbkBtaXhpbiB3aWR0aC1wZXJjZW50ICgkbWluOiA1LCAkbWF4OiAxMDAsICRzdGVwOiA1LCAkY2xhc3M6ICd3Jykge1xyXG5cclxuICAuI3skY2xhc3N9LWF1dG8ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICBAd2hpbGUgJG1pbiA8PSAkbWF4IHtcclxuICAgIC4jeyRjbGFzc30jeyRtaW59cCB7XHJcbiAgICAgIHdpZHRoOiAjeyRtaW4rJyUnfTtcclxuICAgIH1cclxuICAgICRtaW46ICRtaW4gKyAkc3RlcDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIEFuY2hvcyBEaW5hbWljb3MgZGUgcm93cyBEaW5hbWljb3MgZW4gcG9yY2VudGFqZXNcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIEFuY2hvIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBBbmNobyBNYXhpbW9cclxuICogQHBhcmFtICRzdGVwIFNhbHRvc1xyXG4gKiBAcGFyYW0gJGNsYXNzIENsYXNlcyBhIHNpZ25hciBsb3MgZXN0aWxvc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgcm93LWR5bmFtaWMtbm90LWNhbGMoKVxyXG4gKi9cclxuQG1peGluIHJvdy1keW5hbWljLW5vdC1jYWxjICgkbWluOiAxLCAkbWF4OiAxMDAsICRzdGVwOiAxLCAkY2xhc3M6ICdyb3cnKSB7XHJcblxyXG4gICYgPiAqIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgd2lkdGg6ICN7JG1pbisnJSd9O1xyXG4gICAgfVxyXG4gICAgJG1pbjogJG1pbiArICRzdGVwO1xyXG4gIH1cclxuXHJcbiAgJHN0YXJ0OiAwO1xyXG4gICRlbmQ6IDEwMDA7XHJcbiAgJHM6IDU7XHJcbiAgQHdoaWxlICRzdGFydCA8PSAkZW5kIHtcclxuICAgIC4jeyRjbGFzc30tI3sxMDB9LSN7JHN0YXJ0fSB7XHJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzdGFydCsncHgnfSk7XHJcbiAgICB9XHJcbiAgICAkc3RhcnQ6ICRzdGFydCArICRzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIE1hcmdlbmVzIERpbmFtaWNvcyBlbiBQWFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gbWFyZ2luIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBtYXJnaW4gTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIG1hcmdpbi1keW5hbWljKClcclxuICovXHJcbkBtaXhpbiBtYXJnaW4tZHluYW1pYyAoJG1pbjogNSwgJG1heDogNTAwLCAkc3RlcDogNSwgJGNsYXNzOiAnbScpIHtcclxuICAuI3skY2xhc3N9bHItYXV0byB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQHdoaWxlICRtaW4gPD0gJG1heCB7XHJcbiAgICAuI3skY2xhc3N9dCN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310LSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtI3skbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31sLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9ciN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yLSN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0jeyRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9Yi0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAuI3skY2xhc3N9I3skbWlufSB7XHJcbiAgICAgIG1hcmdpbjogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfS0jeyRtaW59IHtcclxuICAgICAgbWFyZ2luOiAtKCN7MCArICRtaW4rJ3B4J30pO1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXRvcDogI3swICsgJG1pbisncHgnfTs7XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAjezAgKyAkbWluKydweCd9OztcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBQYWRkaW5ncyBEaW5hbWljb3MgZW4gUFhcclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkbWluIHBhZGRpbmcgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IHBhZGRpbmcgTWF4aW1vXHJcbiAqIEBwYXJhbSAkc3RlcCBTYWx0b3NcclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIHBhZGRpbmctZHluYW1pYygpXHJcbiAqL1xyXG5AbWl4aW4gcGFkZGluZy1keW5hbWljICgkbWluOiAwLCAkbWF4OiAzMDAsICRzdGVwOiA1LCAkY2xhc3M6ICdwJykge1xyXG4gIEB3aGlsZSAkbWluIDw9ICRtYXgge1xyXG4gICAgLiN7JGNsYXNzfXQjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWwjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc31yI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWIjeyRtaW59IHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfSN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nOiAjezAgKyAkbWluKydweCd9O1xyXG4gICAgfVxyXG5cclxuICAgIC4jeyRjbGFzc310YiN7JG1pbn0ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy10b3A6ICN7MCArICRtaW4rJ3B4J307XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JGNsYXNzfWxyI3skbWlufSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogI3swICsgJG1pbisncHgnfTtcclxuICAgICAgcGFkZGluZy1yaWdodDogI3swICsgJG1pbisncHgnfTtcclxuICAgIH1cclxuXHJcbiAgICAkbWluOiAkbWluICsgJHN0ZXA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZXMgcGFyYSBmb250LXNpemUgRGluYW1pY29zXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgbWluaW1vXHJcbiAqIEBwYXJhbSAkbWF4IGZvbnQtc2l6ZSBNYXhpbW9cclxuICogQHBhcmFtICRjbGFzcyBDbGFzZXMgYSBzaWduYXIgbG9zIGVzdGlsb3NcclxuICogQGV4YW1wbGVcclxuICogIEBpbmNsdWRlIGZvbnQtc2l6ZS1lbSgpXHJcbiAqL1xyXG5AbWl4aW4gZm9udC1zaXplLWVtICgkbWluOiAwLCAkbWF4OiA0LCAkY2xhc3M6ICdlbScpIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgJGN1cnJlbnQtbWluOiAwO1xyXG4gICAgJGN1cnJlbnQtbWF4OiA5O1xyXG4gICAgJHN0ZXA6IDE7XHJcbiAgICBAd2hpbGUgJGN1cnJlbnQtbWluIDw9ICRjdXJyZW50LW1heCB7XHJcbiAgICAgIC4jeyRjbGFzc30tI3skaX0tI3skY3VycmVudC1taW59IHtcclxuICAgICAgICBmb250LXNpemU6ICN7JGl9I3snLid9I3skY3VycmVudC1taW59ZW07XHJcbiAgICAgIH1cclxuICAgICAgJGN1cnJlbnQtbWluOiAkY3VycmVudC1taW4gKyAkc3RlcDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmFyIGNsYXNlcyBwYXJhIGZvbnQtc2l6ZSBEaW5hbWljb3MgZW4gcmVtXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJG1pbiBmb250LXNpemUgcmVtIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgcmVtIE1heGltb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgZm9udC1zaXplLWVtKClcclxuICovXHJcbkBtaXhpbiBmb250LXNpemUtcmVtICgkbWluOiAwLCAkbWF4OiA0KSB7XHJcbiAgQGZvciAkaSBmcm9tICRtaW4gdGhyb3VnaCAkbWF4IHtcclxuICAgICRjdXJyZW50LW1pbjogMDtcclxuICAgICRjdXJyZW50LW1heDogOTtcclxuICAgICRzdGVwOiAxO1xyXG4gICAgQHdoaWxlICRjdXJyZW50LW1pbiA8PSAkY3VycmVudC1tYXgge1xyXG4gICAgICAucmVtLSN7JGl9LSN7JGN1cnJlbnQtbWlufSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRpfSN7Jy4nfSN7JGN1cnJlbnQtbWlufXJlbTtcclxuICAgICAgfVxyXG4gICAgICAkY3VycmVudC1taW46ICRjdXJyZW50LW1pbiArICRzdGVwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2VzIHBhcmEgZm9udC1zaXplIERpbmFtaWNvcyBlbiBweFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRtaW4gZm9udC1zaXplIG1pbmltb1xyXG4gKiBAcGFyYW0gJG1heCBmb250LXNpemUgTWF4aW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUtcHgoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZS1weCAoJG1pbjogMCwgJG1heDogNTApIHtcclxuICBAZm9yICRpIGZyb20gJG1pbiB0aHJvdWdoICRtYXgge1xyXG4gICAgLmZvbnQtI3skaX0tcHgge1xyXG4gICAgICBmb250LXNpemU6ICN7JGl9cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIENhbGN1bGFyIGNvbnZlcnRpciBmb250IHNpemUgZGUgcHggYSByZW1cclxuICogQG1peGluXHJcbiAqIEBzZWN0aW9uIG1peGluXHJcbiAqIEBwYXJhbSAkc2l6ZSBmb250LXNpemUgbWluaW1vXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBmb250LXNpemUoKVxyXG4gKi9cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSkge1xyXG4gIGZvbnQtc2l6ZTogY2FsY3VsYXRlLXJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogR2VuZXJhciBjbGFzZSBwYXJhIHN1YnJheWFkbyBjb24gYW5pbWFjaW9uXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBtaXhpblxyXG4gKiBAcGFyYW0gJGhlaWdodCBhbHRvXHJcbiAqIEBwYXJhbSAkY29sb3IgQ29sb3JcclxuICogQHBhcmFtICRwc2V1ZG8tZWxlbWVudCBwc2V1ZG8gYSBhZ3JlZ2FyIGVsIGVzdGlsb1xyXG4gKiBAZXhhbXBsZVxyXG4gKiAgQGluY2x1ZGUgaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlcigpXHJcbiAqL1xyXG5AbWl4aW4gaHZyLXVuZGVybGluZS1mcm9tLWNlbnRlciAoICRoZWlnaHQ6IDFweCwgJGNvbG9yOiAkY29sb3ItcHJpbWFyeSwgJHBzZXVkby1lbGVtZW50OiAnOmFmdGVyJykge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJiN7JHBzZXVkby1lbGVtZW50fSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiA1MSU7XHJcbiAgICByaWdodDogNTElO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgcmlnaHQ7XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gIH1cclxuICAmLmFjdGl2ZSN7JHBzZXVkby1lbGVtZW50fSxcclxuICAmOmhvdmVyI3skcHNldWRvLWVsZW1lbnR9LFxyXG4gICY6Zm9jdXMjeyRwc2V1ZG8tZWxlbWVudH0sXHJcbiAgJjphY3RpdmUjeyRwc2V1ZG8tZWxlbWVudH0ge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXIgY2xhc2UgcGVyc29uYWxpemFjaW9uIGRlIHNjcm9sbFxyXG4gKiBAbWl4aW5cclxuICogQHNlY3Rpb24gbWl4aW5cclxuICogQHBhcmFtICRvdmVyZmxvdyBzY3JvbGwgYSBhcGxpY2FyIGVsIGVzdGlsbyAob3ZlcmZsb3cgfCBvdmVyZmxvdy15IHwgb3ZlcmZsb3cteClcclxuICogQHBhcmFtICR3aWR0aCBBbmNob1xyXG4gKiBAcGFyYW0gJGNvbG9yIENvbG9yXHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSBfc2Nyb2xsYmFyKClcclxuICovXHJcbkBtaXhpbiBfc2Nyb2xsYmFyICgkb3ZlcmZsb3c6ICdvdmVyZmxvdycsICR3aWR0aDogMTBweCwgJGNvbG9yOiAkY29sb3ItbGlnaHQtZGFya2VuKSB7XHJcblxyXG4gICN7JG92ZXJmbG93fTogc2Nyb2xsO1xyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH1cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgIGJveC1zaGFkb3c6ICAwIDAgNnB4IHJnYmEoJGNvbG9yLCAwLjUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzdGF1cmEgdG9kYXMgbGFzIHByb3BpZWRhZGVzLCBleGNlcHRvIHVuaWNvZGUtYmlkaSB5IGRpcmVjdGlvbiwgYSBzdSB2YWxvciBpbmljaWFsIG8gaGVyZWRhZG8uXHJcbiAqXHJcbiAqIEBtaXhpblxyXG4gKiBAc2VjdGlvbiBEaXNwbGF5XHJcbiAqIEBwYXJhbSAkdmFsdWUgaW5oZXJpdCB8fCBpbml0aWFsIHx8IHVuc2V0XHJcbiAqIEBleGFtcGxlXHJcbiAqICBAaW5jbHVkZSByZXNldCgpO1xyXG4gKi9cclxuIEBtaXhpbiByZXNldCgkdmFsdWU6IGluaXRpYWwpIHtcclxuICBhbGw6ICR2YWx1ZTtcclxuICBkaXNwbGF5OiBpbml0aWFsO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1kZWZhdWx0O1xyXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1kZWZhdWx0O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59IiwiLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyByZWJvdW5kXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcmVib3RlXHJcbiAqIEBtb2RpZmllcnNcclxuICogIC5yZWJvdW5kLWFuaW1hdGlvbiAgLnBvc2l0aW9uLXJlbGF0aXZlIHx8IC5wb3NpdGlvbi1hYnNvbHV0ZSB8fCAucG9zaXRpb24tZml4ZWRcclxuICogQG1hcmt1cFxyXG4gKiAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2VjdW5kYXJ5IGJ0bi1jaXJjbGUgcmVib3VuZC1hbmltYXRpb25cIj5TPC9idXR0b24+XHJcbiAqL1xyXG4ucmVib3VuZC1hbmltYXRpb257XHJcbiAgYW5pbWF0aW9uLW5hbWU6X3JlYm91bmQtYW5pbWF0aW9uO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjVzO1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHJcbiAgQGtleWZyYW1lcyBfcmVib3VuZC1hbmltYXRpb24ge1xyXG4gICAgMCV7XHJcbiAgICAgIHRvcDowcHg7XHJcbiAgICB9XHJcbiAgICAxMDAle1xyXG4gICAgICB0b3A6NXB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBhdG9tIEFuaW1hdGlvblxyXG4gKiBAc2VjdGlvbiBIZWxwZXJzID4gQW5pbWF0aW9ucyBmbGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiBBbWltYWNpb24gZGUgcGFycGFkZW9cclxuICogQG1vZGlmaWVyc1xyXG4gKiAgLmZsaWNrZXIgQW5pbWFjaW9uIGRlIHBhcnBhZGVvXHJcbiAqIEBtYXJrdXBcclxuICogIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY3VuZGFyeSBmbGlja2VyXCI+ZmxpY2tlcjwvYnV0dG9uPlxyXG4gKi9cclxuLmZsaWNrZXIge1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBfZmxpY2tlci1hbWltYXRpb247XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG4gIEBrZXlmcmFtZXMgX2ZsaWNrZXItYW1pbWF0aW9uIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgNTAlIHsgb3BhY2l0eTogLjU7IH1cclxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAaW1wb3J0ICd+c3JjL3Njc3MvY29uZmlncyc7XHJcblxyXG4kdGltZTogLjVzO1xyXG5cclxuYXBwLXV0aWxzLWNhcmQge1xyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAwIDVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC5jYXJkLW1vZGFsLWJnIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYWNrLCAuNSk7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgei1pbmRleDogOTk7XHJcbiAgfVxyXG5cclxuICAuY2FyZC1tb2RhbC5jYXJkLW1vZGFsLW9wZW4gKyAuY2FyZC1tb2RhbC1iZyB7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbl9iZyAkdGltZSBlYXNlLWluO1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB3aWR0aDogMTAwdnc7XHJcbiAgfVxyXG5cclxuICAudDItY2FyZC1tYWluLWhlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2VjdW5kYXJ5O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICB9XHJcblxyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGNvbG9ycyB7XHJcbiAgICAuY2FyZC0jeyRrZXl9IHtcclxuICAgICAgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2YWw7XHJcbiAgICAgICAgLy8gY29sb3I6IGNob29zZS1jb25zdHJhc3QtY29sb3IoJHZhbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gICYuY29udGFpbmVyLXRhYnMge1xyXG5cclxuICAgICYgPiAudDItY2FyZCA+IC5jYXJkLWNvbnRlbnQgPiAuY29udGVudCB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAudGFicy1oZWFkZXI6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuXHJcbiAgICAgICAgLm0tYnRuIHtcclxuICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItcHJpbWFyeVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLnRhYnMtaGVhZGVyIHtcclxuXHJcbiAgICAgIC5pbnB1dC1yYWRpbyB7XHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG5cclxuICAgICAgICAgICY6OmFmdGVyLFxyXG4gICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlucHV0OmNoZWNrZWQgKyBzcGFuIHtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICAubS1idG4ge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHQ7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCA1cHg7XHJcbiAgICAgICAgb3BhY2l0eTogLjU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudC1zd2l0Y2gge1xyXG4gICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4udDItY2FyZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWJvZHk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0O1xyXG4gIGJveC1zaGFkb3c6IDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbiAgbWluLWhlaWdodDogMTAwcHg7XHJcbiAgbWluLXdpZHRoOiAxNTBweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAuY2FyZC1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1ib2R5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuXHJcbiAgLnQyLWNhcmQtbWFpbi1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJi51aS1kcmFnZ2FibGUtaGFuZGxlIHtcclxuICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWluZXItb3B0aW9ucyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmLmhlYWRlci1mYWxzZSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb290ZXIge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgJi5jYXJkLW1vZGFsIHtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgdG9wOiAtMTAwdmg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG4gICAgei1pbmRleDogLTk5OTtcclxuXHJcbiAgICAuY2FyZC1jb250ZW50IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgICYuY2FyZC1tb2RhbC1vcGVuIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICB6LWluZGV4OiA5OTk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJi5jYXJkLXBvcCB7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHotaW5kZXg6IC05OTk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG5cclxuICAgIC50Mi1jYXJkLW1haW4taGVhZGVyIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMFxyXG4gICAgfVxyXG5cclxuICAgICYuY2FyZC1wb3Atb3BlbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB6LWluZGV4OiA5OTk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmNhcmQtbWluaW1pemVkIHtcclxuICAgIHdpZHRoOiAyNTBweDtcclxuICAgIG1heC13aWR0aDogMjUwcHg7XHJcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRvcDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBtYXgtaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgIWltcG9ydGFudDtcclxuXHJcbiAgICAuY2FyZC1jb250ZW50IHtcclxuXHJcbiAgICAgIC50Mi1jYXJkLW1haW4taGVhZGVyID4gLnRpdGxlIHtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYgPiAuY29udGVudCB7XHJcbiAgICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgIG1heC1oZWlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnVpLXJlc2l6YWJsZS1oYW5kbGUge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5taW5pbWl6ZWQtbm90LWRpc3BsYXkge1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICB6LWluZGV4OiAtOTk7XHJcbiAgICAgIHdpZHRoOiAwO1xyXG4gICAgICBtYXgtd2lkdGg6IDA7XHJcbiAgICAgIG1pbi13aWR0aDogMDtcclxuICAgICAgbWF4LWhlaWdodDogMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uX2JnIHtcclxuICAwJSAge1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB3aWR0aDogMTAwdnc7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB3aWR0aDogMTAwdnc7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0= */\"","import { Component, OnInit, Input, ElementRef, EventEmitter, ViewChild, Output, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\n\r\ndeclare const jQuery: any;\r\n\r\n@Component({\r\n selector: 'app-utils-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CardComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() classStyle: string;\r\n @Input() title: string; // Titulo de la cabecera\r\n @Input() draggable: boolean; // Si es arrastable\r\n @Input() resizable: boolean; // Si es redimencionable\r\n @Input() modal: boolean; // Si es typo modal\r\n @Input() pop: boolean; // Si es typo pop\r\n @Input() popElementRef: ElementRef;\r\n @Input() btnClose = true;\r\n @Input() btnMinimize = false;\r\n @Input() minimizeNotDisplay: false;\r\n @Input() header = true;\r\n @Input() position = 'left';\r\n @Input() openRef: Element;\r\n @Input() top: string;\r\n @Input() height: string;\r\n @Output() EmitterAction: EventEmitter < any > = new EventEmitter < any > ();\r\n @ViewChild('draggable') el: ElementRef; // Referencial al elemento\r\n isOpen = false;\r\n isMinimized = false;\r\n progress = false;\r\n\r\n constructor(private card: ElementRef) {\r\n this.title = this.title ? this.title : 'Card';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n /**\r\n * @Description:\r\n */\r\n ngAfterViewInit() {\r\n if (this.draggable) {\r\n jQuery(this.el.nativeElement)\r\n .draggable({\r\n handle: '.t2-card-main-header',\r\n containment: this.modal || this.pop ? 'body' : '#layout-main-content'\r\n });\r\n }\r\n if (this.resizable) {\r\n jQuery(this.el.nativeElement)\r\n .resizable();\r\n }\r\n }\r\n\r\n /**\r\n * @desc Abrir y/o cerrar la modal\r\n */\r\n toggle() {\r\n // this.isOpen = !this.isOpen;\r\n return this.isOpen ? this.close() : this.open();\r\n }\r\n\r\n\r\n position_x() {\r\n let elem = jQuery(this.openRef).offset().left;\r\n elem = parseInt(elem, 10);\r\n const dom = window.innerWidth - 60;\r\n const clientWidth = jQuery('.card-pop', this.card.nativeElement).width() - 60;\r\n if ((dom - elem) > clientWidth) {\r\n return elem;\r\n } else if (clientWidth < elem) {\r\n return `${elem - clientWidth - 60}`;\r\n } else {\r\n return (dom / 2) - clientWidth / 2;\r\n }\r\n }\r\n\r\n position_y() {\r\n let elem = jQuery(this.openRef).offset().top;\r\n elem = parseInt(elem, 10);\r\n const dom = window.innerHeight - 50;\r\n const client = jQuery('.card-pop', this.card.nativeElement).height() - 50;\r\n if ((dom - elem) > client) {\r\n return elem + 50;\r\n } else if (client < elem) {\r\n return `${elem - client - 50}`;\r\n } else {\r\n return (dom / 2) - client / 2;\r\n }\r\n }\r\n\r\n /**\r\n * @desc Abrir la modal\r\n * @return Object \r\n */\r\n open(event ? ): boolean {\r\n this.isOpen = true;\r\n if (!this.modal && !this.pop) {\r\n this.el.nativeElement.style.display = 'block';\r\n this.emitter();\r\n } else if (this.modal) {\r\n this.el.nativeElement.style.top = '-200vh';\r\n this.el.nativeElement.style.position = 'fixed';\r\n setTimeout(() => {\r\n this.el.nativeElement.style.top = this.top ? this.top : '100px';\r\n this.el.nativeElement.style.position = 'fixed';\r\n const w_ele = this.el.nativeElement.clientWidth;\r\n const w_window = window.innerWidth;\r\n // const left = w_ele < w_window ? (w_window - w_ele) / 2 : 0;\r\n this.el.nativeElement.style.left = `50%`;\r\n this.el.nativeElement.style.transform = `translateX(-50%)`;\r\n this.emitter();\r\n }, 100);\r\n } else {\r\n this.el.nativeElement.style.position = 'fixed';\r\n if (!this.openRef) {\r\n this.el.nativeElement.style.top = event.y + 'px';\r\n this.el.nativeElement.style.left = event.x + 'px';\r\n } else {\r\n this.el.nativeElement.style.left = this.position_x() + 'px';\r\n this.el.nativeElement.style.top = this.position_y() + 'px';\r\n }\r\n\r\n // this.el.nativeElement.style.opacity = '0';\r\n this.emitter();\r\n\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @desc Cerrar la modal\r\n * @return Object \r\n */\r\n close() {\r\n this.isOpen = false;\r\n this.isMinimized = false;\r\n if (!this.modal && !this.pop) {\r\n this.el.nativeElement.style.display = 'none';\r\n }\r\n return this.emitter();\r\n }\r\n\r\n /**\r\n * @description minimizar la card\r\n */\r\n minimize() {\r\n this.isMinimized = true;\r\n return this.emitter();\r\n }\r\n\r\n /**\r\n * @description Restaurar la card\r\n */\r\n maximize() {\r\n this.isMinimized = false;\r\n return this.emitter();\r\n }\r\n\r\n /**\r\n * @description Emitir estado de la card\r\n */\r\n emitter() {\r\n return this.EmitterAction.emit({\r\n isOpen: this.isOpen,\r\n class: this.classStyle,\r\n isMinimized: this.isMinimized\r\n });\r\n }\r\n\r\n /**\r\n * @description Mostrar o no barra de progreso\r\n * @param event boolean\r\n */\r\n viewProgressBar(event: boolean) {\r\n this.progress = event;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardComponent } from './card.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [CardComponent],\r\n exports: [CardComponent]\r\n})\r\nexport class CardModule { }\r\n","import { AbstractControl } from '@angular/forms';\r\nimport { isDate } from 'src/app/utils/helpers/helpers';\r\n\r\n\r\nexport const CustomValidateDate = (control: AbstractControl): {[key: string]: any} => {\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n if (!isDate(control.value)) {\r\n return {\r\n invalidDate: true,\r\n message: 'It is not a valid date'\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n","import {AbstractControl } from '@angular/forms';\r\n\r\n\r\nexport const CustomValidateEmail = (control: AbstractControl): {[key: string]: any} => {\r\n // tslint:disable-next-line:max-line-length\r\n const regExp = new RegExp(/^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i);\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n if (!regExp.test(control.value)) {\r\n return {\r\n invalidEmail: true,\r\n message: 'It is not a valid email'\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\nimport { isPresent, isMultiParams } from 'src/app/utils/helpers/helpers';\r\n\r\nexport const CustomValidateEquals = (options: any): ValidatorFn => {\r\n let subscribe = false;\r\n let sensitive;\r\n const message = 'this value must be equal to';\r\n let formControlName;\r\n\r\n return (control: AbstractControl): any => {\r\n if (typeof options === 'string') {\r\n\r\n const params = isMultiParams(options);\r\n if (params) {\r\n formControlName = params[0];\r\n sensitive = JSON.parse(params[1]);\r\n } else {\r\n formControlName = options;\r\n }\r\n }\r\n\r\n if (typeof options === 'object') {\r\n formControlName = options.formControlName;\r\n sensitive = options.sensitive ? true : false;\r\n }\r\n\r\n if (!subscribe && isPresent(control.parent)) {\r\n if (isPresent(control.parent.controls)) {\r\n if (isPresent(control.parent.controls[formControlName])) {\r\n subscribe = true;\r\n control.parent.controls[formControlName].valueChanges\r\n .subscribe(() => {\r\n control.updateValueAndValidity();\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const val = control.parent.controls[formControlName].value;\r\n\r\n if (!sensitive) {\r\n return control.value.toLowerCase() === val.toLowerCase() ? null : {\r\n invalidEquals: true,\r\n message: `${message} '${val}'`\r\n };\r\n }\r\n\r\n return control.value === val ? null : {\r\n invalidEquals: true,\r\n message: `${message} '${val}'`\r\n };\r\n\r\n };\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\n\r\nexport const CustomValidateInArray = (options: any): ValidatorFn => {\r\n const message = 'The value is invalid';\r\n const toStr = [];\r\n\r\n return (control: AbstractControl): any => {\r\n\r\n if (typeof options === 'string') {\r\n options = options.split(',');\r\n }\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n options.forEach(element => {\r\n toStr.push(element.toString());\r\n });\r\n\r\n return toStr.indexOf(control.value.toString()) !== -1 ? null : {\r\n invalidInArray: true,\r\n message: message\r\n };\r\n };\r\n\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\n\r\nexport const CustomLength = (length: any): ValidatorFn => {\r\n const message = `This field only supports ${length} characters`;\r\n\r\n return (control: AbstractControl): any => {\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return parseInt(control.value.length, 10) === parseInt(length, 10) ? null : {\r\n invalidLength: true,\r\n message: message\r\n };\r\n };\r\n\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\n\r\nexport const CustomMaxLength = (maxLength: any): ValidatorFn => {\r\n const message = `This field can not be larger than ${maxLength} characters`;\r\n\r\n\r\n return (control: AbstractControl): any => {\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return parseInt(control.value.length, 10) <= parseInt(maxLength, 10) ? null : {\r\n invalidMinLength: true,\r\n message: message\r\n };\r\n };\r\n\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\n\r\nexport const CustomMinLength = (minLength: any): ValidatorFn => {\r\n const message = `This field must have at least ${minLength} characters`;\r\n\r\n return (control: AbstractControl): any => {\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return parseInt(control.value.length, 10) >= parseInt(minLength, 10) ? null : {\r\n invalidMinLength: true,\r\n message: message\r\n };\r\n };\r\n\r\n};\r\n","import {AbstractControl } from '@angular/forms';\r\n\r\n\r\nexport const CustomOnlyNumbers = (control: AbstractControl): {[key: string]: any} => {\r\n const regExp = new RegExp(/^[0-9]*$/);\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n if (!regExp.test(control.value)) {\r\n return {\r\n invalidOnlyNumbers: true,\r\n message: 'Only allow numbers'\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n","import {AbstractControl } from '@angular/forms';\r\n\r\n\r\nexport const CustomOnlyText = (control: AbstractControl): {[key: string]: any} => {\r\n const regExp = new RegExp(/^[aA-zZ áéíóúÁÉÍÓÚñÑ]*$/);\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n if (!regExp.test(control.value)) {\r\n return {\r\n invalidOnlyText: true,\r\n message: 'Only letters are allowed'\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\nimport { isMultiParams } from 'src/app/utils/helpers/helpers';\r\n\r\nexport const CustomValidateRequiredLocation = (options: any): ValidatorFn => {\r\n\r\n const message = 'This value must contain parameters';\r\n\r\n\r\n return (control: AbstractControl): any => {\r\n\r\n try {\r\n let attributes = [];\r\n let valid = true;\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n if (typeof options === 'string') {\r\n attributes = isMultiParams(options);\r\n }\r\n\r\n if (typeof control.value === 'object') {\r\n\r\n attributes.forEach(element => {\r\n if (!control.value[element]) {\r\n valid = false;\r\n } else {\r\n if (!control.value[element].toString().length) {\r\n valid = false;\r\n }\r\n }\r\n });\r\n\r\n if (valid) {\r\n return null;\r\n }\r\n }\r\n\r\n return {\r\n invalidRequiredLocation: true,\r\n message: `${message} \"${options}\"`\r\n };\r\n } catch (error) {\r\n console.log(error);\r\n return {\r\n invalidValidation: true,\r\n message: `Error validating the field`\r\n };\r\n }\r\n\r\n\r\n };\r\n};\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\nexport const CustomRequired = (control: AbstractControl): {[key: string]: any} => {\r\n\r\n return control.value ? null : {\r\n invalidRequired: true,\r\n message: 'This value is required'\r\n };\r\n\r\n};\r\n","import {ValidatorFn, AbstractControl } from '@angular/forms';\r\n\r\n\r\nexport const CustomValidateUrl = (control: AbstractControl): {[key: string]: any} => {\r\n const regExp = new RegExp(/^(http|ftp|https):\\/\\/[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]/);\r\n\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n if (!regExp.test(control.value)) {\r\n return {\r\n invalidUrl: true,\r\n message: 'It is not a valid url'\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n","import { CustomValidateUrl } from './components/urls/url.validator';\r\nimport { CustomValidateEquals } from './components/equals/equals.validator';\r\nimport { CustomValidateInArray } from './components/in-arrray/in-array.validator';\r\nimport { CustomOnlyText } from './components/only-text/only-text.validator';\r\nimport { CustomOnlyNumbers } from './components/only-numbers/only-numbers.validator';\r\nimport { CustomLength } from './components/length/length.validator';\r\nimport { CustomRequired } from './components/required/required-validator';\r\nimport { CustomMinLength } from './components/min-length/min-length.validator';\r\nimport { CustomMaxLength } from './components/max-length/max-length.validator';\r\nimport { CustomValidateRequiredLocation } from './components/required-location/required-location.validator';\r\nimport { CustomValidateEmail } from './components/email/email.validator';\r\nimport { CustomValidateDate } from './components/date/date.validator';\r\n\r\n\r\nexport const CustomValidators = {\r\n _name: 'CustomValidators',\r\n _nameSplit: 'CustomValidators.',\r\n _isProperty: 'Property.',\r\n url: CustomValidateUrl,\r\n equals: CustomValidateEquals,\r\n inArray: CustomValidateInArray,\r\n required: CustomRequired,\r\n onlyText: CustomOnlyText,\r\n onlyNumbers: CustomOnlyNumbers,\r\n length: CustomLength,\r\n minLength: CustomMinLength,\r\n maxLength: CustomMaxLength,\r\n requiredLocation: CustomValidateRequiredLocation,\r\n email: CustomValidateEmail,\r\n date: CustomValidateDate\r\n};\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \".btn-select-close {\\n z-index: 99;\\n font-size: 17px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdXRpbHMvZHJvcC1kb3duZHMvY29tcG9uZW50cy9jdXN0b21lcnMvQzpcXGluZXRwdWJcXHd3d3Jvb3RcXGdzZnJvbnQvc3JjXFxhcHBcXHV0aWxzXFxkcm9wLWRvd25kc1xcY29tcG9uZW50c1xcY3VzdG9tZXJzXFxjdXN0b21lcnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFXO0VBQ1gsZ0JBQWUsRUFDaEIiLCJmaWxlIjoic3JjL2FwcC91dGlscy9kcm9wLWRvd25kcy9jb21wb25lbnRzL2N1c3RvbWVycy9jdXN0b21lcnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYnRuLXNlbGVjdC1jbG9zZSB7XHJcbiAgei1pbmRleDogOTk7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG59Il19 */\"","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter, Renderer } from '@angular/core';\r\nimport { CardComponent } from 'src/app/utils/card/card.component';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { GridOptions } from 'ag-grid-community';\r\n\r\n@Component({\r\n selector: 'app-utils-drop-downs-customers',\r\n templateUrl: './customers.component.html',\r\n styleUrls: ['./customers.component.scss']\r\n})\r\nexport class CustomersComponent implements OnInit {\r\n\r\n private grid: GridOptions;\r\n wait: boolean;\r\n customers = [];\r\n\r\n @Input() typeSelect: boolean;\r\n @Input() inputClass: string;\r\n @Input() inputClassCard: string;\r\n @Input() elemRef: ElementRef;\r\n @Output() areLoadedCustomers: EventEmitter = new EventEmitter();\r\n @Output() itSelected: EventEmitter = new EventEmitter();\r\n @Output() itClose: EventEmitter = new EventEmitter();\r\n @Output() itOpen: EventEmitter = new EventEmitter();\r\n @Output() ready: EventEmitter = new EventEmitter();\r\n\r\n\r\n @ViewChild('card') card: CardComponent;\r\n\r\n columnDefs = [\r\n {headerName: 'Customer', field: 'employee_id', width: 80},\r\n {headerName: 'Last Name', field: 'last_name', width: 80},\r\n {headerName: 'Name', field: 'name', width: 80},\r\n {headerName: 'Hospital', field: 'hospital', width: 80},\r\n {headerName: 'email', field: 'email', width: 80},\r\n {headerName: 'Phone', field: 'phone', width: 80},\r\n {headerName: 'Alt Pone', field: 'cell_phone', width: 80},\r\n {headerName: 'Address', field: 'address', width: 80},\r\n {headerName: 'State', field: 'state', width: 80},\r\n {headerName: 'City', field: 'city', width: 80},\r\n {headerName: 'Apt', field: 'apt', width: 80},\r\n {headerName: 'Zipcode', field: 'zipcode', width: 80},\r\n ];\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private _customers: CustomersService,\r\n private render: Renderer\r\n ) {\r\n this.grid = < GridOptions > {};\r\n\r\n this.render.listen(this.elementRef.nativeElement, 'mouseout', (event) => {\r\n // console.log('focus', event);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getAllCustomers();\r\n if (this.typeSelect) {\r\n this.card.close();\r\n }\r\n }\r\n\r\n getAllCustomers() {\r\n this.wait = true;\r\n return this._customers\r\n .get()\r\n .pipe(\r\n finalize(() => {\r\n this.wait = false;\r\n this.ready.emit(true);\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this.customers = success.data;\r\n this.areLoadedCustomers.emit(success.data);\r\n if (this.grid) {\r\n if (this.grid.api) {\r\n this.grid.api.setRowData(success.data);\r\n this.grid.api.sizeColumnsToFit();\r\n }\r\n }\r\n }, (error) => {\r\n this.areLoadedCustomers.emit([]);\r\n console.log('getAllCustomers error', error);\r\n }\r\n );\r\n }\r\n\r\n searchCustomer(id: number) {\r\n return this.customers.filter((data) => {\r\n if (data.id === id) {\r\n return data;\r\n }\r\n })[0];\r\n }\r\n\r\n setSelected(params) {\r\n this.itSelected.emit(params.data);\r\n }\r\n\r\n open() {\r\n this.card.open();\r\n this.itOpen.emit(true);\r\n }\r\n\r\n close() {\r\n this.card.close();\r\n this.itClose.emit(true);\r\n }\r\n\r\n onEmitterAction(event) {\r\n if (!event.isOpen) {\r\n this.itClose.emit(true);\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomersComponent } from './components/customers/customers.component';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { CustomersService } from 'src/app/services/customers/customers.service';\r\nimport { CardModule } from '../card/card.module';\r\nimport { ProgressBarModule } from '../progress-bar/progress-bar.module';\r\n\r\n@NgModule({\r\n declarations: [CustomersComponent],\r\n imports: [\r\n CommonModule,\r\n AgGridModule,\r\n CardModule,\r\n ProgressBarModule\r\n ],\r\n exports: [CustomersComponent],\r\n providers: [CustomersService]\r\n})\r\nexport class DropDowndsModule { }\r\n","export function isPresent(obj: any): boolean {\r\n return obj !== undefined && obj !== null;\r\n}\r\n\r\nexport function isMultiParams(str: string): any {\r\n const array = str.split(',');\r\n if (array.length > 1) {\r\n return array;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport function isDate(value: any): boolean {\r\n return value instanceof Date && !isNaN(value.valueOf());\r\n // return !/Invalid|NaN/.test(new Date(obj).toString());\r\n}\r\n\r\n\r\nexport function normalize(str) {\r\n str = str.replace(/^\\s+|\\s+$/g, ''); // trim\r\n str = str.toLowerCase();\r\n\r\n // remove accents, swap ñ for n, etc\r\n const from = 'ãàáäâẽèéëêìíïîõòóöôùúüûñç·/_,:;';\r\n const to = 'aaaaaeeeeeiiiiooooouuuunc------';\r\n for (let i = 0, l = from.length ; i < l; i++ ) {\r\n str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));\r\n }\r\n\r\n str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars\r\n .replace(/\\s+/g, '_') // collapse whitespace and replace by -\r\n .replace(/-+/g, '-'); // collapse dashes\r\n\r\n return str;\r\n}\r\n\r\n// export function isDate","module.exports = \"
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3V0aWxzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss']\r\n})\r\nexport class ProgressBarComponent implements OnInit, OnChanges {\r\n\r\n public styles = {};\r\n\r\n @Input() determinate: boolean;\r\n @Input() progress: any;\r\n @Input() color = 'primary';\r\n @Input() spinner: boolean;\r\n @Input() spinnerWidth: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.spinnerWidth) {\r\n this.styles = {\r\n 'width': `${this.spinnerWidth}px`,\r\n 'height': `${this.spinnerWidth}px`\r\n };\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['progress']) {\r\n this.progress = changes['progress'].currentValue;\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [ProgressBarComponent],\r\n exports: [ProgressBarComponent]\r\n})\r\nexport class ProgressBarModule { }\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n

File:: {{event?.target?.files[0]?.name}}

\\r\\n

Size:: {{(event?.target?.files[0]?.size/1024/1024).toFixed(2)}} MB

\\r\\n

Records:: {{data.length}}

\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3V0aWxzL3RvLWltcG9ydC9jb21wb25lbnRzL3hscy94bHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { normalize, isDate } from 'src/app/utils/helpers/helpers';\r\n\r\ndeclare const XLSX: any;\r\ndeclare const moment: any;\r\n\r\n@Component({\r\n selector: 'app-utils-to-import-xls',\r\n templateUrl: './xls.component.html',\r\n styleUrls: ['./xls.component.scss']\r\n})\r\nexport class XlsComponent implements OnInit {\r\n\r\n data: any;\r\n event: any;\r\n json = [];\r\n onLoad: boolean;\r\n\r\n @Input() textBtn: string;\r\n @Input() icoBtn: string;\r\n @Input() showInfo = true;\r\n\r\n @ViewChild('inputFile') inputFile: ElementRef;\r\n\r\n @Output() emitterFile: EventEmitter = new EventEmitter();\r\n @Output() emitterOnFileChange: EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n normalizeKye (value) {\r\n return (typeof value === 'string') ? normalize(value) : value;\r\n }\r\n\r\n normalizeValue (value) {\r\n if (isDate(value)) {\r\n return moment(value).format('MM-DD-YYYY');\r\n }\r\n return (typeof value === 'string') ? value.trim() : value;\r\n }\r\n\r\n\r\n onFileChange(evt: any) {\r\n /* wire up file reader */\r\n this.onLoad = true;\r\n this.event = evt;\r\n const target: DataTransfer = (evt.target);\r\n this.emitterOnFileChange.emit(target);\r\n if (target.files.length !== 1) {\r\n throw new Error('Cannot use multiple files');\r\n }\r\n\r\n const reader: FileReader = new FileReader();\r\n reader.onload = (e: any) => {\r\n /* read workbook */\r\n const bstr: string = e.target.result;\r\n const wb = XLSX.read(bstr, {type: 'binary', cellDates: true, dateNF: 'dd-mm-yyyy;@'});\r\n\r\n /* grab first sheet */\r\n const wsname: string = wb.SheetNames[0];\r\n const ws = wb.Sheets[wsname];\r\n\r\n /* save data */\r\n this.data = (XLSX.utils.sheet_to_json(ws, {header: 1}));\r\n this.json = [];\r\n this.data.forEach((element, key) => {\r\n if (key > 0) {\r\n const tmp = {};\r\n this.data[key].forEach((value, k) => {\r\n tmp[this.normalizeKye(this.data[0][k])] = this.normalizeValue(value);\r\n });\r\n this.json.push(tmp);\r\n }\r\n });\r\n\r\n this.onLoad = false;\r\n this.emitter();\r\n };\r\n reader.readAsBinaryString(target.files[0]);\r\n }\r\n\r\n emitter() {\r\n this.emitterFile.emit({\r\n dataOriginal: this.data.length ? this.data : [],\r\n json: this.data.length ? this.json : [],\r\n event: this.event,\r\n keys: this.data.length ? Object.keys(this.json[0]) : []\r\n });\r\n }\r\n\r\n uploadFile() {\r\n this.inputFile.nativeElement.click();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XlsComponent } from './components/xls/xls.component';\r\n\r\n@NgModule({\r\n declarations: [XlsComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n XlsComponent\r\n ]\r\n})\r\nexport class ToImportModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n envName: 'devel',\r\n apiRest: {\r\n base: 'https://api.jmhgiftshop.com/',\r\n v: 'v1',\r\n url: 'https://api.jmhgiftshop.com/api/v1/'\r\n },\r\n};\r\n\r\n// 'https://api.jmhgiftshop.com/',\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":""}