UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

455 lines 53.9 kB
import { ConfigurationService } from '../../configuration/configuration.service';
import { Injectable } from '@angular/core';
import { ConfigurationResourceService } from '../../resources/engine-endpoint/configuration-resource.service';
import { HttpClient, HttpHandler } from '@angular/common/http';
import { ResourceProvider } from '../../resources/resource-provider.service';
import * as i0 from "@angular/core";
export class TestConfigurationService extends ConfigurationService {
    constructor() {
        const http = new HttpClient(new TestHttp());
        const resourceProvider = new ResourceProvider(http);
        const configurationResource = new ConfigurationResourceService(resourceProvider);
        super({
            extends: 'nae-default',
            providers: {
                auth: {
                    address: 'http://localhost:8080/api/',
                    authentication: 'Basic',
                    endpoints: {
                        login: 'auth/login',
                        logout: 'auth/logout',
                        signup: 'auth/signup',
                        changePassword: 'auth/changePassword',
                        verification: 'auth/verify',
                        verify: 'auth/token/verify',
                        invite: 'auth/invite',
                        reset: 'auth/reset',
                        recover: '/auth/recover'
                    },
                    sessionBearer: 'X-Auth-Token',
                    sessionTimeoutEnabled: false,
                    sessionTimeout: 900
                },
                resources: [
                    {
                        name: 'case',
                        address: 'http://localhost:8080/api/',
                        format: 'hal',
                        openApi: 'https://swagger.io'
                    },
                    {
                        name: 'task',
                        address: 'http://localhost:8080/api/',
                        format: 'json'
                    },
                    {
                        name: 'petrinet',
                        address: 'http://localhost:8080/api/',
                        format: 'json'
                    },
                    {
                        name: 'user',
                        address: 'http://localhost:8080/api/',
                        format: 'json'
                    },
                    {
                        name: 'dashboard',
                        address: 'http://localhost:8080/api/',
                        format: 'json'
                    },
                    {
                        name: 'impersonation',
                        address: 'http://localhost:8080/api/',
                        format: 'json'
                    }
                ]
            },
            views: {
                dashboard: {
                    layout: {
                        name: 'dashboard',
                        params: {
                            columns: 4,
                            cards: [
                                {
                                    type: 'count',
                                    title: 'All tasks',
                                    resourceType: 'Task',
                                    filter: {},
                                    layout: {
                                        x: 0,
                                        y: 0,
                                        rows: 1,
                                        cols: 1
                                    }
                                },
                                {
                                    type: 'iframe',
                                    url: 'https://netgrif.com/',
                                    layout: {
                                        x: 2,
                                        y: 0,
                                        rows: 2,
                                        cols: 2
                                    }
                                },
                                {
                                    type: 'count',
                                    title: 'All cases',
                                    resourceType: 'Case',
                                    filter: {},
                                    layout: {
                                        x: 1,
                                        y: 1,
                                        rows: 1,
                                        cols: 1
                                    }
                                }, {
                                    type: 'pie',
                                    title: 'Custom',
                                    resourceType: 'case',
                                    query: {
                                        aggs: {
                                            result: {
                                                terms: {
                                                    field: 'dataSet.text.value.keyword'
                                                }
                                            }
                                        }
                                    },
                                    filter: {},
                                    layout: {
                                        x: 0,
                                        y: 1,
                                        rows: 1,
                                        cols: 1
                                    }
                                }, {
                                    type: 'bar',
                                    title: 'Custom',
                                    resourceType: 'case',
                                    query: { aggs: { result: { terms: { field: 'dataSet.text.value.keyword' } } } },
                                    xAxisLabel: 'Country',
                                    yAxisLabel: 'Population',
                                    filter: {},
                                    layout: {
                                        x: 2,
                                        y: 1,
                                        rows: 1,
                                        cols: 1
                                    }
                                }, {
                                    type: 'line',
                                    title: 'Custom',
                                    resourceType: 'case',
                                    query: {
                                        aggs: {
                                            result1: { terms: { field: 'dataSet.text.value.keyword' } },
                                            result2: { terms: { field: 'dataSet.text.value.keyword' } }
                                        }
                                    },
                                    xAxisLabel: 'Country',
                                    yAxisLabel: 'Population',
                                    filter: {},
                                    layout: {
                                        x: 0,
                                        y: 2,
                                        rows: 1,
                                        cols: 1
                                    }
                                }, {
                                    type: 'lineargauge',
                                    title: 'Custom',
                                    resourceType: 'case',
                                    query: { aggs: { types_count: { value_count: { field: 'dataSet.text.value.keyword' } } } },
                                    xAxisLabel: 'Country',
                                    yAxisLabel: 'Population',
                                    units: 'cases',
                                    filter: {},
                                    layout: {
                                        x: 1,
                                        y: 2,
                                        rows: 1,
                                        cols: 1
                                    }
                                }, {
                                    type: 'default',
                                    layout: {
                                        x: 2,
                                        y: 2,
                                        rows: 1,
                                        cols: 1
                                    }
                                }
                            ]
                        },
                        componentName: 'MyDashboard'
                    },
                    access: 'private',
                    navigation: {
                        title: 'Dashboard',
                        icon: 'dashboard'
                    },
                    routing: {
                        path: 'comp-dashboard'
                    }
                },
                cases: {
                    layout: {
                        name: 'emptyView',
                        params: {
                            allowedNets: []
                        }
                    },
                    access: 'private',
                    navigation: {
                        title: 'Cases',
                        icon: 'settings'
                    },
                    routing: {
                        path: 'cases'
                    },
                    children: {
                        some_cases: {
                            layout: {
                                name: 'emptyView'
                            },
                            access: 'private',
                            navigation: {
                                icon: 'account_circle'
                            },
                            routing: {
                                path: 'some_cases'
                            },
                            children: {
                                some_specifics: {
                                    layout: {
                                        name: 'emptyView'
                                    },
                                    access: 'private',
                                    navigation: true,
                                    routing: {
                                        path: 'some_specifics'
                                    }
                                }
                            }
                        }
                    }
                },
                task: {
                    layout: {
                        name: 'emptyView',
                        params: {
                            allowedNets: []
                        }
                    },
                    access: 'private',
                    navigation: {
                        title: 'Tasks',
                        icon: 'assignment'
                    },
                    routing: {
                        path: 'task'
                    },
                    children: {
                        some_tasks: {
                            layout: {
                                name: 'emptyView'
                            },
                            access: 'private',
                            navigation: false,
                            routing: {
                                path: 'some_tasks'
                            },
                            children: {
                                some_specifics: {
                                    layout: {
                                        name: 'emptyView'
                                    },
                                    access: 'private',
                                    navigation: true,
                                    routing: {
                                        path: 'some_specifics'
                                    }
                                }
                            }
                        }
                    }
                }
            },
            theme: {
                name: 'example-classico',
                pallets: {
                    light: {
                        primary: {
                            50: '',
                            100: '',
                            200: '',
                            300: '',
                            400: '',
                            500: '',
                            600: '',
                            700: '',
                            800: '',
                            900: '',
                            A100: '',
                            A200: '',
                            A400: '',
                            A700: '',
                            contrast: {
                                light: [
                                    '300',
                                    '400',
                                    '500',
                                    '600',
                                    '700',
                                    '800',
                                    '900'
                                ],
                                dark: [
                                    '50',
                                    '100',
                                    '200'
                                ]
                            }
                        },
                        secondary: {
                            50: '',
                            100: '',
                            200: '',
                            300: '',
                            400: '',
                            500: '',
                            600: '',
                            700: '',
                            800: '',
                            900: '',
                            A100: '',
                            A200: '',
                            A400: '',
                            A700: '',
                            contrast: {
                                light: [
                                    '300',
                                    '400',
                                    '500',
                                    '600',
                                    '700',
                                    '800',
                                    '900'
                                ],
                                dark: [
                                    '50',
                                    '100',
                                    '200'
                                ]
                            }
                        },
                        warn: {
                            50: '',
                            100: '',
                            200: '',
                            300: '',
                            400: '',
                            500: '',
                            600: '',
                            700: '',
                            800: '',
                            900: '',
                            A100: '',
                            A200: '',
                            A400: '',
                            A700: '',
                            contrast: {
                                light: [
                                    '300',
                                    '400',
                                    '500',
                                    '600',
                                    '700',
                                    '800',
                                    '900'
                                ],
                                dark: [
                                    '50',
                                    '100',
                                    '200'
                                ]
                            }
                        }
                    },
                    dark: {
                        primary: 'blue',
                        secondary: 'pink'
                    }
                }
            },
            assets: [
                '../../../assets'
            ],
            filters: {
                'all-cases': {
                    title: 'All Cases',
                    type: 'Case',
                    access: 'public',
                    body: [],
                    mergeOperator: 'AND'
                },
                'all-tasks': {
                    title: 'All Tasks',
                    type: 'Task',
                    access: 'public',
                    body: {}
                },
                'some-tasks': {
                    title: 'All Tasks',
                    type: 'Task',
                    access: 'public',
                    body: [{}],
                    mergeOperator: 'AND'
                }
            },
            i18n: [
                'sk-SK',
                'en-US'
            ],
            services: {
                log: {
                    logWithDate: true,
                    serializeExtraParams: true,
                    includeLogLevel: true,
                    publishers: [
                        'console',
                        'localStorage'
                    ]
                },
                auth: {
                    loginRedirect: 'login'
                },
                legal: {
                    termsOfService: 'https://netgrif.com/',
                    privacyPolicy: 'https://netgrif.com/'
                },
                groupNavigation: {
                    groupNavigationRoute: 'config-route'
                }
            }
        }, configurationResource, {
            application: 'nae',
            type: 'default',
            gateway_url: 'http://localhost:8888/api',
            resolve_configuration: false
        });
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TestConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
    static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TestConfigurationService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TestConfigurationService, decorators: [{
            type: Injectable
        }], ctorParameters: () => [] });
class TestHttp extends HttpHandler {
    handle(req) {
        return undefined;
    }
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3V0aWxpdHkvdGVzdHMvdGVzdC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsVUFBVSxFQUFhLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBRXJGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOztBQUczRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsb0JBQW9CO0lBQzlEO1FBQ0ksTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxNQUFNLHFCQUFxQixHQUFHLElBQUksNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRixLQUFLLENBQUM7WUFDRixPQUFPLEVBQUUsYUFBYTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFO29CQUNGLE9BQU8sRUFBRSw0QkFBNEI7b0JBQ3JDLGNBQWMsRUFBRSxPQUFPO29CQUN2QixTQUFTLEVBQUU7d0JBQ1AsS0FBSyxFQUFFLFlBQVk7d0JBQ25CLE1BQU0sRUFBRSxhQUFhO3dCQUNyQixNQUFNLEVBQUUsYUFBYTt3QkFDckIsY0FBYyxFQUFFLHFCQUFxQjt3QkFDckMsWUFBWSxFQUFFLGFBQWE7d0JBQzNCLE1BQU0sRUFBRSxtQkFBbUI7d0JBQzNCLE1BQU0sRUFB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QixJQUFJLEVBQUUsTUFBTTtvQkFDWixNQUFNLEVBQUUsUUFBUTtvQkFDaEIsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNWLGFBQWEsRUFBRSxLQUFLO2lCQUN2QjthQUNKO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLE9BQU87Z0JBQ1AsT0FBTzthQUNWO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLEdBQUcsRUFBRTtvQkFDRCxXQUFXLEVBQUUsSUFBSTtvQkFDakIsb0JBQW9CLEVBQUUsSUFBSTtvQkFDMUIsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLFVBQVUsRUFBRTt3QkFDUixTQUFTO3dCQUNULGNBQWM7cUJBQ2pCO2lCQUNKO2dCQUNELElBQUksRUFBRTtvQkFDRixhQUFhLEVBQUUsT0FBTztpQkFDekI7Z0JBQ0QsS0FBSyxFQUFFO29CQUNILGNBQWMsRUFBRSxzQkFBc0I7b0JBQ3RDLGFBQWEsRUFBRSxzQkFBc0I7aUJBQ3hDO2dCQUNELGVBQWUsRUFBRTtvQkFDYixvQkFBb0IsRUFBRSxjQUFjO2lCQUN2QzthQUNKO1NBQ0osRUFDRCxxQkFBcUIsRUFDakI7WUFDSSxXQUFXLEVBQUUsS0FBSztZQUNsQixJQUFJLEVBQUUsU0FBUztZQUNmLFdBQVcsRUFBRSwyQkFBMkI7WUFDeEMscUJBQXFCLEVBQUUsS0FBSztTQUMvQixDQUFDLENBQUM7SUFDWCxDQUFDO3dHQXRiUSx3QkFBd0I7NEdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7QUEwYlgsTUFBTSxRQUFTLFNBQVEsV0FBVztJQUM5QixNQUFNLENBQUMsR0FBcUI7UUFDeEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9jb25maWd1cmF0aW9uLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7UmVzb3VyY2VQcm92aWRlcn0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3Jlc291cmNlLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb25TZXJ2aWNlIGV4dGVuZHMgQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBodHRwID0gbmV3IEh0dHBDbGllbnQobmV3IFRlc3RIdHRwKCkpO1xuICAgICAgICBjb25zdCByZXNvdXJjZVByb3ZpZGVyID0gbmV3IFJlc291cmNlUHJvdmlkZXIoaHR0cCk7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25SZXNvdXJjZSA9IG5ldyBDb25maWd1cmF0aW9uUmVzb3VyY2VTZXJ2aWNlKHJlc291cmNlUHJvdmlkZXIpO1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBleHRlbmRzOiAnbmFlLWRlZmF1bHQnLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiB7XG4gICAgICAgICAgICAgICAgYXV0aDoge1xuICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS8nLFxuICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbjogJ0Jhc2ljJyxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dpbjogJ2F1dGgvbG9naW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nb3V0OiAnYXV0aC9sb2dvdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbnVwOiAnYXV0aC9zaWdudXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlUGFzc3dvcmQ6ICdhdXRoL2NoYW5nZVBhc3N3b3JkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbjogJ2F1dGgvdmVyaWZ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeTogJ2F1dGgvdG9rZW4vdmVyaWZ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGludml0ZTogJ2F1dGgvaW52aXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0OiAnYXV0aC9yZXNldCcsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvdmVyOiAnL2F1dGgvcmVjb3ZlcidcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbkJlYXJlcjogJ1gtQXV0aC1Ub2tlbicsXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25UaW1lb3V0RW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25UaW1lb3V0OiA5MDBcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnY2FzZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAnaGFsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5BcGk6ICdodHRwczovL3N3YWdnZXIuaW8nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd0YXNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6ICdqc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncGV0cmluZXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogJ2pzb24nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6ICdqc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGFzaGJvYXJkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6ICdqc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaW1wZXJzb25hdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAnanNvbidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2aWV3czoge1xuICAgICAgICAgICAgICAgIGRhc2hib2FyZDoge1xuICAgICAgICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkYXNoYm9hcmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJkczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY291bnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBbGwgdGFza3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiAnVGFzaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sczogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaWZyYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vbmV0Z3JpZi5jb20vJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHM6IDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvdW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnQWxsIGNhc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogJ0Nhc2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHM6IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3BpZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0N1c3RvbScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdjYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdkYXRhU2V0LnRleHQudmFsdWUua2V5d29yZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sczogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYmFyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnQ3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogJ2Nhc2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHthZ2dzOiB7cmVzdWx0OiB7dGVybXM6IHtmaWVsZDogJ2RhdGFTZXQudGV4dC52YWx1ZS5rZXl3b3JkJ319fX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4QXhpc0xhYmVsOiAnQ291bnRyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5QXhpc0xhYmVsOiAnUG9wdWxhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sczogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0N1c3RvbScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdjYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQxOiB7dGVybXM6IHtmaWVsZDogJ2RhdGFTZXQudGV4dC52YWx1ZS5rZXl3b3JkJ319LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQyOiB7dGVybXM6IHtmaWVsZDogJ2RhdGFTZXQudGV4dC52YWx1ZS5rZXl3b3JkJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhBeGlzTGFiZWw6ICdDb3VudHJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlBeGlzTGFiZWw6ICdQb3B1bGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93czogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdsaW5lYXJnYXVnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0N1c3RvbScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdjYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiB7YWdnczoge3R5cGVzX2NvdW50OiB7dmFsdWVfY291bnQ6IHtmaWVsZDogJ2RhdGFTZXQudGV4dC52YWx1ZS5rZXl3b3JkJ319fX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4QXhpc0xhYmVsOiAnQ291bnRyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5QXhpc0xhYmVsOiAnUG9wdWxhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0czogJ2Nhc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93czogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHM6IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiAnTXlEYXNoYm9hcmQnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFjY2VzczogJ3ByaXZhdGUnLFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Rhc2hib2FyZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZGFzaGJvYXJkJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByb3V0aW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnY29tcC1kYXNoYm9hcmQnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNhc2VzOiB7XG4gICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2VtcHR5VmlldycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkTmV0czogW11cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiAncHJpdmF0ZScsXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnQ2FzZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3NldHRpbmdzJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByb3V0aW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnY2FzZXMnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzb21lX2Nhc2VzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdlbXB0eVZpZXcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3M6ICdwcml2YXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdhY2NvdW50X2NpcmNsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ3NvbWVfY2FzZXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb21lX3NwZWNpZmljczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2VtcHR5VmlldydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3M6ICdwcml2YXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0aW5nOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ3NvbWVfc3BlY2lmaWNzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0YXNrOiB7XG4gICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2VtcHR5VmlldycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkTmV0czogW11cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiAncHJpdmF0ZScsXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnVGFza3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2Fzc2lnbm1lbnQnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJvdXRpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICd0YXNrJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc29tZV90YXNrczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZW1wdHlWaWV3J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiAncHJpdmF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGluZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnc29tZV90YXNrcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbWVfc3BlY2lmaWNzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZW1wdHlWaWV3J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzczogJ3ByaXZhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnc29tZV9zcGVjaWZpY3MnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhlbWU6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZXhhbXBsZS1jbGFzc2ljbycsXG4gICAgICAgICAgICAgICAgcGFsbGV0czoge1xuICAgICAgICAgICAgICAgICAgICBsaWdodDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOTAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMjAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBNDAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBNzAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFzdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWdodDogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc1MDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzYwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNzAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc4MDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzkwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyazogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzUwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzIwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNzAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQTIwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQTQwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQTcwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhc3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHQ6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICczMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzQwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc2MDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzcwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnODAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc5MDAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhcms6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc1MCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcyMDAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgd2Fybjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MDA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwMDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOTAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMTAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMjAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBNDAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBNzAwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFzdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWdodDogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc1MDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzYwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNzAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc4MDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzkwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyazogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzUwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzIwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGFyazoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeTogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiAncGluaydcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3NldHM6IFtcbiAgICAgICAgICAgICAgICAnLi4vLi4vLi4vYXNzZXRzJ1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgICAgICAnYWxsLWNhc2VzJzoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0FsbCBDYXNlcycsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdDYXNlJyxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiAncHVibGljJyxcbiAgICAgICAgICAgICAgICAgICAgYm9keTogW10sXG4gICAgICAgICAgICAgICAgICAgIG1lcmdlT3BlcmF0b3I6ICdBTkQnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnYWxsLXRhc2tzJzoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0FsbCBUYXNrcycsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdUYXNrJyxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiAncHVibGljJyxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdzb21lLXRhc2tzJzoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0FsbCBUYXNrcycsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdUYXNrJyxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiAncHVibGljJyxcbiAgICAgICAgICAgICAgICAgICAgYm9keTogW3t9XSxcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VPcGVyYXRvcjogJ0FORCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaTE4bjogW1xuICAgICAgICAgICAgICAgICdzay1TSycsXG4gICAgICAgICAgICAgICAgJ2VuLVVTJ1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHNlcnZpY2VzOiB7XG4gICAgICAgICAgICAgICAgbG9nOiB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ1dpdGhEYXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVFeHRyYVBhcmFtczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVkZUxvZ0xldmVsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAnY29uc29sZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbG9jYWxTdG9yYWdlJ1xuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhdXRoOiB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2luUmVkaXJlY3Q6ICdsb2dpbidcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxlZ2FsOiB7XG4gICAgICAgICAgICAgICAgICAgIHRlcm1zT2ZTZXJ2aWNlOiAnaHR0cHM6Ly9uZXRncmlmLmNvbS8nLFxuICAgICAgICAgICAgICAgICAgICBwcml2YWN5UG9saWN5OiAnaHR0cHM6Ly9uZXRncmlmLmNvbS8nXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBncm91cE5hdmlnYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBOYXZpZ2F0aW9uUm91dGU6ICdjb25maWctcm91dGUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmF0aW9uUmVzb3VyY2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb246ICduYWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBnYXRld2F5X3VybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6ODg4OC9hcGknLFxuICAgICAgICAgICAgICAgIHJlc29sdmVfY29uZmlndXJhdGlvbjogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cblxuY2xhc3MgVGVzdEh0dHAgZXh0ZW5kcyBIdHRwSGFuZGxlciB7XG4gICAgaGFuZGxlKHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=