diff --git a/LANGUAGES.md b/LANGUAGES.md index b13d42b6..1cd38edd 100644 --- a/LANGUAGES.md +++ b/LANGUAGES.md @@ -146,6 +146,7 @@ Madlang (mad) Makefile (makefile,mak,mk,bp,makefile) Mako (mako,mao) Markdown (md,markdown) +MATLAB (m) Meson (meson.build,meson_options.txt) Modula3 (m3,mg,ig,i3) Module-Definition (def) diff --git a/SCC-OUTPUT-REPORT.html b/SCC-OUTPUT-REPORT.html index 3133192a..3f31422b 100644 --- a/SCC-OUTPUT-REPORT.html +++ b/SCC-OUTPUT-REPORT.html @@ -17,7 +17,7 @@ 442 7264 1500 - 366851 + 368311 Java 24 @@ -39,12 +39,12 @@ Markdown 11 - 1364 + 1365 323 0 - 1041 + 1042 0 - 55777 + 55788 Python 10 @@ -93,12 +93,12 @@ Shell 3 - 1144 - 151 - 90 - 903 - 102 - 40829 + 1159 + 154 + 91 + 914 + 104 + 41231 C# 2 @@ -417,12 +417,12 @@ JSON 1 - 7801 + 7874 0 0 - 7801 + 7874 0 - 109288 + 110383 Korn Shell 1 @@ -450,6 +450,15 @@ 17 0 502 + + MATLAB + 1 + 471 + 55 + 67 + 349 + 54 + 16151 Macromedia eXtensible Markup Language 1 @@ -477,6 +486,15 @@ 18 2 514 + + Objective C + 1 + 896 + 150 + 66 + 680 + 57 + 28206 Perl 1 @@ -642,12 +660,12 @@ Total - 182 - 28143 - 3111 - 1791 - 23241 - 2510 - 1850972 + 184 + 29599 + 3319 + 1925 + 24355 + 2623 + 1898297 \ No newline at end of file diff --git a/examples/issue339/matlab.m b/examples/issue339/matlab.m new file mode 100644 index 00000000..15d4aa93 --- /dev/null +++ b/examples/issue339/matlab.m @@ -0,0 +1,471 @@ +function [net,stats] = cnn_train_dag(net, imdb, getBatch, varargin) +%CNN_TRAIN_DAG Demonstrates training a CNN using the DagNN wrapper +% CNN_TRAIN_DAG() is similar to CNN_TRAIN(), but works with +% the DagNN wrapper instead of the SimpleNN wrapper. + +% Copyright (C) 2014-16 Andrea Vedaldi. +% All rights reserved. +% +% This file is part of the VLFeat library and is made available under +% the terms of the BSD license (see the COPYING file). + +opts.expDir = fullfile('data','exp') ; +opts.continue = true ; +opts.batchSize = 256 ; +opts.numSubBatches = 1 ; +opts.averageImage = []; +opts.train = [] ; +opts.val = [] ; +opts.gpus = [] ; +opts.prefetch = false ; +opts.numEpochs = 300 ; +opts.gamma = 0.9; +opts.constraint = 10; +opts.learningRate = 0.001 ; +opts.weightDecay = 0.0005 ; +opts.momentum = 0.9 ; +opts.saveMomentum = true ; +opts.nesterovUpdate = false ; +opts.randomSeed = 0 ; +opts.profile = false ; +opts.parameterServer.method = 'mmap' ; +opts.parameterServer.prefix = 'mcn' ; + +opts.derOutputs = {'objective', 1} ; +opts.extractStatsFn = @extractStats ; +opts.plotStatistics = true; +opts = vl_argparse(opts, varargin) ; + +if ~exist(opts.expDir, 'dir'), mkdir(opts.expDir) ; end +if isempty(opts.train), opts.train = find(imdb.images.set==1) ; end +if isempty(opts.val), opts.val = find(imdb.images.set==2) ; end +if isnan(opts.train), opts.train = [] ; end +if isnan(opts.val), opts.val = [] ; end + +% ------------------------------------------------------------------------- +% Initialization +% ------------------------------------------------------------------------- + +evaluateMode = isempty(opts.train) ; +if ~evaluateMode + if isempty(opts.derOutputs) + error('DEROUTPUTS must be specified when training.\n') ; + end +end + +% ------------------------------------------------------------------------- +% Train and validate +% ------------------------------------------------------------------------- + +modelPath = @(ep) fullfile(opts.expDir, sprintf('net-epoch-%d.mat', ep)); +modelFigPath = fullfile(opts.expDir, 'net-train.pdf') ; + +start = opts.continue * findLastCheckpoint(opts.expDir) ; +if start >= 1 + fprintf('%s: resuming by loading epoch %d\n', mfilename, start) ; + [net, state, stats] = loadState(modelPath(start)) ; +else + state = [] ; +end + +for epoch=start+1:opts.numEpochs + + % Set the random seed based on the epoch and opts.randomSeed. + % This is important for reproducibility, including when training + % is restarted from a checkpoint. + + rng(epoch + opts.randomSeed) ; + prepareGPUs(opts, epoch == start+1) ; + + % Train for one epoch. + params = opts ; + params.epoch = epoch ; + params.learningRate = opts.learningRate(min(epoch, numel(opts.learningRate))) ; + params.train = opts.train(randperm(numel(opts.train))) ; % shuffle + params.val = opts.val(randperm(numel(opts.val))) ; + params.imdb = imdb ; + params.getBatch = getBatch ; + + if numel(opts.gpus) <= 1 + [net, state] = processEpoch(net, state, params, 'train',opts) ; + [net, state] = processEpoch(net, state, params, 'val',opts) ; + if ~evaluateMode + saveState(modelPath(epoch), net, state) ; + end + lastStats = state.stats ; + else + spmd + [net, state] = processEpoch(net, state, params, 'train',opts) ; + [net, state] = processEpoch(net, state, params, 'val',opts) ; + if labindex == 1 && ~evaluateMode + saveState(modelPath(epoch), net, state) ; + end + lastStats = state.stats ; + end + lastStats = accumulateStats(lastStats) ; + end + + stats.train(epoch) = lastStats.train ; + stats.val(epoch) = lastStats.val ; + clear lastStats ; + saveStats(modelPath(epoch), stats) ; + + if opts.plotStatistics + switchFigure(1) ; clf ; + plots = setdiff(... + cat(2,... + fieldnames(stats.train)', ... + fieldnames(stats.val)'), {'num', 'time'}) ; + for p = plots + p = char(p) ; + values = zeros(0, epoch) ; + leg = {} ; + for f = {'train', 'val'} + f = char(f) ; + if isfield(stats.(f), p) + tmp = [stats.(f).(p)] ; + values(end+1,:) = tmp(1,:)' ; + leg{end+1} = f ; + end + end + subplot(1,numel(plots),find(strcmp(p,plots))) ; + plot(1:epoch, values','o-') ; + xlabel('epoch') ; + title(p) ; + legend(leg{:}) ; + grid on ; + end + drawnow ; + print(1, modelFigPath, '-dpdf') ; + end +end + +% With multiple GPUs, return one copy +if isa(net, 'Composite'), net = net{1} ; end + +% ------------------------------------------------------------------------- +function [net, state] = processEpoch(net, state, params, mode,opts) +% ------------------------------------------------------------------------- +% Note that net is not strictly needed as an output argument as net +% is a handle class. However, this fixes some aliasing issue in the +% spmd caller. + +% initialize with momentum 0 +if isempty(state) || isempty(state.momentum) + state.r = num2cell(zeros(1, numel(net.params))) ; + state.momentum = num2cell(zeros(1, numel(net.params))) ; +end + +% move CNN to GPU as needed +numGpus = numel(params.gpus) ; +if numGpus >= 1 + net.move('gpu') ; + state.momentum = cellfun(@gpuArray, state.momentum, 'uniformoutput', false) ; + %state.r = cellfun(@gpuArray, state.r, 'uniformoutput', false) ; +end +if numGpus > 1 + parserv = ParameterServer(params.parameterServer) ; + net.setParameterServer(parserv) ; +else + parserv = [] ; +end + +% profile +if params.profile + if numGpus <= 1 + profile clear ; + profile on ; + else + mpiprofile reset ; + mpiprofile on ; + end +end + +num = 0 ; +epoch = params.epoch ; +subset = params.(mode) ; +adjustTime = 0 ; + +stats.num = 0 ; % return something even if subset = [] +stats.time = 0 ; + +start = tic ; +for t=1:params.batchSize:numel(subset) + fprintf('%s: epoch %02d: %3d/%3d:', mode, epoch, ... + fix((t-1)/params.batchSize)+1, ceil(numel(subset)/params.batchSize)) ; + batchSize = min(params.batchSize, numel(subset) - t + 1) ; + + for s=1:params.numSubBatches + % get this image batch and prefetch the next + batchStart = t + (labindex-1) + (s-1) * numlabs ; + batchEnd = min(t+params.batchSize-1, numel(subset)) ; + batch = subset(batchStart : params.numSubBatches * numlabs : batchEnd) ; + num = num + numel(batch) ; + if numel(batch) == 0, continue ; end + opts.epoch = params.epoch; + inputs = params.getBatch(params.imdb, batch,opts) ; + %------------zzd + %if(opts.epoch>10) + % net.params(net.getParamIndex('lof')).learningRate = 1e-4; + % net.params(net.getParamIndex('lob')).learningRate = 2e-4; + %end + + if params.prefetch + if s == params.numSubBatches + batchStart = t + (labindex-1) + params.batchSize ; + batchEnd = min(t+2*params.batchSize-1, numel(subset)) ; + else + batchStart = batchStart + numlabs ; + end + nextBatch = subset(batchStart : params.numSubBatches * numlabs : batchEnd) ; + params.getBatch(params.imdb, nextBatch,opts) ; + end + + if strcmp(mode, 'train') + net.mode = 'normal' ; + net.accumulateParamDers = (s ~= 1) ; + net.eval(inputs, params.derOutputs, 'holdOn', s < params.numSubBatches) ; + else + net.mode = 'test' ; + net.eval(inputs) ; + end + end + + % Accumulate gradient. + if strcmp(mode, 'train') + if ~isempty(parserv), parserv.sync() ; end + state = accumulateGradients(net, state, params, batchSize, parserv) ; + end + + % Get statistics. + time = toc(start) + adjustTime ; + batchTime = time - stats.time ; + stats.num = num ; + stats.time = time ; + stats = params.extractStatsFn(stats,net) ; + currentSpeed = batchSize / batchTime ; + averageSpeed = (t + batchSize - 1) / time ; + if t == 3*params.batchSize + 1 + % compensate for the first three iterations, which are outliers + adjustTime = 4*batchTime - time ; + stats.time = time + adjustTime ; + end + + fprintf(' %.1f (%.1f) Hz', averageSpeed, currentSpeed) ; + for f = setdiff(fieldnames(stats)', {'num', 'time'}) + f = char(f) ; + fprintf(' %s: %.3f', f, stats.(f)) ; + end + fprintf('\n') ; +end + +% Save back to state. +state.stats.(mode) = stats ; +if params.profile + if numGpus <= 1 + state.prof.(mode) = profile('info') ; + profile off ; + else + state.prof.(mode) = mpiprofile('info'); + mpiprofile off ; + end +end +if ~params.saveMomentum + state.momentum = [] ; +else + state.momentum = cellfun(@gather, state.momentum, 'uniformoutput', false) ; +end + +net.reset() ; +net.move('cpu') ; + +% ------------------------------------------------------------------------- +function state = accumulateGradients(net, state, params, batchSize, parserv) +% ------------------------------------------------------------------------- +numGpus = numel(params.gpus) ; +otherGpus = setdiff(1:numGpus, labindex) ; + +for p=1:numel(net.params) + + if ~isempty(parserv) + parDer = parserv.pullWithIndex(p) ; + else + parDer = net.params(p).der ; + %parDer(parDer>params.constraint) = params.constraint; + %parDer(parDer<-params.constraint) = -params.constraint; + end + + switch net.params(p).trainMethod + + case 'average' % mainly for batch normalization + thisLR = net.params(p).learningRate ; + net.params(p).value = vl_taccum(... + 1 - thisLR, net.params(p).value, ... + (thisLR/batchSize/net.params(p).fanout), parDer) ; + + case 'gradient' + thisDecay = params.weightDecay * net.params(p).weightDecay ; + thisLR = params.learningRate * net.params(p).learningRate ; + + if thisLR>0 || thisDecay>0 + % Normalize gradient and incorporate weight decay. + parDer = vl_taccum(1/batchSize, parDer, ... + thisDecay, net.params(p).value) ; + + % Update momentum. + state.momentum{p} = vl_taccum(... + params.momentum, state.momentum{p}, ... + -1, parDer) ; + + % Nesterov update (aka one step ahead). + if params.nesterovUpdate + delta = vl_taccum(... + params.momentum, state.momentum{p}, ... + -1, parDer) ; + else + delta = state.momentum{p} ; + end + + % Update parameters. + net.params(p).value = vl_taccum(... + 1, net.params(p).value, thisLR, delta) ; + end + case 'rmsprop' + opts = params; + thisDecay = opts.weightDecay * net.params(p).weightDecay ; + thisLR = opts.learningRate * net.params(p).learningRate ; + state.r{p} = (1 - opts.gamma) * (net.params(p).der).^2 + opts.gamma * state.r{p}; + der_constraint = (1 / batchSize) * net.params(p).der./ (sqrt(state.r{p})+1e-8); + der_constraint(der_constraint>opts.constraint) = opts.constraint; + der_constraint(der_constraint<-opts.constraint) = -opts.constraint; + state.momentum{p} = opts.momentum * state.momentum{p} ... + - thisDecay * net.params(p).value ... + - der_constraint ; + net.params(p).value = net.params(p).value + thisLR * state.momentum{p} ; + otherwise + error('Unknown training method ''%s'' for parameter ''%s''.', ... + net.params(p).trainMethod, ... + net.params(p).name) ; + end +end + +% ------------------------------------------------------------------------- +function stats = accumulateStats(stats_) +% ------------------------------------------------------------------------- + +for s = {'train', 'val'} + s = char(s) ; + total = 0 ; + + % initialize stats stucture with same fields and same order as + % stats_{1} + stats__ = stats_{1} ; + names = fieldnames(stats__.(s))' ; + values = zeros(1, numel(names)) ; + fields = cat(1, names, num2cell(values)) ; + stats.(s) = struct(fields{:}) ; + + for g = 1:numel(stats_) + stats__ = stats_{g} ; + num__ = stats__.(s).num ; + total = total + num__ ; + + for f = setdiff(fieldnames(stats__.(s))', 'num') + f = char(f) ; + stats.(s).(f) = stats.(s).(f) + stats__.(s).(f) * num__ ; + + if g == numel(stats_) + stats.(s).(f) = stats.(s).(f) / total ; + end + end + end + stats.(s).num = total ; +end + +% ------------------------------------------------------------------------- +function stats = extractStats(stats, net) +% ------------------------------------------------------------------------- +sel = find(cellfun(@(x) isa(x,'dagnn.Loss'), {net.layers.block})) ; +for i = 1:numel(sel) + stats.(net.layers(sel(i)).outputs{1}) = net.layers(sel(i)).block.average ; +end + +% ------------------------------------------------------------------------- +function saveState(fileName, net_, state) +% ------------------------------------------------------------------------- +net = net_.saveobj() ; +state.r = []; +save(fileName, 'net', 'state') ; + +% ------------------------------------------------------------------------- +function saveStats(fileName, stats) +% ------------------------------------------------------------------------- +if exist(fileName) + save(fileName, 'stats', '-append') ; +else + save(fileName, 'stats') ; +end + +% ------------------------------------------------------------------------- +function [net, state, stats] = loadState(fileName) +% ------------------------------------------------------------------------- +load(fileName, 'net', 'state', 'stats') ; +net = dagnn.DagNN.loadobj(net) ; +if isempty(whos('stats')) + error('Epoch ''%s'' was only partially saved. Delete this file and try again.', ... + fileName) ; +end + +% ------------------------------------------------------------------------- +function epoch = findLastCheckpoint(modelDir) +% ------------------------------------------------------------------------- +list = dir(fullfile(modelDir, 'net-epoch-*.mat')) ; +tokens = regexp({list.name}, 'net-epoch-([\d]+).mat', 'tokens') ; +epoch = cellfun(@(x) sscanf(x{1}{1}, '%d'), tokens) ; +epoch = max([epoch 0]) ; + +% ------------------------------------------------------------------------- +function switchFigure(n) +% ------------------------------------------------------------------------- +if get(0,'CurrentFigure') ~= n + try + set(0,'CurrentFigure',n) ; + catch + figure(n) ; + end +end + +% ------------------------------------------------------------------------- +function clearMex() +% ------------------------------------------------------------------------- +clear vl_tmove vl_imreadjpeg ; + +% ------------------------------------------------------------------------- +function prepareGPUs(opts, cold) +% ------------------------------------------------------------------------- +numGpus = numel(opts.gpus) ; +if numGpus > 1 + % check parallel pool integrity as it could have timed out + pool = gcp('nocreate') ; + if ~isempty(pool) && pool.NumWorkers ~= numGpus + delete(pool) ; + end + pool = gcp('nocreate') ; + if isempty(pool) + parpool('local', numGpus) ; + cold = true ; + end + +end +if numGpus >= 1 && cold + fprintf('%s: resetting GPU\n', mfilename) + clearMex() ; + if numGpus == 1 + gpuDevice(opts.gpus) + else + spmd + clearMex() ; + gpuDevice(opts.gpus(labindex)) + end + end +end diff --git a/examples/issue339/objectivec.m b/examples/issue339/objectivec.m new file mode 100644 index 00000000..24d0cf78 --- /dev/null +++ b/examples/issue339/objectivec.m @@ -0,0 +1,896 @@ +// +// SGRtmpSession.m +// SGLivingPublisher +// +// Created by iossinger on 16/6/16. +// Copyright © 2016年 iossinger. All rights reserved. +// + +#import "SGRtmpSession.h" +#import "SGStreamSession.h" +#import "SGRtmpTypes.h" +#import "NSString+URL.h" +#import "NSMutableData+Buffer.h" +#import "SGRtmpConfig.h" + +static const size_t kRTMPSignatureSize = 1536; + + +@interface SGRtmpSession() +{ + //两个线程,一个负责组装数据,一个负责发送数据 + dispatch_queue_t _packetQueue; + dispatch_queue_t _sendQueue; + + int _outChunkSize; + int _inChunkSize; + int _streamID; + int _numOfInvokes; +} + +@property (nonatomic,strong) SGStreamSession *session; + +@property (nonatomic, copy) NSString *url; + +@property (nonatomic,assign) SGRtmpSessionStatus rtmpStatus; + +@property (nonatomic,strong) NSMutableData *handshake; + +@property (nonatomic,strong) NSMutableDictionary *preChunk; + +@property (nonatomic,strong) NSMutableDictionary *trackedCommands; + +@end + + +@implementation SGRtmpSession + +- (void)dealloc{ + NSLog(@"%s",__func__); + [self sendDeleteStream]; + self.url = nil; + self.delegate = nil; + self.session.delegate = nil; + self.session = nil; + _packetQueue = nil; + _sendQueue = nil; + _rtmpStatus = SGRtmpSessionStatusNone; + _numOfInvokes = 0; + [_preChunk removeAllObjects]; + [_trackedCommands removeAllObjects]; + _config = nil; +} + +- (NSMutableDictionary *)trackedCommands{ + if (_trackedCommands == nil) { + _trackedCommands = [NSMutableDictionary dictionary]; + } + return _trackedCommands; +} + +- (NSMutableDictionary *)preChunk{ + if (_preChunk == nil) { + _preChunk = [NSMutableDictionary dictionary]; + } + return _preChunk; +} + +- (SGStreamSession *)session{ + if (_session == nil) { + _session = [[SGStreamSession alloc] init]; + _session.delegate = self; + } + return _session; +} + +- (void)setUrl:(NSString *)url{ + _url = url; + NSLog(@"scheme:%@",url.scheme); + NSLog(@"host:%@",url.host); + NSLog(@"app:%@",url.app); + NSLog(@"playPath:%@",url.playPath); + NSLog(@"port:%zd",url.port); +} + +- (void)setRtmpStatus:(SGRtmpSessionStatus)rtmpStatus{ + _rtmpStatus = rtmpStatus; + NSLog(@"rtmpStatus-----%zd",rtmpStatus); + if ([self.delegate respondsToSelector:@selector(rtmpSession:didChangeStatus:)]) { + [self.delegate rtmpSession:self didChangeStatus:_rtmpStatus]; + } +} + +- (instancetype)init{ + + if (self = [super init]) { + + _rtmpStatus = SGRtmpSessionStatusNone; + _packetQueue = dispatch_queue_create("packet", 0); + _sendQueue = dispatch_queue_create("send", 0); + + _outChunkSize = 128; + _inChunkSize = 128; + } + + return self; + +} + +- (void)setConfig:(SGRtmpConfig *)config{ + _config = config; + self.url = config.url; +} +- (void)connect{ + [self.session connectToServer:self.url.host port:self.url.port]; +} +- (void)disConnect{ + [self reset]; + [self.session disConnect]; +} +- (void)reset{ + self.handshake = nil; + self.preChunk = nil; + self.trackedCommands = nil; + _streamID = 0; + _numOfInvokes = 0; + _outChunkSize = 128; + _inChunkSize = 128; + self.rtmpStatus = SGRtmpSessionStatusNone; +} +#pragma mark -------delegate--------- +- (void)streamSession:(SGStreamSession *)session didChangeStatus:(SGStreamStatus)streamStatus{ + + if (streamStatus & NSStreamEventHasBytesAvailable) {//收到数据 + [self didReceivedata]; + return;//return + } + + if (streamStatus & NSStreamEventHasSpaceAvailable){ //可以写数据 + + if (_rtmpStatus == SGRtmpSessionStatusConnected) { + [self handshake0]; + } + + return;//return + } + + if ((streamStatus & NSStreamEventOpenCompleted) && + _rtmpStatus < SGRtmpSessionStatusConnected) { + self.rtmpStatus = SGRtmpSessionStatusConnected; + } + + if (streamStatus & NSStreamEventErrorOccurred) { + self.rtmpStatus = SGRtmpSessionStatusError; + } + + if (streamStatus & NSStreamEventEndEncountered) { + self.rtmpStatus = SGRtmpSessionStatusNotConnected; + } +} + +- (void)handshake0{ + + self.rtmpStatus = SGRtmpSessionStatusHandshake0; + + //c0 + char c0Byte = 0x03; + NSData *c0 = [NSData dataWithBytes:&c0Byte length:1]; + [self writeData:c0]; + + //c1 + uint8_t *c1Bytes = (uint8_t *)malloc(kRTMPSignatureSize); + memset(c1Bytes, 0, 4 + 4); + NSData *c1 = [NSData dataWithBytes:c1Bytes length:kRTMPSignatureSize]; + free(c1Bytes); + [self writeData:c1]; +} + +- (void)handshake1{ + self.rtmpStatus = SGRtmpSessionStatusHandshake2; + NSData *s1 = [self.handshake subdataWithRange:NSMakeRange(0, kRTMPSignatureSize)]; + //c2 + uint8_t *s1Bytes = (uint8_t *)s1.bytes; + memset(s1Bytes + 4, 0, 4); + NSData *c2 = [NSData dataWithBytes:s1Bytes length:s1.length]; + [self writeData:c2]; +} + +//验证过 +- (void)sendConnectPacket{ + NSLog(@"sendConnectPacket"); +// AMF格式 + RTMPChunk_0 metadata = {0}; + metadata.msg_stream_id = SGStreamIDInvoke; + metadata.msg_type_id = SGMSGTypeID_INVOKE; + + NSString *url; + NSMutableData *buff = [NSMutableData data]; + if (_url.port > 0) { + url = [NSString stringWithFormat:@"%@://%@:%zd/%@",_url.scheme,_url.host,_url.port,_url.app]; + }else{ + url = [NSString stringWithFormat:@"%@://%@/%@",_url.scheme,_url.host,_url.app]; + } + + [buff appendString:@"connect"]; + [buff appendDouble:++_numOfInvokes]; + self.trackedCommands[@(_numOfInvokes)] = @"connect"; + [buff appendByte:kAMFObject]; + [buff putKey:@"app" stringValue:_url.app]; + [buff putKey:@"type" stringValue:@"nonprivate"]; + [buff putKey:@"tcUrl" stringValue:url]; + [buff putKey:@"fpad" boolValue:NO];//是否使用代理 + [buff putKey:@"capabilities" doubleValue:15.]; + [buff putKey:@"audioCodecs" doubleValue:10.]; + [buff putKey:@"videoCodecs" doubleValue:7.]; + [buff putKey:@"videoFunction" doubleValue:1.]; + [buff appendByte16:0]; + [buff appendByte:kAMFObjectEnd]; + + metadata.msg_length.data = (int)buff.length; + [self sendPacket:buff :metadata]; +} + +- (void)sendPacket:(NSData *)data :(RTMPChunk_0)metadata{ + + SGFrame *frame = [[SGFrame alloc] init]; + + frame.data = data; + frame.timestamp = metadata.timestamp.data; + frame.msgLength = metadata.msg_length.data; + frame.msgTypeId = metadata.msg_type_id;//消息类型 + frame.msgStreamId = metadata.msg_stream_id;//消息流id + + [self sendBuffer:frame]; +} +/** + * Chunk Basic Header: HeaderType+ChannelID组成 1个字节 + * >HeaderType(前两bit): 00->12字节 01->8字节 + * >ChannelID(后6个bit): 02->Ping和ByteRead通道 03->Invoke通道 connect() publish()和自己写的NetConnection.Call() 04->Audio和Vidio通道 + * + * 12字节举例 + * Chunk Message Header:timestamp + message_length+message_typ + msg_stream_id + * message_typ :type为1,2,3,5,6的时候是协议控制消息 + * + * type为4的时候表示 User Control Messages [Event_type + Event_Data] Event_type有Stream Begin,Stream End... + * + * type为8,音频数据 + * + * type为9,视频数据 + * + * type为18 元数据消息[AMF0] + * + * type为20 命令消息 Command Message(RPC Message) + * 例如connect, createStream, publish, play, pause on the peer + * + * + * + */ +- (void)sendBuffer:(SGFrame *)frame{ + dispatch_sync(_packetQueue, ^{ + + uint64_t ts = frame.timestamp; + + int streamId = frame.msgStreamId; + NSLog(@"streamId------%d",streamId); + NSNumber *preTimestamp = self.preChunk[@(streamId)]; + + uint8_t *chunk; + int offset = 0; + + if (preTimestamp == nil) {//第一帧,音频或者视频 + chunk = malloc(12); + chunk[0] = RTMP_CHUNK_TYPE_0/*0x00*/ | (streamId & 0x1F); //前两个字节 00 表示12字节 + offset += 1; + + memcpy(chunk+offset, [NSMutableData be24:(uint32_t)ts], 3); + offset += 3;//时间戳3个字节 + + memcpy(chunk+offset, [NSMutableData be24:frame.msgLength], 3); + offset += 3;//消息长度3个字节 + + int msgTypeId = frame.msgTypeId;//一个字节的消息类型 + memcpy(chunk+offset, &msgTypeId, 1); + offset += 1; + + memcpy(chunk+offset, (uint8_t *)&(_streamID), sizeof(_streamID)); + offset += sizeof(_streamID); + + }else{//不是第一帧 + chunk = malloc(8); + chunk[0] = RTMP_CHUNK_TYPE_1/*0x40*/ | (streamId & 0x1F);//前两个字节01表示8字节 + offset += 1; + + char *temp = [NSMutableData be24:(uint32_t)(ts - preTimestamp.integerValue)]; + memcpy(chunk+offset, temp, 3); + offset += 3; + + memcpy(chunk+offset, [NSMutableData be24:frame.msgLength], 3); + offset += 3; + + int msgTypeId = frame.msgTypeId; + memcpy(chunk+offset, &msgTypeId, 1); + offset += 1; + } + + self.preChunk[@(streamId)] = @(ts); + + uint8_t *bufferData = (uint8_t *)frame.data.bytes; + uint8_t *outp = (uint8_t *)malloc(frame.data.length + 64); + memcpy(outp, chunk, offset); + free(chunk); + + NSUInteger total = frame.data.length; + NSInteger step = MIN(total, _outChunkSize); + + memcpy(outp+offset, bufferData, step); + offset += step; + total -= step; + bufferData += step; + + while (total > 0) { + step = MIN(total, _outChunkSize); + bufferData[-1] = RTMP_CHUNK_TYPE_3/*0xC0*/ | (streamId & 0x1F);//11表示一个字节,直接跳过这个字节; + memcpy(outp+offset, bufferData - 1, step + 1); + + offset += step + 1; + total -= step; + bufferData += step; + } + + NSData *tosend = [NSData dataWithBytes:outp length:offset]; + free(outp); + [self writeData:tosend]; + }); +} + +//接收到数据 +- (void)didReceivedata{ + NSData *data = [self.session readData]; + + if (self.rtmpStatus >= SGRtmpSessionStatusConnected && + self.rtmpStatus < SGRtmpSessionStatusHandshakeComplete) { + [self.handshake appendData:data]; + } + + NSLog(@"%zd",data.length); + +//handshke 可能情况: 1.按照官方文档c0,c1,c2 + // 2.一起发3073个字节 + // 3.先发一部分,再发一部分,每部分大小不确定,总数3073正确 + switch (_rtmpStatus) { + case SGRtmpSessionStatusHandshake0:{ + uint8_t s0; + [data getBytes:&s0 length:1]; + if (s0 == 0x03) {//s0 + self.rtmpStatus = SGRtmpSessionStatusHandshake1; + if (data.length > 1) {//后面还有数据,但不确定长度 + data = [data subdataWithRange:NSMakeRange(1, data.length -1)]; + self.handshake = data.mutableCopy; + }else{ + break; + } + }else{ + NSLog(@"握手失败"); + break; + } + } + case SGRtmpSessionStatusHandshake1:{ + + if (self.handshake.length >= kRTMPSignatureSize) {//s1 + [self handshake1]; + + if (self.handshake.length > kRTMPSignatureSize) {//> + NSData *subData = [self.handshake subdataWithRange:NSMakeRange(kRTMPSignatureSize, self.handshake.length - kRTMPSignatureSize)]; + self.handshake = subData.mutableCopy; + }else{// = + self.handshake = [NSMutableData data]; + break; + } + }else{// < + break; + } + } + + case SGRtmpSessionStatusHandshake2:{//s2 + if (data.length >= kRTMPSignatureSize) { + NSLog(@"握手完成"); + self.rtmpStatus = SGRtmpSessionStatusHandshakeComplete; + [self sendConnectPacket]; + } + break; + } + default: + [self parseData:data]; + break; + } +} + +- (void)parseData:(NSData *)data{ + + if (data.length == 0) { + return; + } + + uint8_t *buffer = (uint8_t *)data.bytes; + NSUInteger total = data.length; + + while (total > 0) { + int headType = (buffer[0] & 0xC0) >> 6;//取出前两个字节 + buffer++; + total --; + + if (total <= 0) { + break; + } + + switch (headType) { + case RTMP_HEADER_TYPE_FULL:{ + RTMPChunk_0 chunk; + memcpy(&chunk, buffer, sizeof(RTMPChunk_0)); + chunk.msg_length.data = [NSMutableData getByte24:(uint8_t *)&chunk.msg_length]; + buffer += sizeof(RTMPChunk_0); + total -= sizeof(RTMPChunk_0); + BOOL isSuccess = [self handleMeesage:buffer :chunk.msg_type_id]; + if (!isSuccess) { + total = 0;break; + } + + buffer += chunk.msg_length.data; + total -= chunk.msg_length.data; + } + break; + case RTMP_HEADER_TYPE_NO_MSG_STREAM_ID:{ + RTMPChunk_1 chunk; + memcpy(&chunk, buffer, sizeof(RTMPChunk_1)); + buffer += sizeof(RTMPChunk_1); + total -= sizeof(RTMPChunk_1); + chunk.msg_length.data = [NSMutableData getByte24:(uint8_t *)&chunk.msg_length]; + BOOL isSuccess = [self handleMeesage:buffer :chunk.msg_type_id]; + if (!isSuccess) { + total = 0;break; + } + + buffer += chunk.msg_length.data; + total -= chunk.msg_length.data; + } + break; + case RTMP_HEADER_TYPE_TIMESTAMP:{ + RTMPChunk_2 chunk; + memcpy(&chunk, buffer, sizeof(RTMPChunk_2)); + buffer += sizeof(RTMPChunk_2) + MIN(total, _inChunkSize); + total -= sizeof(RTMPChunk_2) + MIN(total, _inChunkSize); + + } + break; + case RTMP_HEADER_TYPE_ONLY:{ + buffer += MIN(total, _inChunkSize); + total -= MIN(total, _inChunkSize); + } + break; + + default: + return; + } + } +} + +- (BOOL)handleMeesage:(uint8_t *)p :(uint8_t)msgTypeId{ + BOOL handleSuccess = YES; + switch(msgTypeId) { + case SGMSGTypeID_BYTES_READ: + { + + } + break; + + case SGMSGTypeID_CHUNK_SIZE: + { + unsigned long newChunkSize = [NSMutableData getByte32:p];//get_be32(p); + NSLog(@"change incoming chunk size from %d to: %zu", _inChunkSize, newChunkSize); + _inChunkSize = (int)newChunkSize; + } + break; + + case SGMSGTypeID_PING: + { + NSLog(@"received ping, sending pong."); + [self sendPong]; + } + break; + + case SGMSGTypeID_SERVER_WINDOW: + { + NSLog(@"received server window size: %d\n", [NSMutableData getByte32:p]); + } + break; + + case SGMSGTypeID_PEER_BW: + { + NSLog(@"received peer bandwidth limit: %d type: %d\n", [NSMutableData getByte32:p], p[4]); + } + break; + + case SGMSGTypeID_INVOKE: + { + NSLog(@"Received invoke"); + [self handleInvoke:p];//handleInvoke + } + break; + case SGMSGTypeID_VIDEO: + { + NSLog(@"received video"); + } + break; + + case SGMSGTypeID_AUDIO: + { + NSLog(@"received audio"); + } + break; + + case SGMSGTypeID_METADATA: + { + NSLog(@"received metadata"); + } + break; + + case SGMSGTypeID_NOTIFY: + { + NSLog(@"received notify"); + } + break; + + default: + { + NSLog(@"received unknown packet type: 0x%02X", msgTypeId); + handleSuccess = NO; + } + break; + } + return handleSuccess; +} + +- (void)sendPong{ + dispatch_sync(_packetQueue, ^{ + int streamId = 0; + + NSMutableData *data = [NSMutableData data]; + [data appendByte:2]; + [data appendByte24:0]; + [data appendByte24:6]; + [data appendByte:SGMSGTypeID_PING]; + + [data appendBytes:(uint8_t*)&streamId length:sizeof(int32_t)]; + [data appendByte16:7]; + [data appendByte16:0]; + [data appendByte16:0]; + + [self writeData:data]; + }); +} + +- (void)handleInvoke:(uint8_t *)p{ + int buflen = 0; + NSString *command = [NSMutableData getString:p :&buflen]; + NSLog(@"received invoke %@\n", command); + + int pktId = (int)[NSMutableData getDouble:p + 11]; + NSLog(@"pktId: %d\n", pktId); + + NSString *trackedCommand = self.trackedCommands[@(pktId)] ; + + if ([command isEqualToString:@"_result"]) { + NSLog(@"tracked command: %@\n", trackedCommand); + if ([trackedCommand isEqualToString:@"connect"]) { + [self sendReleaseStream]; + [self sendFCPublish]; + [self sendCreateStream]; + self.rtmpStatus = SGRtmpSessionStatusFCPublish; + } else if ([trackedCommand isEqualToString:@"createStream"]) { + if (p[10] || p[19] != 0x05 || p[20]) { + NSLog(@"RTMP: Unexpected reply on connect()\n"); + } else { + _streamID = [NSMutableData getDouble:p+21]; + } + [self sendPublish]; + self.rtmpStatus = SGRtmpSessionStatusReady; + } + } else if ([command isEqualToString:@"onStatus"]) {//parseStatusCode + NSString *code = [self parseStatusCode:p + 3 + command.length]; + NSLog(@"code : %@", code); + if ([code isEqualToString:@"NetStream.Publish.Start"]) { + + // [self sendHeaderPacket];//貌似不发这一句,也可以 + + //重新设定了chunksize大小 + [self sendSetChunkSize:getpagesize()];//16K + + //sendSetBufferTime(0);//设定时间 + self.rtmpStatus = SGRtmpSessionStatusSessionStarted; + } + } +} + +- (NSString *)parseStatusCode:(uint8_t *)p{ + NSMutableDictionary *props = [NSMutableDictionary dictionary]; + + // skip over the packet id + p += sizeof(double) + 1; + + //keep reading until we find an AMF Object + bool foundObject = false; + while (!foundObject) { + if (p[0] == AMF_DATA_TYPE_OBJECT) { + p += 1; + foundObject = true; + continue; + } else { + p += [self amfPrimitiveObjectSize:p]; + } + } + + // read the properties of the object + uint16_t nameLen, valLen; + char propName[128], propVal[128]; + do { + nameLen = [NSMutableData getByte16:p];//get_be16(p); + p += sizeof(nameLen); + strncpy(propName, (char*)p, nameLen); + propName[nameLen] = '\0'; + p += nameLen; + NSString *key = [NSString stringWithUTF8String:propName]; + NSLog(@"key----%@",key); + if (p[0] == AMF_DATA_TYPE_STRING) { + valLen = [NSMutableData getByte16:p+1];//get_be16(p+1); + p += sizeof(valLen) + 1; + strncpy(propVal, (char*)p, valLen); + propVal[valLen] = '\0'; + p += valLen; + NSString *value = [NSString stringWithUTF8String:propVal]; + props[key] = value; + } else { + // treat non-string property values as empty + p += [self amfPrimitiveObjectSize:p]; + props[key] = @""; + } + } while ([NSMutableData getByte24:p] != AMF_DATA_TYPE_OBJECT_END); + + //p = start; + return props[@"code"] ; +} + +- (int)amfPrimitiveObjectSize:(uint8_t *)p{//amf原始对象 + switch(p[0]) { + case AMF_DATA_TYPE_NUMBER: return 9; + case AMF_DATA_TYPE_BOOL: return 2; + case AMF_DATA_TYPE_NULL: return 1; + case AMF_DATA_TYPE_STRING: return 3 + [NSMutableData getByte16:p]; + case AMF_DATA_TYPE_LONG_STRING: return 5 + [NSMutableData getByte32:p]; + } + return -1; // not a primitive, likely an object +} + +- (void)sendHeaderPacket{ + RTMPChunk_0 metadata = {0}; + NSMutableData *buffer =[NSMutableData data]; + [buffer appendString:@"@setDataFrame"]; + [buffer appendString:@"onMetaData"]; + [buffer appendByte:kAMFObject]; + + [buffer putKey:@"width" doubleValue:self.config.width]; + [buffer putKey:@"height" doubleValue:self.config.height]; + [buffer putKey:@"displaywidth" doubleValue:self.config.width]; + [buffer putKey:@"displayheight" doubleValue:self.config.height]; + [buffer putKey:@"framewidth" doubleValue:self.config.width]; + [buffer putKey:@"frameheight" doubleValue:self.config.height]; + [buffer putKey:@"videodatarate" doubleValue:self.config.videoBitrate / 1024.]; + [buffer putKey:@"videoframerate" doubleValue:1.0 / self.config.frameDuration]; + + [buffer putKey:@"videocodecid" stringValue:@"avc1"]; + [buffer putStringValue:@"trackinfo"]; + [buffer appendByte:kAMFStrictArray]; + [buffer appendByte32:2]; + + // Audio stream metadata + [buffer appendByte:kAMFObject]; + [buffer putKey:@"type" stringValue:@"audio"]; + NSString *desc = [NSString stringWithFormat:@"{AACFrame: codec:AAC, channels:%d, frequency:%f, samplesPerFrame:1024, objectType:LC}",self.config.stereo+1,self.config.audioSampleRate]; + [buffer putKey:@"description" stringValue:desc]; + [buffer putKey:@"timescale" doubleValue:1000.]; + [buffer putStringValue:@"sampledescription"]; + [buffer appendByte:kAMFStrictArray]; + [buffer appendByte32:1]; + [buffer appendByte:kAMFObject]; + [buffer putKey:@"sampletype" stringValue:@"mpeg4-generic"]; + [buffer appendByte:0]; + [buffer appendByte:0]; + [buffer appendByte:kAMFObjectEnd]; + + [buffer putKey:@"language" stringValue:@"eng"]; + [buffer appendByte:0]; + [buffer appendByte:0]; + [buffer appendByte:kAMFObjectEnd]; + + // Video stream metadata + [buffer appendByte:kAMFObject]; + [buffer putKey:@"type" stringValue:@"video"]; + [buffer putKey:@"timescale" doubleValue:1000.]; + [buffer putKey:@"language" stringValue:@"eng"]; + [buffer putStringValue:@"sampledescription"]; + [buffer appendByte:kAMFStrictArray]; + [buffer appendByte32:1]; + [buffer appendByte:kAMFObject]; + [buffer putKey:@"sampletype" stringValue:@"H264"]; + [buffer appendByte:0]; + [buffer appendByte:0]; + [buffer appendByte:kAMFObjectEnd]; + [buffer appendByte:0]; + [buffer appendByte:0]; + [buffer appendByte:kAMFObjectEnd]; + + [buffer appendByte16:0]; + [buffer appendByte:kAMFObjectEnd]; + [buffer putKey:@"audiodatarate" doubleValue:131152. / 1024.]; + [buffer putKey:@"audiosamplerate" doubleValue:self.config.audioSampleRate]; + [buffer putKey:@"audiosamplesize" doubleValue:16]; + [buffer putKey:@"audiochannels" doubleValue:self.config.stereo + 1]; + [buffer putKey:@"audiocodecid" stringValue:@"mp4a"]; + + [buffer appendByte:0]; + [buffer appendByte:kAMFObjectEnd]; + + metadata.msg_type_id = FLV_TAG_TYPE_META; + metadata.msg_stream_id = SGStreamIDAudio; + metadata.msg_length.data = (int)buffer.length; + metadata.timestamp.data = 0; + + [self sendPacket:buffer :metadata]; +} + +//验证过 +- (void)sendSetChunkSize:(int32_t)newChunkSize{ + + dispatch_sync(_packetQueue, ^{ + int streamId = 0; + NSMutableData *data = [NSMutableData data]; + [data appendByte:2]; + [data appendByte24:0]; + [data appendByte24:4]; + [data appendByte:SGMSGTypeID_CHUNK_SIZE]; + + [data appendBytes:(uint8_t*)&streamId length:sizeof(int32_t)]; + [data appendByte32:newChunkSize]; + + [self writeData:data]; + //这里重新赋值了 16384 + _outChunkSize = newChunkSize; + }); +} + +- (void)sendSetBufferTime:(int)milliseconds{ + dispatch_sync(_packetQueue, ^{ + int streamId = 0; + + NSMutableData *data = [NSMutableData data]; + [data appendByte:2]; + [data appendByte24:0]; + [data appendByte24:10]; + [data appendByte:SGMSGTypeID_PING]; + [data appendBytes:(uint8_t*)&streamId length:sizeof(int32_t)]; + + [data appendByte16:3]; + [data appendByte32:_streamID]; + [data appendByte32:milliseconds]; + + [self writeData:data]; + }); +} + +- (void)sendPublish{ + RTMPChunk_0 metadata = {0}; + metadata.msg_stream_id = SGStreamIDAudio; + metadata.msg_type_id = SGMSGTypeID_INVOKE; + + NSMutableData *buff = [NSMutableData data]; + [buff appendString:@"publish"]; + [buff appendDouble:++_numOfInvokes]; + self.trackedCommands[@(_numOfInvokes)] = @"publish"; + [buff appendByte:kAMFNull]; + [buff appendString:_url.playPath]; + [buff appendString:@"live"]; + + metadata.msg_length.data = (int)buff.length; + [self sendPacket:buff :metadata]; +} + +- (void)sendCreateStream{ + RTMPChunk_0 metadata = {0}; + metadata.msg_stream_id = SGStreamIDInvoke; + metadata.msg_type_id = SGMSGTypeID_INVOKE; + + NSMutableData *buff = [NSMutableData data]; + [buff appendString:@"createStream"]; + self.trackedCommands[@(++_numOfInvokes)] = @"createStream"; + [buff appendDouble:_numOfInvokes]; + [buff appendByte:kAMFNull]; + + metadata.msg_length.data = (int)buff.length; + [self sendPacket:buff :metadata]; +} + +//未调用 +- (void)sendFCUnpublish{ +// RTMPChunk_0 metadata = {0}; +// metadata.msg_stream_id = SGStreamIDInvoke; +// metadata.msg_type_id = SGMSGTypeID_INVOKE; +// +// NSMutableData *buff = [NSMutableData data]; +// [buff appendString:@"FCUnublish"]; +// [buff appendDouble:(++_numOfInvokes)]; +// self.trackedCommands[@(_numOfInvokes)] = @"FCUnublish"; +// [buff appendByte:kAMFNull]; +// [buff appendString:_url.playPath]; +// metadata.msg_length.data = (int)buff.length; +// +// [self sendPacket:buff :metadata]; +} + +- (void)sendFCPublish{ + RTMPChunk_0 metadata = {0}; + metadata.msg_stream_id = SGStreamIDInvoke; + metadata.msg_type_id = SGMSGTypeID_NOTIFY; + + NSMutableData *buff = [NSMutableData data]; + [buff appendString:@"FCPublish"]; + [buff appendDouble:(++_numOfInvokes)]; + self.trackedCommands[@(_numOfInvokes)] = @"FCPublish"; + [buff appendByte:kAMFNull]; + [buff appendString:_url.playPath]; + metadata.msg_length.data = (int)buff.length; + + [self sendPacket:buff :metadata]; +} + +- (void)sendDeleteStream{ + RTMPChunk_0 metadata = {0}; + metadata.msg_stream_id = SGStreamIDInvoke; + metadata.msg_type_id = SGMSGTypeID_INVOKE; + + NSMutableData *buff = [NSMutableData data]; + [buff appendString:@"deleteStream"]; + [buff appendDouble:++_numOfInvokes]; + self.trackedCommands[@(_numOfInvokes)] = @"deleteStream"; + [buff appendByte:kAMFNull]; + [buff appendDouble:_streamID]; + + metadata.msg_length.data = (int)buff.length; + [self sendPacket:buff :metadata]; +} + +- (void)sendReleaseStream{ + + RTMPChunk_0 metadata = {0}; + metadata.msg_stream_id = SGStreamIDInvoke; + metadata.msg_type_id = SGMSGTypeID_NOTIFY; + + NSMutableData *buff = [NSMutableData data]; + [buff appendString:@"releaseStream"]; + [buff appendDouble:++_numOfInvokes]; + + self.trackedCommands[@(_numOfInvokes)] = @"releaseStream"; + [buff appendByte:kAMFNull]; + [buff appendString:_url.playPath]; + + metadata.msg_length.data = (int)buff.length; + [self sendPacket:buff :metadata]; +} + +- (void)writeData:(NSData *)data{ + if (data.length == 0) { + return; + } + + [self.session writeData:data]; + +} +@end diff --git a/languages.json b/languages.json index 32e91888..9e93cc52 100644 --- a/languages.json +++ b/languages.json @@ -4208,6 +4208,62 @@ } ] }, + "MATLAB": { + "complexitychecks": [ + "if ", + "elseif ", + "case ", + "otherwise ", + "try", + "for ", + "while " + ], + "extensions": [ + "m" + ], + "keywords": [ + "eye(", + "zeros(", + "ones(", + "transpose(", + "meshgrid(", + "mod(", + "classdef", + "function", + "disp(", + "sin(", + "tan(", + "cos(", + "plot", + "sqrt(", + "deblank(", + "findstr(", + "strrep(", + "strcmp(", + "display(", + "strcat(", + "iscellstr(", + "strfind(", + "%", + "function", + "fprintf(" + ], + "line_comment": [ + "%" + ], + "multi_line": [ + [ + "%{", + "}%" + ] + ], + "quotes": [ + { + "end": "'", + "start": "'" + } + ] + }, "Modula3": { "complexitychecks": [ "for ", @@ -4449,10 +4505,27 @@ "extensions": [ "m" ], + "keywords": [ + "#include", + "printf", + "stdio.h", + ".h", + "@import", + "@interface", + "@property", + "@implementation", + "NSArray", + "#pragma", + "static", + "const", + "atomic", + "@end", + "//" + ], "line_comment": [ "//" ], - "multi_line": [ + "multi_line": [ [ "/*", "*/" diff --git a/processor/constants.go b/processor/constants.go index f2ba31eb..27923d09 100644 --- a/processor/constants.go +++ b/processor/constants.go @@ -1,5 +1,5 @@ package processor const ( - languages = `ewogICJBQkFQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhYmFwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIiwKICAgICAgIlxcXCIiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFQTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiOkZvciAiLAogICAgICAiOklmICIsCiAgICAgICI6Q2FzZSAiLAogICAgICAiOkNhc2VMaXN0ICIsCiAgICAgICI6V2hpbGUgIiwKICAgICAgIjpSZXBlYXQgIiwKICAgICAgIjpFbHNlICIsCiAgICAgICLiiKgiLAogICAgICAi4oinIiwKICAgICAgIuKJoCIsCiAgICAgICJ+IiwKICAgICAgIsKoIiwKICAgICAgIj0iCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhcGwiLAogICAgICAiYXBsZiIsCiAgICAgICJhcGxuIiwKICAgICAgImFwbGMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIuKNnSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJBcHBsZVNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiY29uc2lkZXJpbmcgIiwKICAgICAgImlnbm9yaW5nICIsCiAgICAgICJyZXBlYXQgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZSBpZiAiLAogICAgICAidHJ5ICIsCiAgICAgICJvbiBlcnJvciAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhcHBsZXNjcmlwdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFtdCiAgfSwKICAiQVNQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhc2EiLAogICAgICAiYXNwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIiwKICAgICAgIlJFTSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQVNQLk5FVCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXNheCIsCiAgICAgICJhc2N4IiwKICAgICAgImFzbXgiLAogICAgICAiYXNweCIsCiAgICAgICJtYXN0ZXIiLAogICAgICAic2l0ZW1hcCIsCiAgICAgICJ3ZWJpbmZvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiPCUtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFUUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICIgdGhlbiAiLAogICAgICAiIGVsc2UgIiwKICAgICAgImNhc2UrICIsCiAgICAgICJpZmNhc2UiLAogICAgICAibGV0ICIsCiAgICAgICJhbmQgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZGF0cyIsCiAgICAgICJzYXRzIiwKICAgICAgImF0cyIsCiAgICAgICJoYXRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdLAogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLy8vLyIsCiAgICAgICAgIlRISVNTSE9VTERORVZFUkFQUEVBUldFSE9QRSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJBV0siOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhd2siCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJhd2siLAogICAgICAiZ2F3ayIsCiAgICAgICJtYXdrIgogICAgXQogIH0sCiAgIkFjdGlvblNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQWRhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhZGEiLAogICAgICAiYWRiIiwKICAgICAgImFkcyIsCiAgICAgICJwYWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBZ2RhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhZ2RhIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7LSIsCiAgICAgICAgIi19IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQWxjaGVtaXN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICIrIiwKICAgICAgIi0+IiwKICAgICAgIiEiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjcm4iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFsZXgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBbGxveSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaW1wbGllcyAiLAogICAgICAiZWxzZSAiLAogICAgICAiZm9yICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiPD0gIiwKICAgICAgIj49ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFscyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iLAogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFuZHJvaWQgSW50ZXJmYWNlIERlZmluaXRpb24gTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFpZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qKiIsCiAgICAgICAgIiovIgogICAgICBdLAogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQXJ2byI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImF2ZGwiLAogICAgICAiYXZwciIsCiAgICAgICJhdnNjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBc2NpaURvYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFkb2MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFzc2VtYmx5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzIiwKICAgICAgImFzbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiQXV0b0hvdEtleSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYWhrIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBdXRvY29uZiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaW4iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiZG5sIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJiYWl0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJlbHNlICIsCiAgICAgICIgb3IgIiwKICAgICAgIiBhbmQgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYWl0IgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImFuZCIsCiAgICAgICJicmVhayIsCiAgICAgICJjb25zdCAiLAogICAgICAiY29udGludWUiLAogICAgICAiZWxzZSAiLAogICAgICAiZnVuICIsCiAgICAgICJpbXBvcnQgIiwKICAgICAgIm5vdCAiLAogICAgICAib3IgIiwKICAgICAgInBhY2thZ2UgIiwKICAgICAgInJldHVybiIsCiAgICAgICJzdHJ1Y3QgIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiYCIsCiAgICAgICAgInN0YXJ0IjogImAiCiAgICAgIH0KICAgIF0KICB9LAogICJCQVNIIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYXNoIiwKICAgICAgImJhc2hfbG9naW4iLAogICAgICAiYmFzaF9sb2dvdXQiLAogICAgICAiYmFzaF9wcm9maWxlIiwKICAgICAgImJhc2hyYyIKICAgIF0sCiAgICAiZmlsZW5hbWVzIjogWwogICAgICAiLmJhc2hfbG9naW4iLAogICAgICAiLmJhc2hfbG9nb3V0IiwKICAgICAgIi5iYXNoX3Byb2ZpbGUiLAogICAgICAiLmJhc2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAiYmFzaCIKICAgIF0KICB9LAogICJCYXNpYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZWlmICIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiciCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQmF0Y2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJhdCIsCiAgICAgICJidG0iLAogICAgICAiY21kIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJSRU0iLAogICAgICAiOjoiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJhemVsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiemwiLAogICAgICAiYnVpbGQuYmF6ZWwiLAogICAgICAiYnVpbGQiLAogICAgICAid29ya3NwYWNlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQml0YmFrZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYmIiLAogICAgICAiYmJhcHBlbmQiLAogICAgICAiYmJjbGFzcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkJpdGJ1Y2tldCBQaXBlbGluZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJpdGJ1Y2tldC1waXBlbGluZXMueW1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJCbGFkZSB0ZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiQGZvciAiLAogICAgICAiQGZvcigiLAogICAgICAiQGZvcmVhY2ggIiwKICAgICAgIkBmb3JlYWNoKCIsCiAgICAgICJAZm9yZWxzZSAiLAogICAgICAiQGZvcmVsc2UoIiwKICAgICAgIkBlYWNoICIsCiAgICAgICJAZWFjaCAoIiwKICAgICAgIkB3aGlsZSAiLAogICAgICAiQHdoaWxlKCIsCiAgICAgICJAaWYgIiwKICAgICAgIkBpZigiLAogICAgICAiQHVubGVzcyAiLAogICAgICAiQHVubGVzcygiLAogICAgICAiQGlzc2V0ICIsCiAgICAgICJAaXNzZXQoIiwKICAgICAgIkBlbXB0eSAiLAogICAgICAiQGVtcHR5KCIsCiAgICAgICJAZWxzZSAiLAogICAgICAiQGVsc2VpZiAiLAogICAgICAiQGVsc2VpZigiLAogICAgICAiQHdoaWxlICIsCiAgICAgICJAd2hpbGUoIiwKICAgICAgIkBzd2l0Y2ggIiwKICAgICAgIkBzd2l0Y2ggKCIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJibGFkZS5waHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAie3stLSIsCiAgICAgICAgIi0tfX0iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJvbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJpZiAiLAogICAgICAiZWxpZiAiLAogICAgICAidW5sZXNzICIsCiAgICAgICIgYW5kICIsCiAgICAgICJmb3IgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJib28iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXCJcIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCJcIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQm9zcXVlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAibWF0Y2ggIiwKICAgICAgImNhc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJic3EiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkJyYWluZnVjayI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiWyIsCiAgICAgICJdIiwKICAgICAgIjwiLAogICAgICAiPiIsCiAgICAgICIrIiwKICAgICAgIi0iLAogICAgICAiLiIsCiAgICAgICIsIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYmYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJ1aWxkU3RyZWFtIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYnN0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjIiwKICAgICAgImVjIiwKICAgICAgInBnYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDIEhlYWRlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2giCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIi5jc2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdLAogICAgInNoZWJhbmdzIjogWwogICAgICAiY3NoIiwKICAgICAgInRjc2giCiAgICBdCiAgfSwKICAiQyMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNzIiwKICAgICAgImNzeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAiaWdub3JlRXNjYXBlIjogdHJ1ZSwKICAgICAgICAic3RhcnQiOiAiQFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQysrIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYyIsCiAgICAgICJjcHAiLAogICAgICAiY3h4IiwKICAgICAgImMrKyIsCiAgICAgICJwY2MiLAogICAgICAiaW5vIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkMrKyBIZWFkZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhoIiwKICAgICAgImhwcCIsCiAgICAgICJoeHgiLAogICAgICAiaW5sIiwKICAgICAgImlwcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDTWFrZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY21ha2UiLAogICAgICAiY21ha2VsaXN0cy50eHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ09CT0wiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNvYiIsCiAgICAgICJjYmwiLAogICAgICAiY2NwIiwKICAgICAgImNvYm9sIiwKICAgICAgImNweSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiKiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ29kZVFMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJpbXBsaWVzICIsCiAgICAgICJpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAibm90ICIsCiAgICAgICJpbnN0YW5jZW9mICIsCiAgICAgICJpbiAiLAogICAgICAiZXhpc3RzKCIsCiAgICAgICJmb3JhbGwoICIsCiAgICAgICJhdmcoIiwKICAgICAgImNvbmNhdCgiLAogICAgICAiY291bnQoIiwKICAgICAgIm1heCgiLAogICAgICAibWluKCIsCiAgICAgICJyYW5rKCIsCiAgICAgICJzdHJpY3Rjb25jYXQoIiwKICAgICAgInN0cmljdGNvdW50KCIsCiAgICAgICJzdHJpY3RzdW0oIiwKICAgICAgInN1bSgiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxbCIsCiAgICAgICJxbGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ1NTIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ1NWIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3N2IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYWJhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2FiYWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYXNzaXVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYXNzaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkNleWxvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2V5bG9uIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkNsb2p1cmUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIihmb3IgIiwKICAgICAgIih3aGVuICIsCiAgICAgICIobG9vcCAiLAogICAgICAiKGRvc2VxICIsCiAgICAgICIoY29uZCAiLAogICAgICAiKGlmIiwKICAgICAgIihpZi1ub3QgIiwKICAgICAgIihhbmQgIiwKICAgICAgIihvciAiLAogICAgICAiKG5vdCAiLAogICAgICAiKD0gIiwKICAgICAgIihub3Q9ICIsCiAgICAgICIocmVjdXIgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2xqIiwKICAgICAgImNsamMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb2p1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNsanMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb3N1cmUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIsCiAgICAgICI+PSAiLAogICAgICAiPD0gIiwKICAgICAgIj86ICIsCiAgICAgICI/IDogIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic295IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKioiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkNvZmZlZVNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY29mZmVlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIiMjIyIsCiAgICAgICAgIiMjIyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkNvZ2VudCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY29nZW50IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ29sZEZ1c2lvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2ZtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0tIiwKICAgICAgICAiLS0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkNvbGRGdXNpb24gQ0ZTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNmYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDb3EiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInYiCiAgICBdLAogICAgImtleXdvcmRzIjogWwogICAgICAiUmVxdWlyZSIsCiAgICAgICJIeXBvdGhlc2lzIiwKICAgICAgIkluZHVjdGl2ZSIsCiAgICAgICJSZW1hcmsiLAogICAgICAiTGVtbWEiLAogICAgICAiUHJvb2YiLAogICAgICAiRGVmaW5pdGlvbiIsCiAgICAgICJUaGVvcmVtIiwKICAgICAgIkNsYXNzIiwKICAgICAgIkluc3RhbmNlIiwKICAgICAgIk1vZHVsZSIsCiAgICAgICJDb250ZXh0IiwKICAgICAgIlNlY3Rpb24iLAogICAgICAiTm90YXRpb24iLAogICAgICAiRW5kIiwKICAgICAgIkZpeHBvaW50IiwKICAgICAgIkZyb20gQ29xIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ3Jlb2xlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3Jlb2xlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDcnlzdGFsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiQ3l0aG9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJub3QgIiwKICAgICAgImluICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB5eCIsCiAgICAgICJweGkiLAogICAgICAicHhkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJycnIiwKICAgICAgICAic3RhcnQiOiAiJycnIgogICAgICB9CiAgICBdCiAgfSwKICAiRCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIvKyIsCiAgICAgICAgIisvIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInJkbWQiCiAgICBdCiAgfSwKICAiRGFydCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZGFydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJEZXZpY2UgVHJlZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZHRzIiwKICAgICAgImR0c2kiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRGhhbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkaGFsbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiey0iLAogICAgICAgICItfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJETSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJzd2l0Y2goIiwKICAgICAgIndoaWxlICIsCiAgICAgICJ3aGlsZSgiLAogICAgICAiZWxzZSAiLAogICAgICAifHwiLAogICAgICAiJiYiLAogICAgICAiIT0iLAogICAgICAiPD4iLAogICAgICAiPT0iLAogICAgICAiaW4gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZG0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiRG9ja2VyIGlnbm9yZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIi5kb2NrZXJpZ25vcmUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkRvY2tlcmZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRvY2tlcmZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgImRvY2tlcmZpbGUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkRvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImR0ZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRWxpeGlyIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJleCIsCiAgICAgICJleHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnJyIsCiAgICAgICAgInN0YXJ0IjogIicnJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJFbG0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImNhc2UgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlbG0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRW1hY3MgRGV2IEVudiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZWRlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJFbWFjcyBMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRXJsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlcmwiLAogICAgICAiaHJsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIlIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJlc2NyaXB0IgogICAgXQogIH0sCiAgIkV4cGVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZXhwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJFeHRlbnNpYmxlIFN0eWxlc2hlZXQgTGFuZ3VhZ2UgVHJhbnNmb3JtYXRpb25zIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHNsdCIsCiAgICAgICJ4c2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkYjIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJtYXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZzIiwKICAgICAgImZzaSIsCiAgICAgICJmc3giLAogICAgICAiZnNzY3JpcHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGZW5uZWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIihmb3IiLAogICAgICAiKGVhY2giLAogICAgICAiKGlmIiwKICAgICAgIih3aGVuIiwKICAgICAgIih3aGlsZSIsCiAgICAgICIoc3dpdGNoIiwKICAgICAgIihkbyIsCiAgICAgICIoLi4iLAogICAgICAiKD0iLAogICAgICAiKGFuZCIsCiAgICAgICIob3IiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmbmwiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAic3RhcnQiOiAiXCIiLAogICAgICAgICJlbmQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAic3RhcnQiOiAiLCIsCiAgICAgICAgImVuZCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiRioiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZzdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkZJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZpZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRk9SVFJBTiBMZWdhY3kiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImYiLAogICAgICAiZm9yIiwKICAgICAgImZ0biIsCiAgICAgICJmNzciLAogICAgICAicGZvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJjIiwKICAgICAgIkMiLAogICAgICAiISIsCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJGT1JUUkFOIE1vZGVybiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZjAzIiwKICAgICAgImYwOCIsCiAgICAgICJmOTAiLAogICAgICAiZjk1IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIhIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkZpc2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZpc2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgImZpc2giCiAgICBdCiAgfSwKICAiRmxvdzkiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZXsiLAogICAgICAiZm9yaSAiLAogICAgICAiZm9yaSgiLAogICAgICAic3dpdGNoICIsCiAgICAgICJzd2l0Y2goIiwKICAgICAgImZvbGQgIiwKICAgICAgImZvbGQoIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIsCiAgICAgICJ8PiAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmbG93IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkZvcnRoIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICI0dGgiLAogICAgICAiZm9ydGgiLAogICAgICAiZnIiLAogICAgICAiZnJ0IiwKICAgICAgImZ0aCIsCiAgICAgICJmODMiLAogICAgICAiZmIiLAogICAgICAiZnBtIiwKICAgICAgImU0IiwKICAgICAgInJ4IiwKICAgICAgImZ0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJcXFxcIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIiggIiwKICAgICAgICAiKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkZyYWdtZW50IFNoYWRlciBGaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmc2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRnJlZW1hcmtlciBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiPCNsaXN0ICIsCiAgICAgICI8I2Fzc2lnbiAiLAogICAgICAiPCNpZiAiLAogICAgICAiPCNlbHNlaWYgIiwKICAgICAgIjwjZWxzZT4iLAogICAgICAiPCNlbHNlPiAiLAogICAgICAiPCNzd2l0Y2ggICIsCiAgICAgICI8I2Nhc2UgIiwKICAgICAgIjwjZGVmYXVsdD4iLAogICAgICAiPCNkZWZhdWx0PiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZ0bCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8Iy0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRnV0aGFyayI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYgIiwKICAgICAgImVsc2UgIiwKICAgICAgInRoZW4gIiwKICAgICAgImZvciAiLAogICAgICAibG9vcCAiLAogICAgICAid2hpbGUgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj49ICIsCiAgICAgICI8PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmdXQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGWE1MIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmeG1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiR0RTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdMU0wiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZlcnQiLAogICAgICAidGVzYyIsCiAgICAgICJ0ZXNlIiwKICAgICAgImdlb20iLAogICAgICAiZnJhZyIsCiAgICAgICJjb21wIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdOIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZigiLAogICAgICAiaWYgKCIsCiAgICAgICJlbHNlIGlmKCIsCiAgICAgICJlbHNlIGlmICgiLAogICAgICAiZWxzZSgiLAogICAgICAiZWxzZSAoIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImduIiwKICAgICAgImduaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdhbWUgTWFrZXIgTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInJlcGVhdCAiLAogICAgICAicmVwZWF0KCIsCiAgICAgICJ8fCAiLAogICAgICAib3IgIiwKICAgICAgIiYmICIsCiAgICAgICJhbmQgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJnbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIi8vLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdhbWUgTWFrZXIgUHJvamVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInl5cCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiR2VtZmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgImdlbWZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkdoZXJraW4gU3BlY2lmaWNhdGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZ2l2ZW4iLAogICAgICAid2hlbiIsCiAgICAgICJ0aGVuIiwKICAgICAgImFuZCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZlYXR1cmUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkdvIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJnbyAiLAogICAgICAiZGVmZXIgIiwKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiYCIsCiAgICAgICAgImlnbm9yZUVzY2FwZSI6IHRydWUsCiAgICAgICAgInN0YXJ0IjogImAiCiAgICAgIH0KICAgIF0KICB9LAogICJHbyBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAie3tpZiAiLAogICAgICAie3sgaWYgIiwKICAgICAgInt7ZWxzZSIsCiAgICAgICJ7eyBlbHNlIiwKICAgICAgInt7cmFuZ2UgIiwKICAgICAgInt7IHJhbmdlICIsCiAgICAgICJ7e3dpdGgiLAogICAgICAie3sgd2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRtcGwiLAogICAgICAiZ29odG1sIiwKICAgICAgImdvdHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInt7LyoiLAogICAgICAgICIqL319IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiR3JhZGxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ3JhZGxlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJET1QiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkb3QiLAogICAgICAiZ3YiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkdyb292eSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ3Jvb3Z5IiwKICAgICAgImdydCIsCiAgICAgICJndHBsIiwKICAgICAgImd2eSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJoZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhUTUwiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImh0bWwiLAogICAgICAiaHRtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSEFNTCI6IHsKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGFtbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLSMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhhbWxldCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGFtbGV0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSGFuZGxlYmFycyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGJzIiwKICAgICAgImhhbmRsZWJhcnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkhhcHB5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieSIsCiAgICAgICJseSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSGFza2VsbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJIYXhlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJoeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlkbCIsCiAgICAgICJ3ZWJpZGwiLAogICAgICAid2lkbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJJZHJpcyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaWRyIiwKICAgICAgImxpZHIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiXFxcIlxcXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJJbnRlbCBIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpaGV4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJJc2FiZWxsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGh5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7KiIsCiAgICAgICAgIip9IgogICAgICBdLAogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAi4oC5IiwKICAgICAgICAi4oC6IgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXFw8b3Blbj4iLAogICAgICAgICJcXFxcPGNsb3NlPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnIiwKICAgICAgICAic3RhcnQiOiAiJyciCiAgICAgIH0KICAgIF0KICB9LAogICJKQUkiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImphaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkpTT04iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc29uIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKU09OTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzb25sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKU1giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJKYWRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZiAiLAogICAgICAiZWxzZSBpZiAiLAogICAgICAidW5sZXNzICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImphZGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSmFuZXQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIihpZiAiLAogICAgICAiKGZvciAiLAogICAgICAiKGZvciAiLAogICAgICAiKGNvbmQgIiwKICAgICAgIihzd2l0Y2ggIiwKICAgICAgIih3aGVuICIsCiAgICAgICIod2hpbGUgIiwKICAgICAgIihsb29wICIsCiAgICAgICIoY2FzZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqYW5ldCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IGZhbHNlLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiYGAiLAogICAgICAgICJzdGFydCI6ICJgYCIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJAXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJKYXZhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqYXZhIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkphdmFTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzIiwKICAgICAgIm1qcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJub2RlIgogICAgXQogIH0sCiAgIkphdmFTZXJ2ZXIgUGFnZXMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiSmVua2lucyBCdWlsZGZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqZW5raW5zZmlsZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSmluamEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgInslIGZvciAiLAogICAgICAieyUtIGZvciAiLAogICAgICAieyUgaWYgIiwKICAgICAgInslLSBpZiAiLAogICAgICAieyUgZWxzZSAiLAogICAgICAieyUtIGVsc2UgIiwKICAgICAgInslIGVsaWYgIiwKICAgICAgInslIG1hY3JvICIsCiAgICAgICJ7JS0gbWFjcm8gIiwKICAgICAgInslIGNhbGwgIiwKICAgICAgInslLSBjYWxsICIsCiAgICAgICJ7JSBmaWx0ZXIgIiwKICAgICAgInslLSBmaWx0ZXIgIiwKICAgICAgInslIHNldCAiLAogICAgICAieyUgaW5jbHVkZSAiLAogICAgICAieyUgZnJvbSAiLAogICAgICAieyUgZXh0ZW5kcyAiLAogICAgICAieyUgd2l0aCAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqaW5qYSIsCiAgICAgICJqMiIsCiAgICAgICJqaW5qYTIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyMiLAogICAgICAgICIjfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkp1bGlhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjPSIsCiAgICAgICAgIj0jIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIlxcXCJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSnVsaXVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqdWxpdXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSnVweXRlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlweW5iIiwKICAgICAgImpweW5iIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKdXN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqdXN0ZmlsZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJLb3JuIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJrc2giCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIi5rc2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAia3NoIgogICAgXQogIH0sCiAgIktvdGxpbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAia3QiLAogICAgICAia3RzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTEQgU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsZHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTEVTUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxlc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTEVYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTE9MQ09ERSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiQVdTVU0gVEhYICIsCiAgICAgICJPIE5PRVMgIiwKICAgICAgIlBMWiBPUEVOIEZJTEUgIiwKICAgICAgIklNIElOIFlSICIsCiAgICAgICJPIFJMWT8iLAogICAgICAiTyBSTFk/ICIsCiAgICAgICJXVEY/IiwKICAgICAgIldURj8gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibG9sIiwKICAgICAgImxvbHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIkJUVyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJPQlRXIiwKICAgICAgICAiVExEUiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJMYVRlWCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRleCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTGVhbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibGVhbiIsCiAgICAgICJobGVhbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLy0iLAogICAgICAgICItLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTGljZW5zZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgImxpY2Vuc2UiLAogICAgICAibGljZW5jZSIsCiAgICAgICJjb3B5aW5nIiwKICAgICAgImNvcHlpbmczIiwKICAgICAgInVubGljZW5zZSIsCiAgICAgICJ1bmxpY2VuY2UiLAogICAgICAibGljZW5zZS1taXQiLAogICAgICAibGljZW5jZS1taXQiLAogICAgICAiY29weXJpZ2h0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsaXNwIiwKICAgICAgImxzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJzYmNsIgogICAgXQogIH0sCiAgIkxMVk0gSVIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImxsdm0ubG9vcCIsCiAgICAgICJiciAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJpbmRpcmVjdGJyICIsCiAgICAgICJpbnZva2UgIiwKICAgICAgImNhbGxiciAiLAogICAgICAicmVzdW1lICIsCiAgICAgICJjYXRjaHN3aXRjaCAiLAogICAgICAiY2F0Y2hyZXQgIiwKICAgICAgImNsZWFudXByZXQgIiwKICAgICAgInNobCAiLAogICAgICAibHNociAiLAogICAgICAiYXNociAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiLAogICAgICAieG9yICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogW10KICB9LAogICJMdWEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImx1YSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLS1bWyIsCiAgICAgICAgIl1dIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAibHVhIgogICAgXQogIH0sCiAgIkx1Y2l1cyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibHVjaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkx1bmEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsdW5hIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJNUUwgSGVhZGVyIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtcWgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTVFMNCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXE0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk1RTDUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1xNSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJNU0J1aWxkIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc3Byb2oiLAogICAgICAidmJwcm9qIiwKICAgICAgImZzcHJvaiIsCiAgICAgICJwcm9wcyIsCiAgICAgICJ0YXJnZXRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTVVNUFMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1wcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk1hY3JvbWVkaWEgZVh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJteG1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJNYWRsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtYWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyMiLAogICAgICAgICIjfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1ha2VmaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtYWtlZmlsZSIsCiAgICAgICJtYWsiLAogICAgICAibWsiLAogICAgICAiYnAiCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIm1ha2VmaWxlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJNYWtvIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICIlIGZvciAiLAogICAgICAiJSBpZiAiLAogICAgICAiJSBlbHNlICIsCiAgICAgICIlIGVsaWYgIiwKICAgICAgIjwlIGluY2x1ZGUgIiwKICAgICAgIjwlZGVmICIsCiAgICAgICI8JXBhZ2UgIiwKICAgICAgIjwlZGVmICIsCiAgICAgICI8JWJsb2NrICIsCiAgICAgICI8JW5hbWVzcGFjZSAiLAogICAgICAiPCVpbmhlcml0ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1ha28iLAogICAgICAibWFvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8JWRvYz4iLAogICAgICAgICI8LyVkb2M+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWFya2Rvd24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtZCIsCiAgICAgICJtYXJrZG93biIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWVzb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvcmVhY2ggIiwKICAgICAgImlmICIsCiAgICAgICJlbGlmICIsCiAgICAgICJ1bmxlc3MgIiwKICAgICAgImFuZCAiLAogICAgICAib3IgIiwKICAgICAgImVsc2UgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibWVzb24uYnVpbGQiLAogICAgICAibWVzb25fb3B0aW9ucy50eHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnJyIsCiAgICAgICAgInN0YXJ0IjogIicnJyIKICAgICAgfQogICAgXQogIH0sCiAgIk1vZHVsYTMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm0zIiwKICAgICAgIm1nIiwKICAgICAgImlnIiwKICAgICAgImkzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTW9kdWxlLURlZmluaXRpb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRlZiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTW9ua2V5IEMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1jIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk11c3RhY2hlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtdXN0YWNoZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIk5pbSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibmltIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIlxcXCJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTml4IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJuaXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiT0NhbWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1sIiwKICAgICAgIm1saSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk9iamVjdGl2ZSBDIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk9iamVjdGl2ZSBDKysiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1tIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk9wYWxhbmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm9wYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJPcmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm9yZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyAiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk96IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJveiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlBIUCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGhwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIiwKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJwaHAiLAogICAgICAicGhwNSIKICAgIF0KICB9LAogICJQS0dCVUlMRCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBrZ2J1aWxkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQTC9TUUwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImFuZCAiLAogICAgICAiYW5kKCIsCiAgICAgICJlbHNlICIsCiAgICAgICJlbHNlKCIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgImVsc2VpZigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJsb29wICIsCiAgICAgICJub3QgIiwKICAgICAgIm5vdCgiLAogICAgICAib3IgIiwKICAgICAgIm9yKCIsCiAgICAgICI8PiAiLAogICAgICAiPD4oIiwKICAgICAgIj0gIiwKICAgICAgIj0oIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZm5jIiwKICAgICAgInBrYiIsCiAgICAgICJwa3MiLAogICAgICAicHJjIiwKICAgICAgInRyZyIsCiAgICAgICJ2dyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiUFNMIEFzc2VydGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlBhc2NhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGFzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7IiwKICAgICAgICAifSIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJQYXRjaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBhdGNoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQZXJsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwbCIsCiAgICAgICJwbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9cG9kIiwKICAgICAgICAiPWN1dCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInBlcmwiLAogICAgICAicGVybDUiLAogICAgICAicGVybDYiCiAgICBdCiAgfSwKICAiUGxhaW4gVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRleHQiLAogICAgICAidHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQb2xseSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicG9sbHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJQb255IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJtYXRjaCAiLAogICAgICAicmVwZWF0IiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBvbnkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiXFxcIlxcXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJQb3dlcnNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ3aGlsZSAiLAogICAgICAid2hpbGUoIiwKICAgICAgInVudGlsICIsCiAgICAgICJ1bnRpbCgiLAogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImZvcmVhY2ggIiwKICAgICAgImZvcmVhY2goIiwKICAgICAgImlmICIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgImVsc2UgIiwKICAgICAgInN3aXRjaCIsCiAgICAgICJzd2l0Y2goIiwKICAgICAgIi1ndCIsCiAgICAgICItbHQiLAogICAgICAiLWVxIiwKICAgICAgIi1uZSIsCiAgICAgICItZ2UiLAogICAgICAiLWxlIiwKICAgICAgIi1pbiIsCiAgICAgICItbm90aW4iLAogICAgICAiLWNvbnRhaW5zIiwKICAgICAgIi1ub3Rjb250YWlucyIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBzMSIsCiAgICAgICJwc20xIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwjIiwKICAgICAgICAiIz4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUHJvY2Vzc2luZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGRlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlByb2xvZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicCIsCiAgICAgICJwcm8iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJQcm9wZXJ0aWVzIEZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwcm9wZXJ0aWVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQcm90b2NvbCBCdWZmZXJzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwcm90byIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlB1cHBldCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPWJlZ2luIiwKICAgICAgICAiPWVuZCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlB1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB1cnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQeXRob24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJ3aGlsZSAiLAogICAgICAid2hpbGUoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxpZiAiLAogICAgICAiZWxpZigiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZToiLAogICAgICAibWF0Y2ggIiwKICAgICAgIm1hdGNoKCIsCiAgICAgICJ0cnkgIiwKICAgICAgInRyeToiLAogICAgICAiZXhjZXB0ICIsCiAgICAgICJleGNlcHQoIiwKICAgICAgImZpbmFsbHkgIiwKICAgICAgImZpbmFsbHk6IiwKICAgICAgIndpdGggIiwKICAgICAgIndpdGggKCIsCiAgICAgICJhbmQgIiwKICAgICAgImFuZCgiLAogICAgICAib3IgIiwKICAgICAgIm9yKCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJkb2NTdHJpbmciOiB0cnVlLAogICAgICAgICJlbmQiOiAiXCJcIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCJcIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRvY1N0cmluZyI6IHRydWUsCiAgICAgICAgImVuZCI6ICInJyciLAogICAgICAgICJzdGFydCI6ICInJyciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJweXRob24iLAogICAgICAicHl0aG9uMiIsCiAgICAgICJweXRob24zIgogICAgXQogIH0sCiAgIlEjIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAicmVwZWF0ICIsCiAgICAgICJyZXBlYXR7IiwKICAgICAgInVudGlsICgiLAogICAgICAidW50aWwoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxpZiAiLAogICAgICAiZWxpZnsiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZXsiLAogICAgICAifHx8ICIsCiAgICAgICImJiYgIiwKICAgICAgIjw8PCIsCiAgICAgICI+Pj4iLAogICAgICAiXl5eIiwKICAgICAgIn5+fiIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUUNMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxY2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmFrZWZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgInJha2UiLAogICAgICAicmFrZWZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPWJlZ2luIiwKICAgICAgICAiPWVuZCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlJhem9yIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2h0bWwiLAogICAgICAicmF6b3IiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJAKiIsCiAgICAgICAgIipAIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVTdHJ1Y3R1cmVkVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJzdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVwb3J0IERlZmluaXRpb24gTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJSb2JvdCBGcmFtZXdvcmsiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyb2JvdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUnVieSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPWJlZ2luIiwKICAgICAgICAiPWVuZCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInJ1YnkiCiAgICBdCiAgfSwKICAiUnVieSBIVE1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyaHRtbCIsCiAgICAgICJlcmIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJSdXN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJycyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlNBUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZG8iLAogICAgICAiJWRvIiwKICAgICAgImlmIiwKICAgICAgIiVpZiIsCiAgICAgICJlbHNlIiwKICAgICAgIiVlbHNlIiwKICAgICAgImNhc2UiLAogICAgICAib3IiLAogICAgICAiYW5kIiwKICAgICAgIl49IiwKICAgICAgIsKsPSIsCiAgICAgICJ+PSIsCiAgICAgICJuZSIsCiAgICAgICJlcSIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNhcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiKiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJTS0lMTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTUERYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3BkeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiU1FMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzcWwiLAogICAgICAiZG1sIiwKICAgICAgImRkbCIsCiAgICAgICJkcWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlNSZWNvZGUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOzsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNWRyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3ZnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU2FzcyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2FzcyIsCiAgICAgICJzY3NzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlNjYWxhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzYyIsCiAgICAgICJzY2FsYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTY2hlbWUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNjbSIsCiAgICAgICJzcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10sCiAgICAic2hlYmFuZ3MiOiBbXQogIH0sCiAgIlJhY2tldCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiKGlmIiwKICAgICAgIihjb25kIiwKICAgICAgIltlbHNlIiwKICAgICAgIihhbmQiLAogICAgICAiKG9yIiwKICAgICAgIihmb3IiLAogICAgICAiIzp3aGVuIiwKICAgICAgIiM6dW5sZXNzIiwKICAgICAgIiM6YnJlYWsiLAogICAgICAiIzpmaW5hbCIsCiAgICAgICIoZG8iLAogICAgICAiKHdoZW4iLAogICAgICAiKHVubGVzcyIsCiAgICAgICIoc2hhcmVkIiwKICAgICAgIihjYXNlIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmt0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInwjIiwKICAgICAgICAiI3wiCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJyYWNrZXQiCiAgICBdCiAgfSwKICAiU2NvbnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNzaWciLAogICAgICAic2NvbnN0cnVjdCIsCiAgICAgICJzY29uc2NyaXB0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJycnIiwKICAgICAgICAic3RhcnQiOiAiJycnIgogICAgICB9CiAgICBdCiAgfSwKICAiU2hlbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNoIgogICAgXSwKICAgICJmaWxlbmFtZXMiOiBbCiAgICAgICIudGNzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJzaCIKICAgIF0KICB9LAogICJOdXNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImRvIHsgIiwKICAgICAgImVhY2ggeyIsCiAgICAgICJpZiAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibnUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAibnUiCiAgICBdCiAgfSwKICAiU21hcnR5IFRlbXBsYXRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiaW5jbHVkZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0cGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyoiLAogICAgICAgICIqfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNvZnRicmlkZ2UgQmFzaWMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2JsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlNvbGlkaXR5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiYXNzZW1ibHkgIiwKICAgICAgImFzc2VtYmx5eyIsCiAgICAgICJ1bmNoZWNrZWQgIiwKICAgICAgInVuY2hlY2tlZHsiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzb2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3BlY21hbiBlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICInPiIsCiAgICAgICAgIjwnIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiU3BpY2UgTmV0bGlzdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2t0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJTdGFuZGFyZCBNTCAoU01MKSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic21sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3RhdGEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvcmVhY2giLAogICAgICAiZm9ydmFsdWVzIiwKICAgICAgImlmIiwKICAgICAgImVsc2UiLAogICAgICAid2hpbGUiLAogICAgICAic3dpdGNoIiwKICAgICAgInwiLAogICAgICAiJiIsCiAgICAgICIhPSIsCiAgICAgICI9PSIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRvIiwKICAgICAgImFkbyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iLAogICAgICAiKiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXCInIiwKICAgICAgICAic3RhcnQiOiAiYFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3R5bHVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJ1bmxlc3MgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInN0eWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3ZlbHRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzdmVsdGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTd2lmdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3dpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTd2lnIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlN5c3RlbVZlcmlsb2ciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgIiYgIiwKICAgICAgIiE9ICIsCiAgICAgICIhPT0gIiwKICAgICAgIj09ICIsCiAgICAgICJmb3JlYWNoICIsCiAgICAgICJmb3JlYWNoKCIsCiAgICAgICJjYXNlICIsCiAgICAgICJjYXNlKCIsCiAgICAgICJjYXNleCAiLAogICAgICAiY2FzZXgoIiwKICAgICAgImNhc2V6ICIsCiAgICAgICJjYXNleigiLAogICAgICAiY2FzZXh6ICIsCiAgICAgICJjYXNleHooIiwKICAgICAgImZvcmsgIiwKICAgICAgIiA/ICIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIsCiAgICAgICJldmVudCAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzdiIsCiAgICAgICJzdmgiCiAgICBdLAogICAgImtleXdvcmRzIjogWwogICAgICAiZW5kbW9kdWxlIiwKICAgICAgInBvc2VkZ2UiLAogICAgICAiZWRnZSIsCiAgICAgICJhbHdheXMiLAogICAgICAid2lyZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTeXN0ZW1kIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXV0b21vdW50IiwKICAgICAgImRldmljZSIsCiAgICAgICJsaW5rIiwKICAgICAgIm1vdW50IiwKICAgICAgInBhdGgiLAogICAgICAic2NvcGUiLAogICAgICAic2VydmljZSIsCiAgICAgICJzbGljZSIsCiAgICAgICJzb2NrZXQiLAogICAgICAic3dhcCIsCiAgICAgICJ0YXJnZXQiLAogICAgICAidGltZXIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlRDTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJ0Y2wiCiAgICBdCiAgfSwKICAiVE9NTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidG9tbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiXFxcIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnJyIsCiAgICAgICAgInN0YXJ0IjogIicnJyIKICAgICAgfQogICAgXQogIH0sCiAgIlRhc2tQYXBlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRhc2twYXBlciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVGVhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAibG9vcDoiLAogICAgICAicmV0c3ViIiwKICAgICAgImNhbGxzdWIgIiwKICAgICAgIiYmIiwKICAgICAgIj09IiwKICAgICAgInx8IiwKICAgICAgIjw9IiwKICAgICAgIj49IgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGVhbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlRlcnJhZm9ybSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiY291bnQiLAogICAgICAiZm9yIiwKICAgICAgImZvcl9lYWNoIiwKICAgICAgImlmIiwKICAgICAgIjogIiwKICAgICAgIj8gIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj4gIiwKICAgICAgIj49ICIsCiAgICAgICI8ICIsCiAgICAgICI8PSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGYiLAogICAgICAidGYuanNvbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVGVYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiLAogICAgICAic3R5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIlIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJUaHJpZnQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0aHJpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiVHdpZyBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAieyUgZm9yICIsCiAgICAgICJ7JSBpZiAiLAogICAgICAieyUgZWxzZSAiLAogICAgICAieyUgZWxzZWlmICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInR3aWciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlR5cGVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrIiwKICAgICAgIj8iLAogICAgICAiOiIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRzIiwKICAgICAgInRzeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJUeXBlU2NyaXB0IFR5cGluZ3MiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrIiwKICAgICAgIj8iLAogICAgICAiOiIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImQudHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlRMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIi8vLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVW5yZWFsIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidWMiLAogICAgICAidWNpIiwKICAgICAgInVwa2ciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVXIvV2ViIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ1ciIsCiAgICAgICJ1cnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJVci9XZWIgUHJvamVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidXJwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJWIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2IgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImJyZWFrIiwKICAgICAgImNvbnN0ICIsCiAgICAgICJjb250aW51ZSIsCiAgICAgICJkZWZlciIsCiAgICAgICJlbHNlICIsCiAgICAgICJlbnVtIiwKICAgICAgImZuICIsCiAgICAgICJnb3RvIiwKICAgICAgImltcG9ydCAiLAogICAgICAiaW4gIiwKICAgICAgImludGVyZmFjZSIsCiAgICAgICJtYXRjaCIsCiAgICAgICJtdXQiLAogICAgICAicHJpbnRsbiIsCiAgICAgICJwdWIiLAogICAgICAicmV0dXJuIiwKICAgICAgInN0cnVjdCAiLAogICAgICAidHlwZSAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJgIiwKICAgICAgICAic3RhcnQiOiAiYCIKICAgICAgfQogICAgXQogIH0sCiAgIlZIREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZoZCIsCiAgICAgICJ2aGRsIgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImFicyIsCiAgICAgICJhY2Nlc3MiLAogICAgICAiYWZ0ZXIiLAogICAgICAiYWxpYXMiLAogICAgICAiYWxsIiwKICAgICAgImFuZCIsCiAgICAgICJhcmNoaXRlY3R1cmUiLAogICAgICAiYXJyYXkiLAogICAgICAiYXNzZXJ0IiwKICAgICAgImF0dHJpYnV0ZSIsCiAgICAgICJiZWdpbiIsCiAgICAgICJibG9jayIsCiAgICAgICJib2R5IiwKICAgICAgImJ1ZmZlciIsCiAgICAgICJidXMiLAogICAgICAiY2FzZSIsCiAgICAgICJjb21wb25lbnQiLAogICAgICAiY29uZmlndXJhdGlvbiIsCiAgICAgICJjb25zdGFudCIsCiAgICAgICJkaXNjb25uZWN0IiwKICAgICAgImRvd250byIsCiAgICAgICJlbHNlIiwKICAgICAgImVsc2lmIiwKICAgICAgImVuZCIsCiAgICAgICJlbnRpdHkiLAogICAgICAiZXhpdCIsCiAgICAgICJmaWxlIiwKICAgICAgImZvciIsCiAgICAgICJmdW5jdGlvbiIsCiAgICAgICJnZW5lcmF0ZSIsCiAgICAgICJnZW5lcmljIiwKICAgICAgImdyb3VwIiwKICAgICAgImd1YXJkZWQiLAogICAgICAiaWYiLAogICAgICAiaW1wdXJlIiwKICAgICAgImluIiwKICAgICAgImluZXJ0aWFsIiwKICAgICAgImlub3V0IiwKICAgICAgImlzIiwKICAgICAgImxhYmVsIiwKICAgICAgImxpYnJhcnkiLAogICAgICAibGlua2FnZSIsCiAgICAgICJsaXRlcmFsIiwKICAgICAgImxvb3AiLAogICAgICAibWFwIiwKICAgICAgIm1vZCIsCiAgICAgICJuYW5kIiwKICAgICAgIm5ldyIsCiAgICAgICJuZXh0IiwKICAgICAgIm5vciIsCiAgICAgICJub3QiLAogICAgICAibnVsbCIsCiAgICAgICJvZiIsCiAgICAgICJvbiIsCiAgICAgICJvcGVuIiwKICAgICAgIm9yIiwKICAgICAgIm90aGVycyIsCiAgICAgICJvdXQiLAogICAgICAicGFja2FnZSIsCiAgICAgICJwb3J0IiwKICAgICAgInBvc3Rwb25lZCIsCiAgICAgICJwcm9jZWR1cmUiLAogICAgICAicHJvY2VzcyIsCiAgICAgICJwdXJlIiwKICAgICAgInJhbmdlIiwKICAgICAgInJlY29yZCIsCiAgICAgICJyZWdpc3RlciIsCiAgICAgICJyZWplY3QiLAogICAgICAicmVtIiwKICAgICAgInJlcG9ydCIsCiAgICAgICJyZXR1cm4iLAogICAgICAicm9sIiwKICAgICAgInJvciIsCiAgICAgICJzZWxlY3QiLAogICAgICAic2V2ZXJpdHkiLAogICAgICAic2hhcmVkIiwKICAgICAgInNpZ25hbCIsCiAgICAgICJzbGEiLAogICAgICAic2xsIiwKICAgICAgInNyYSIsCiAgICAgICJzcmwiLAogICAgICAic3VidHlwZSIsCiAgICAgICJ0aGVuIiwKICAgICAgInRvIiwKICAgICAgInRyYW5zcG9ydCIsCiAgICAgICJ0eXBlIiwKICAgICAgInVuYWZmZWN0ZWQiLAogICAgICAidW5pdHMiLAogICAgICAidW50aWwiLAogICAgICAidXNlIiwKICAgICAgInZhcmlhYmxlIiwKICAgICAgIndhaXQiLAogICAgICAid2hlbiIsCiAgICAgICJ3aGlsZSIsCiAgICAgICJ3aXRoIiwKICAgICAgInhub3IiLAogICAgICAieG9yIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVmFsYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmFsYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJWYXJuaXNoIENvbmZpZ3VyYXRpb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2Y2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlZlcmlsb2ciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZnIiwKICAgICAgInZoIiwKICAgICAgInYiCiAgICBdLAogICAgImtleXdvcmRzIjogWwogICAgICAibW9kdWxlIiwKICAgICAgImVuZG1vZHVsZSIsCiAgICAgICJ0aW1lc2NhbGUiLAogICAgICAiaW5wdXQiLAogICAgICAib3V0cHV0IiwKICAgICAgInJlZyIsCiAgICAgICJ3aXJlIiwKICAgICAgInBvc2VkZ2UiLAogICAgICAibmVnZWRnZSIsCiAgICAgICJhbHdheXMiLAogICAgICAiYmVnaW4iLAogICAgICAic3dpdGNoIiwKICAgICAgImNhc2UiLAogICAgICAiZW5kIiwKICAgICAgImVuZGNhc2UiLAogICAgICAiZWxzZSIsCiAgICAgICJsb2NhbHBhcmFtIiwKICAgICAgImluaXRpYWwiLAogICAgICAic2lnbmVkIiwKICAgICAgImFzc2lnbiIsCiAgICAgICJnZW5lcmF0ZSIsCiAgICAgICJnZW52YXIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVmVyaWxvZyBBcmdzIEZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpcnVuYXJncyIsCiAgICAgICJ4cnVuYXJncyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVmVydGV4IFNoYWRlciBGaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2c2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVmltIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmltIiwKICAgICAgInZpbXJjIiwKICAgICAgImd2aW1yYyIKICAgIF0sCiAgICAiZmlsZW5hbWVzIjogWwogICAgICAiX3ZpbXJjIiwKICAgICAgIi52aW1yYyIsCiAgICAgICJfZ3ZpbXJjIiwKICAgICAgIi5ndmltcmMiLAogICAgICAidmltcmMiLAogICAgICAiZ3ZpbXJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJcIiIsCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJWaXN1YWwgQmFzaWMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiciCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVmlzdWFsIEJhc2ljIGZvciBBcHBsaWNhdGlvbnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2xzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlZ1ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidnVlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiV2ViIFNlcnZpY2VzIERlc2NyaXB0aW9uIExhbmd1YWdlIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ3c2RsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiV29sZnJhbSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibmIiLAogICAgICAid2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJXcmVuIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ3cmVuIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiWEFNTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieGFtbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlhjb2RlIENvbmZpZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInhjY29uZmlnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiWE1MIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJYTUwgU2NoZW1hIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHNkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJYdGVuZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHRlbmQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiWWFybiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiPDxpZiAiLAogICAgICAiPDxlbHNlaWYgIiwKICAgICAgIjw8ZWxzZSAiLAogICAgICAiIGVxICIsCiAgICAgICIgPT0gIiwKICAgICAgIiBuZXEgIiwKICAgICAgIiAhICIsCiAgICAgICIgZ3QgIiwKICAgICAgIiA+ICIsCiAgICAgICIgbHQgIiwKICAgICAgIiA8ICIsCiAgICAgICIgbHRlICIsCiAgICAgICIgPD0gIiwKICAgICAgIiBndGUgIiwKICAgICAgIiA+PSAiLAogICAgICAiIHhvciAiLAogICAgICAiIF4gIiwKICAgICAgIiBhbmQgIiwKICAgICAgIiAmJiAiLAogICAgICAiIHx8ICIsCiAgICAgICIgb3IgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFybiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJZQU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFtbCIsCiAgICAgICJ5bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb3VkRm9ybWF0aW9uIChZQU1MKSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiIUdldEF0dCIsCiAgICAgICIhU3ViIiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRGVwZW5kc09uOiIsCiAgICAgICIhU2VsZWN0IiwKICAgICAgIiFFcXVhbHMiLAogICAgICAiIUlmIiwKICAgICAgIkZuOjpJZiIsCiAgICAgICJGbjo6QW5kIiwKICAgICAgIkZuOjpFcXVhbHMiLAogICAgICAiRm46Ok5vdCIsCiAgICAgICJGbjo6T3IiLAogICAgICAiRm46OkJhc2U2NCIsCiAgICAgICJGbjo6Q2lkciIsCiAgICAgICJGbjo6RmluZEluTWFwIiwKICAgICAgIkZuOjpHZXRBdHQiLAogICAgICAiRm46OkdldEFacyIsCiAgICAgICJGbjo6SW1wb3J0VmFsdWUiLAogICAgICAiRm46OkpvaW4iLAogICAgICAiRm46OlNlbGVjdCIsCiAgICAgICJGbjo6U3BsaXQiLAogICAgICAiRm46OlN1YiIsCiAgICAgICJGbjo6VHJhbnNmb3JtIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFtbCIsCiAgICAgICJ5bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgIlJlc291cmNlczoiLAogICAgICAiQVdTVGVtcGxhdGVGb3JtYXRWZXJzaW9uOiIsCiAgICAgICJEZXNjcmlwdGlvbjoiLAogICAgICAiQVdTOjoiLAogICAgICAiUHJvcGVydGllczoiLAogICAgICAiTmFtZToiLAogICAgICAiVHlwZToiLAogICAgICAiIUdldEF0dCIsCiAgICAgICIhU3ViIiwKICAgICAgIlN0YXRlbWVudDoiLAogICAgICAiUmVmOiIsCiAgICAgICJEZXBlbmRzT246IiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRm46OklmIiwKICAgICAgIkZuOjpBbmQiLAogICAgICAiRm46OkVxdWFscyIsCiAgICAgICJGbjo6Tm90IiwKICAgICAgIkZuOjpPciIsCiAgICAgICJGbjo6QmFzZTY0IiwKICAgICAgIkZuOjpDaWRyIiwKICAgICAgIkZuOjpGaW5kSW5NYXAiLAogICAgICAiRm46OkdldEF0dCIsCiAgICAgICJGbjo6R2V0QVpzIiwKICAgICAgIkZuOjpJbXBvcnRWYWx1ZSIsCiAgICAgICJGbjo6Sm9pbiIsCiAgICAgICJGbjo6U2VsZWN0IiwKICAgICAgIkZuOjpTcGxpdCIsCiAgICAgICJGbjo6U3ViIiwKICAgICAgIkZuOjpUcmFuc2Zvcm0iCiAgICBdCiAgfSwKICAiQ2xvdWRGb3JtYXRpb24gKEpTT04pIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICIhR2V0QXR0IiwKICAgICAgIiFTdWIiLAogICAgICAiIVNlbGVjdCIsCiAgICAgICIhRXF1YWxzIiwKICAgICAgIiFJZiIsCiAgICAgICJEZXBlbmRzT246IiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRm46OklmIiwKICAgICAgIkZuOjpBbmQiLAogICAgICAiRm46OkVxdWFscyIsCiAgICAgICJGbjo6Tm90IiwKICAgICAgIkZuOjpPciIsCiAgICAgICJGbjo6QmFzZTY0IiwKICAgICAgIkZuOjpDaWRyIiwKICAgICAgIkZuOjpGaW5kSW5NYXAiLAogICAgICAiRm46OkdldEF0dCIsCiAgICAgICJGbjo6R2V0QVpzIiwKICAgICAgIkZuOjpJbXBvcnRWYWx1ZSIsCiAgICAgICJGbjo6Sm9pbiIsCiAgICAgICJGbjo6U2VsZWN0IiwKICAgICAgIkZuOjpTcGxpdCIsCiAgICAgICJGbjo6U3ViIiwKICAgICAgIkZuOjpUcmFuc2Zvcm0iCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc29uIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10sCiAgICAia2V5d29yZHMiOiBbCiAgICAgICJcIkFXU1RlbXBsYXRlRm9ybWF0VmVyc2lvblwiIiwKICAgICAgIkFXUzo6IiwKICAgICAgIiFHZXRBdHQiLAogICAgICAiIVN1YiIsCiAgICAgICJcIkRlcGVuZHNPblwiIiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRm46OklmIiwKICAgICAgIkZuOjpBbmQiLAogICAgICAiRm46OkVxdWFscyIsCiAgICAgICJGbjo6Tm90IiwKICAgICAgIkZuOjpPciIsCiAgICAgICJGbjo6QmFzZTY0IiwKICAgICAgIkZuOjpDaWRyIiwKICAgICAgIkZuOjpGaW5kSW5NYXAiLAogICAgICAiRm46OkdldEF0dCIsCiAgICAgICJGbjo6R2V0QVpzIiwKICAgICAgIkZuOjpJbXBvcnRWYWx1ZSIsCiAgICAgICJGbjo6Sm9pbiIsCiAgICAgICJGbjo6U2VsZWN0IiwKICAgICAgIkZuOjpTcGxpdCIsCiAgICAgICJGbjo6U3ViIiwKICAgICAgIkZuOjpUcmFuc2Zvcm0iCiAgICBdCiAgfSwKICAiWmlnIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ3aGlsZSAiLAogICAgICAiZm9yICIsCiAgICAgICJpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAiZGVmZXIgIiwKICAgICAgInN3aXRjaCIsCiAgICAgICJ8fCIsCiAgICAgICImJiIsCiAgICAgICIhPSIsCiAgICAgICI9PSIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInppZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxuIiwKICAgICAgICAic3RhcnQiOiAiXFxcXCIKICAgICAgfQogICAgXQogIH0sCiAgIlpzaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAienNoIiwKICAgICAgInpzaGVudiIsCiAgICAgICJ6bG9naW4iLAogICAgICAiemxvZ291dCIsCiAgICAgICJ6cHJvZmlsZSIsCiAgICAgICJ6c2hyYyIKICAgIF0sCiAgICAiZmlsZW5hbWVzIjogWwogICAgICAiLnpzaGVudiIsCiAgICAgICIuemxvZ2luIiwKICAgICAgIi56bG9nb3V0IiwKICAgICAgIi56cHJvZmlsZSIsCiAgICAgICIuenNocmMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInpzaCIKICAgIF0KICB9LAogICJnaXRpZ25vcmUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbXSwKICAgICJmaWxlbmFtZXMiOiBbCiAgICAgICIuZ2l0aWdub3JlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJpZ25vcmUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbXSwKICAgICJmaWxlbmFtZXMiOiBbCiAgICAgICIuaWdub3JlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJtNCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm00IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJudXNwZWMiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm51c3BlYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgInNlZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiLAogICAgICAibm90ICIsCiAgICAgICJpbiAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzZWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInNlZCIKICAgIF0KICB9LAogICJTaWV2ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYiLAogICAgICAiaWYgIiwKICAgICAgImVsc2lmIiwKICAgICAgImVsc2lmICIsCiAgICAgICJhbGxvZiIsCiAgICAgICJhbGxvZiAiLAogICAgICAiYW55b2YiLAogICAgICAiYW55b2YgIiwKICAgICAgImFsbG9mKCIsCiAgICAgICJhbnlvZigiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzaWV2ZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlJlYXNvbk1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyZSIsCiAgICAgICJyZWkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfQp9Cg==` + languages = `ewogICJBQkFQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhYmFwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIiwKICAgICAgIlxcXCIiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFQTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiOkZvciAiLAogICAgICAiOklmICIsCiAgICAgICI6Q2FzZSAiLAogICAgICAiOkNhc2VMaXN0ICIsCiAgICAgICI6V2hpbGUgIiwKICAgICAgIjpSZXBlYXQgIiwKICAgICAgIjpFbHNlICIsCiAgICAgICLiiKgiLAogICAgICAi4oinIiwKICAgICAgIuKJoCIsCiAgICAgICJ+IiwKICAgICAgIsKoIiwKICAgICAgIj0iCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhcGwiLAogICAgICAiYXBsZiIsCiAgICAgICJhcGxuIiwKICAgICAgImFwbGMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIuKNnSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJBcHBsZVNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiY29uc2lkZXJpbmcgIiwKICAgICAgImlnbm9yaW5nICIsCiAgICAgICJyZXBlYXQgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZSBpZiAiLAogICAgICAidHJ5ICIsCiAgICAgICJvbiBlcnJvciAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhcHBsZXNjcmlwdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFtdCiAgfSwKICAiQVNQIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhc2EiLAogICAgICAiYXNwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIiwKICAgICAgIlJFTSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQVNQLk5FVCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXNheCIsCiAgICAgICJhc2N4IiwKICAgICAgImFzbXgiLAogICAgICAiYXNweCIsCiAgICAgICJtYXN0ZXIiLAogICAgICAic2l0ZW1hcCIsCiAgICAgICJ3ZWJpbmZvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiPCUtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFUUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICIgdGhlbiAiLAogICAgICAiIGVsc2UgIiwKICAgICAgImNhc2UrICIsCiAgICAgICJpZmNhc2UiLAogICAgICAibGV0ICIsCiAgICAgICJhbmQgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZGF0cyIsCiAgICAgICJzYXRzIiwKICAgICAgImF0cyIsCiAgICAgICJoYXRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdLAogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLy8vLyIsCiAgICAgICAgIlRISVNTSE9VTERORVZFUkFQUEVBUldFSE9QRSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJBV0siOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhd2siCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJhd2siLAogICAgICAiZ2F3ayIsCiAgICAgICJtYXdrIgogICAgXQogIH0sCiAgIkFjdGlvblNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQWRhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhZGEiLAogICAgICAiYWRiIiwKICAgICAgImFkcyIsCiAgICAgICJwYWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBZ2RhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJhZ2RhIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7LSIsCiAgICAgICAgIi19IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQWxjaGVtaXN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICIrIiwKICAgICAgIi0+IiwKICAgICAgIiEiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjcm4iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFsZXgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBbGxveSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaW1wbGllcyAiLAogICAgICAiZWxzZSAiLAogICAgICAiZm9yICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiPD0gIiwKICAgICAgIj49ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFscyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iLAogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFuZHJvaWQgSW50ZXJmYWNlIERlZmluaXRpb24gTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFpZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qKiIsCiAgICAgICAgIiovIgogICAgICBdLAogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQXJ2byI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImF2ZGwiLAogICAgICAiYXZwciIsCiAgICAgICJhdnNjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBc2NpaURvYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImFkb2MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkFzc2VtYmx5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzIiwKICAgICAgImFzbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiQXV0b0hvdEtleSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYWhrIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJBdXRvY29uZiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaW4iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiZG5sIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJiYWl0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJlbHNlICIsCiAgICAgICIgb3IgIiwKICAgICAgIiBhbmQgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYWl0IgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImFuZCIsCiAgICAgICJicmVhayIsCiAgICAgICJjb25zdCAiLAogICAgICAiY29udGludWUiLAogICAgICAiZWxzZSAiLAogICAgICAiZnVuICIsCiAgICAgICJpbXBvcnQgIiwKICAgICAgIm5vdCAiLAogICAgICAib3IgIiwKICAgICAgInBhY2thZ2UgIiwKICAgICAgInJldHVybiIsCiAgICAgICJzdHJ1Y3QgIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiYCIsCiAgICAgICAgInN0YXJ0IjogImAiCiAgICAgIH0KICAgIF0KICB9LAogICJCQVNIIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYXNoIiwKICAgICAgImJhc2hfbG9naW4iLAogICAgICAiYmFzaF9sb2dvdXQiLAogICAgICAiYmFzaF9wcm9maWxlIiwKICAgICAgImJhc2hyYyIKICAgIF0sCiAgICAiZmlsZW5hbWVzIjogWwogICAgICAiLmJhc2hfbG9naW4iLAogICAgICAiLmJhc2hfbG9nb3V0IiwKICAgICAgIi5iYXNoX3Byb2ZpbGUiLAogICAgICAiLmJhc2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAiYmFzaCIKICAgIF0KICB9LAogICJCYXNpYyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZWlmICIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiYXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiciCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQmF0Y2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJhdCIsCiAgICAgICJidG0iLAogICAgICAiY21kIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJSRU0iLAogICAgICAiOjoiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJhemVsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJiemwiLAogICAgICAiYnVpbGQuYmF6ZWwiLAogICAgICAiYnVpbGQiLAogICAgICAid29ya3NwYWNlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQml0YmFrZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYmIiLAogICAgICAiYmJhcHBlbmQiLAogICAgICAiYmJjbGFzcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkJpdGJ1Y2tldCBQaXBlbGluZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImJpdGJ1Y2tldC1waXBlbGluZXMueW1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJCbGFkZSB0ZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiQGZvciAiLAogICAgICAiQGZvcigiLAogICAgICAiQGZvcmVhY2ggIiwKICAgICAgIkBmb3JlYWNoKCIsCiAgICAgICJAZm9yZWxzZSAiLAogICAgICAiQGZvcmVsc2UoIiwKICAgICAgIkBlYWNoICIsCiAgICAgICJAZWFjaCAoIiwKICAgICAgIkB3aGlsZSAiLAogICAgICAiQHdoaWxlKCIsCiAgICAgICJAaWYgIiwKICAgICAgIkBpZigiLAogICAgICAiQHVubGVzcyAiLAogICAgICAiQHVubGVzcygiLAogICAgICAiQGlzc2V0ICIsCiAgICAgICJAaXNzZXQoIiwKICAgICAgIkBlbXB0eSAiLAogICAgICAiQGVtcHR5KCIsCiAgICAgICJAZWxzZSAiLAogICAgICAiQGVsc2VpZiAiLAogICAgICAiQGVsc2VpZigiLAogICAgICAiQHdoaWxlICIsCiAgICAgICJAd2hpbGUoIiwKICAgICAgIkBzd2l0Y2ggIiwKICAgICAgIkBzd2l0Y2ggKCIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJibGFkZS5waHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAie3stLSIsCiAgICAgICAgIi0tfX0iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJvbyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJpZiAiLAogICAgICAiZWxpZiAiLAogICAgICAidW5sZXNzICIsCiAgICAgICIgYW5kICIsCiAgICAgICJmb3IgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJib28iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXCJcIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCJcIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQm9zcXVlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAibWF0Y2ggIiwKICAgICAgImNhc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJic3EiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkJyYWluZnVjayI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiWyIsCiAgICAgICJdIiwKICAgICAgIjwiLAogICAgICAiPiIsCiAgICAgICIrIiwKICAgICAgIi0iLAogICAgICAiLiIsCiAgICAgICIsIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYmYiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkJ1aWxkU3RyZWFtIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYnN0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjIiwKICAgICAgImVjIiwKICAgICAgInBnYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDIEhlYWRlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2giCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIi5jc2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdLAogICAgInNoZWJhbmdzIjogWwogICAgICAiY3NoIiwKICAgICAgInRjc2giCiAgICBdCiAgfSwKICAiQyMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNzIiwKICAgICAgImNzeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAiaWdub3JlRXNjYXBlIjogdHJ1ZSwKICAgICAgICAic3RhcnQiOiAiQFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQysrIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYyIsCiAgICAgICJjcHAiLAogICAgICAiY3h4IiwKICAgICAgImMrKyIsCiAgICAgICJwY2MiLAogICAgICAiaW5vIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkMrKyBIZWFkZXIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImhoIiwKICAgICAgImhwcCIsCiAgICAgICJoeHgiLAogICAgICAiaW5sIiwKICAgICAgImlwcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDTWFrZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY21ha2UiLAogICAgICAiY21ha2VsaXN0cy50eHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ09CT0wiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNvYiIsCiAgICAgICJjYmwiLAogICAgICAiY2NwIiwKICAgICAgImNvYm9sIiwKICAgICAgImNweSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiKiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ29kZVFMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJpbXBsaWVzICIsCiAgICAgICJpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAibm90ICIsCiAgICAgICJpbnN0YW5jZW9mICIsCiAgICAgICJpbiAiLAogICAgICAiZXhpc3RzKCIsCiAgICAgICJmb3JhbGwoICIsCiAgICAgICJhdmcoIiwKICAgICAgImNvbmNhdCgiLAogICAgICAiY291bnQoIiwKICAgICAgIm1heCgiLAogICAgICAibWluKCIsCiAgICAgICJyYW5rKCIsCiAgICAgICJzdHJpY3Rjb25jYXQoIiwKICAgICAgInN0cmljdGNvdW50KCIsCiAgICAgICJzdHJpY3RzdW0oIiwKICAgICAgInN1bSgiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxbCIsCiAgICAgICJxbGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ1NTIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ1NWIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3N2IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYWJhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2FiYWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDYXNzaXVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjYXNzaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkNleWxvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2V5bG9uIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkNsb2p1cmUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIihmb3IgIiwKICAgICAgIih3aGVuICIsCiAgICAgICIobG9vcCAiLAogICAgICAiKGRvc2VxICIsCiAgICAgICIoY29uZCAiLAogICAgICAiKGlmIiwKICAgICAgIihpZi1ub3QgIiwKICAgICAgIihhbmQgIiwKICAgICAgIihvciAiLAogICAgICAiKG5vdCAiLAogICAgICAiKD0gIiwKICAgICAgIihub3Q9ICIsCiAgICAgICIocmVjdXIgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2xqIiwKICAgICAgImNsamMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb2p1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNsanMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb3N1cmUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIsCiAgICAgICI+PSAiLAogICAgICAiPD0gIiwKICAgICAgIj86ICIsCiAgICAgICI/IDogIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic295IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKioiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkNvZmZlZVNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY29mZmVlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIiMjIyIsCiAgICAgICAgIiMjIyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkNvZ2VudCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY29nZW50IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiQ29sZEZ1c2lvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2ZtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0tIiwKICAgICAgICAiLS0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkNvbGRGdXNpb24gQ0ZTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNmYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJDb3EiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInYiCiAgICBdLAogICAgImtleXdvcmRzIjogWwogICAgICAiUmVxdWlyZSIsCiAgICAgICJIeXBvdGhlc2lzIiwKICAgICAgIkluZHVjdGl2ZSIsCiAgICAgICJSZW1hcmsiLAogICAgICAiTGVtbWEiLAogICAgICAiUHJvb2YiLAogICAgICAiRGVmaW5pdGlvbiIsCiAgICAgICJUaGVvcmVtIiwKICAgICAgIkNsYXNzIiwKICAgICAgIkluc3RhbmNlIiwKICAgICAgIk1vZHVsZSIsCiAgICAgICJDb250ZXh0IiwKICAgICAgIlNlY3Rpb24iLAogICAgICAiTm90YXRpb24iLAogICAgICAiRW5kIiwKICAgICAgIkZpeHBvaW50IiwKICAgICAgIkZyb20gQ29xIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiQ3Jlb2xlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY3Jlb2xlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJDcnlzdGFsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiQ3l0aG9uIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJhbmQgIiwKICAgICAgIm9yICIsCiAgICAgICJub3QgIiwKICAgICAgImluICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB5eCIsCiAgICAgICJweGkiLAogICAgICAicHhkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJycnIiwKICAgICAgICAic3RhcnQiOiAiJycnIgogICAgICB9CiAgICBdCiAgfSwKICAiRCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXSwKICAgICAgWwogICAgICAgICIvKyIsCiAgICAgICAgIisvIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInJkbWQiCiAgICBdCiAgfSwKICAiRGFydCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZGFydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJEZXZpY2UgVHJlZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZHRzIiwKICAgICAgImR0c2kiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRGhhbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkaGFsbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiey0iLAogICAgICAgICItfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJETSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJzd2l0Y2goIiwKICAgICAgIndoaWxlICIsCiAgICAgICJ3aGlsZSgiLAogICAgICAiZWxzZSAiLAogICAgICAifHwiLAogICAgICAiJiYiLAogICAgICAiIT0iLAogICAgICAiPD4iLAogICAgICAiPT0iLAogICAgICAiaW4gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZG0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiRG9ja2VyIGlnbm9yZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIi5kb2NrZXJpZ25vcmUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkRvY2tlcmZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRvY2tlcmZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgImRvY2tlcmZpbGUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkRvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImR0ZCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRWxpeGlyIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJleCIsCiAgICAgICJleHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnJyIsCiAgICAgICAgInN0YXJ0IjogIicnJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJFbG0iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImNhc2UgIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlbG0iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRW1hY3MgRGV2IEVudiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZWRlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJFbWFjcyBMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRXJsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlcmwiLAogICAgICAiaHJsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIlIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJlc2NyaXB0IgogICAgXQogIH0sCiAgIkV4cGVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZXhwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJFeHRlbnNpYmxlIFN0eWxlc2hlZXQgTGFuZ3VhZ2UgVHJhbnNmb3JtYXRpb25zIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHNsdCIsCiAgICAgICJ4c2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkYjIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJtYXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZzIiwKICAgICAgImZzaSIsCiAgICAgICJmc3giLAogICAgICAiZnNzY3JpcHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGZW5uZWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIihmb3IiLAogICAgICAiKGVhY2giLAogICAgICAiKGlmIiwKICAgICAgIih3aGVuIiwKICAgICAgIih3aGlsZSIsCiAgICAgICIoc3dpdGNoIiwKICAgICAgIihkbyIsCiAgICAgICIoLi4iLAogICAgICAiKD0iLAogICAgICAiKGFuZCIsCiAgICAgICIob3IiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmbmwiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAic3RhcnQiOiAiXCIiLAogICAgICAgICJlbmQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAic3RhcnQiOiAiLCIsCiAgICAgICAgImVuZCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiRioiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZzdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkZJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZpZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRk9SVFJBTiBMZWdhY3kiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImYiLAogICAgICAiZm9yIiwKICAgICAgImZ0biIsCiAgICAgICJmNzciLAogICAgICAicGZvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJjIiwKICAgICAgIkMiLAogICAgICAiISIsCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJGT1JUUkFOIE1vZGVybiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZjAzIiwKICAgICAgImYwOCIsCiAgICAgICJmOTAiLAogICAgICAiZjk1IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIhIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkZpc2giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZpc2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgImZpc2giCiAgICBdCiAgfSwKICAiRmxvdzkiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZXsiLAogICAgICAiZm9yaSAiLAogICAgICAiZm9yaSgiLAogICAgICAic3dpdGNoICIsCiAgICAgICJzd2l0Y2goIiwKICAgICAgImZvbGQgIiwKICAgICAgImZvbGQoIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIsCiAgICAgICJ8PiAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmbG93IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkZvcnRoIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICI0dGgiLAogICAgICAiZm9ydGgiLAogICAgICAiZnIiLAogICAgICAiZnJ0IiwKICAgICAgImZ0aCIsCiAgICAgICJmODMiLAogICAgICAiZmIiLAogICAgICAiZnBtIiwKICAgICAgImU0IiwKICAgICAgInJ4IiwKICAgICAgImZ0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJcXFxcIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIiggIiwKICAgICAgICAiKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkZyYWdtZW50IFNoYWRlciBGaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmc2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiRnJlZW1hcmtlciBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiPCNsaXN0ICIsCiAgICAgICI8I2Fzc2lnbiAiLAogICAgICAiPCNpZiAiLAogICAgICAiPCNlbHNlaWYgIiwKICAgICAgIjwjZWxzZT4iLAogICAgICAiPCNlbHNlPiAiLAogICAgICAiPCNzd2l0Y2ggICIsCiAgICAgICI8I2Nhc2UgIiwKICAgICAgIjwjZGVmYXVsdD4iLAogICAgICAiPCNkZWZhdWx0PiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZ0bCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8Iy0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiRnV0aGFyayI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYgIiwKICAgICAgImVsc2UgIiwKICAgICAgInRoZW4gIiwKICAgICAgImZvciAiLAogICAgICAibG9vcCAiLAogICAgICAid2hpbGUgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj49ICIsCiAgICAgICI8PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmdXQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJGWE1MIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJmeG1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiR0RTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdMU0wiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZlcnQiLAogICAgICAidGVzYyIsCiAgICAgICJ0ZXNlIiwKICAgICAgImdlb20iLAogICAgICAiZnJhZyIsCiAgICAgICJjb21wIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdOIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZigiLAogICAgICAiaWYgKCIsCiAgICAgICJlbHNlIGlmKCIsCiAgICAgICJlbHNlIGlmICgiLAogICAgICAiZWxzZSgiLAogICAgICAiZWxzZSAoIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImduIiwKICAgICAgImduaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdhbWUgTWFrZXIgTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInJlcGVhdCAiLAogICAgICAicmVwZWF0KCIsCiAgICAgICJ8fCAiLAogICAgICAib3IgIiwKICAgICAgIiYmICIsCiAgICAgICJhbmQgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJnbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIi8vLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkdhbWUgTWFrZXIgUHJvamVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInl5cCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiR2VtZmlsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgImdlbWZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkdoZXJraW4gU3BlY2lmaWNhdGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZ2l2ZW4iLAogICAgICAid2hlbiIsCiAgICAgICJ0aGVuIiwKICAgICAgImFuZCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImZlYXR1cmUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkdvIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJnbyAiLAogICAgICAiZGVmZXIgIiwKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImdvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiYCIsCiAgICAgICAgImlnbm9yZUVzY2FwZSI6IHRydWUsCiAgICAgICAgInN0YXJ0IjogImAiCiAgICAgIH0KICAgIF0KICB9LAogICJHbyBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAie3tpZiAiLAogICAgICAie3sgaWYgIiwKICAgICAgInt7ZWxzZSIsCiAgICAgICJ7eyBlbHNlIiwKICAgICAgInt7cmFuZ2UgIiwKICAgICAgInt7IHJhbmdlICIsCiAgICAgICJ7e3dpdGgiLAogICAgICAie3sgd2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRtcGwiLAogICAgICAiZ29odG1sIiwKICAgICAgImdvdHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInt7LyoiLAogICAgICAgICIqL319IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiR3JhZGxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ3JhZGxlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJET1QiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJkb3QiLAogICAgICAiZ3YiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkdyb292eSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZ3Jvb3Z5IiwKICAgICAgImdydCIsCiAgICAgICJndHBsIiwKICAgICAgImd2eSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJoZXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhUTUwiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImh0bWwiLAogICAgICAiaHRtIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSEFNTCI6IHsKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGFtbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLSMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkhhbWxldCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGFtbGV0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSGFuZGxlYmFycyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaGJzIiwKICAgICAgImhhbmRsZWJhcnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIkhhcHB5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieSIsCiAgICAgICJseSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSGFza2VsbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJIYXhlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJoeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJJREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlkbCIsCiAgICAgICJ3ZWJpZGwiLAogICAgICAid2lkbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJJZHJpcyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaWRyIiwKICAgICAgImxpZHIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiXFxcIlxcXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJJbnRlbCBIRVgiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpaGV4IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJJc2FiZWxsZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGh5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7KiIsCiAgICAgICAgIip9IgogICAgICBdLAogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAi4oC5IiwKICAgICAgICAi4oC6IgogICAgICBdLAogICAgICBbCiAgICAgICAgIlxcXFw8b3Blbj4iLAogICAgICAgICJcXFxcPGNsb3NlPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnIiwKICAgICAgICAic3RhcnQiOiAiJyciCiAgICAgIH0KICAgIF0KICB9LAogICJKQUkiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImphaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkpTT04iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc29uIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKU09OTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzb25sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKU1giOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJKYWRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJpZiAiLAogICAgICAiZWxzZSBpZiAiLAogICAgICAidW5sZXNzICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImphZGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSmFuZXQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgIihpZiAiLAogICAgICAiKGZvciAiLAogICAgICAiKGZvciAiLAogICAgICAiKGNvbmQgIiwKICAgICAgIihzd2l0Y2ggIiwKICAgICAgIih3aGVuICIsCiAgICAgICIod2hpbGUgIiwKICAgICAgIihsb29wICIsCiAgICAgICIoY2FzZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqYW5ldCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IGZhbHNlLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiYGAiLAogICAgICAgICJzdGFydCI6ICJgYCIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJAXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJKYXZhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqYXZhIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkphdmFTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzIiwKICAgICAgIm1qcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJub2RlIgogICAgXQogIH0sCiAgIkphdmFTZXJ2ZXIgUGFnZXMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImpzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiSmVua2lucyBCdWlsZGZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqZW5raW5zZmlsZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiSmluamEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgInslIGZvciAiLAogICAgICAieyUtIGZvciAiLAogICAgICAieyUgaWYgIiwKICAgICAgInslLSBpZiAiLAogICAgICAieyUgZWxzZSAiLAogICAgICAieyUtIGVsc2UgIiwKICAgICAgInslIGVsaWYgIiwKICAgICAgInslIG1hY3JvICIsCiAgICAgICJ7JS0gbWFjcm8gIiwKICAgICAgInslIGNhbGwgIiwKICAgICAgInslLSBjYWxsICIsCiAgICAgICJ7JSBmaWx0ZXIgIiwKICAgICAgInslLSBmaWx0ZXIgIiwKICAgICAgInslIHNldCAiLAogICAgICAieyUgaW5jbHVkZSAiLAogICAgICAieyUgZnJvbSAiLAogICAgICAieyUgZXh0ZW5kcyAiLAogICAgICAieyUgd2l0aCAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqaW5qYSIsCiAgICAgICJqMiIsCiAgICAgICJqaW5qYTIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyMiLAogICAgICAgICIjfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkp1bGlhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjPSIsCiAgICAgICAgIj0jIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIlxcXCJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSnVsaXVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqdWxpdXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiSnVweXRlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImlweW5iIiwKICAgICAgImpweW5iIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJKdXN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqdXN0ZmlsZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJLb3JuIFNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJrc2giCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIi5rc2hyYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAia3NoIgogICAgXQogIH0sCiAgIktvdGxpbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAia3QiLAogICAgICAia3RzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTEQgU2NyaXB0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsZHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTEVTUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxlc3MiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTEVYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTE9MQ09ERSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiQVdTVU0gVEhYICIsCiAgICAgICJPIE5PRVMgIiwKICAgICAgIlBMWiBPUEVOIEZJTEUgIiwKICAgICAgIklNIElOIFlSICIsCiAgICAgICJPIFJMWT8iLAogICAgICAiTyBSTFk/ICIsCiAgICAgICJXVEY/IiwKICAgICAgIldURj8gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibG9sIiwKICAgICAgImxvbHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIkJUVyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJPQlRXIiwKICAgICAgICAiVExEUiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJMYVRlWCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRleCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTGVhbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibGVhbiIsCiAgICAgICJobGVhbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLy0iLAogICAgICAgICItLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTGljZW5zZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgImxpY2Vuc2UiLAogICAgICAibGljZW5jZSIsCiAgICAgICJjb3B5aW5nIiwKICAgICAgImNvcHlpbmczIiwKICAgICAgInVubGljZW5zZSIsCiAgICAgICJ1bmxpY2VuY2UiLAogICAgICAibGljZW5zZS1taXQiLAogICAgICAibGljZW5jZS1taXQiLAogICAgICAiY29weXJpZ2h0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJMaXNwIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsaXNwIiwKICAgICAgImxzcCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJzYmNsIgogICAgXQogIH0sCiAgIkxMVk0gSVIiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImxsdm0ubG9vcCIsCiAgICAgICJiciAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJpbmRpcmVjdGJyICIsCiAgICAgICJpbnZva2UgIiwKICAgICAgImNhbGxiciAiLAogICAgICAicmVzdW1lICIsCiAgICAgICJjYXRjaHN3aXRjaCAiLAogICAgICAiY2F0Y2hyZXQgIiwKICAgICAgImNsZWFudXByZXQgIiwKICAgICAgInNobCAiLAogICAgICAibHNociAiLAogICAgICAiYXNociAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiLAogICAgICAieG9yICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImxsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogW10KICB9LAogICJMdWEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImx1YSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLS1bWyIsCiAgICAgICAgIl1dIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAibHVhIgogICAgXQogIH0sCiAgIkx1Y2l1cyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibHVjaXVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIkx1bmEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJsdW5hIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJNUUwgSGVhZGVyIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtcWgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTVFMNCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibXE0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk1RTDUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1xNSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJNU0J1aWxkIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc3Byb2oiLAogICAgICAidmJwcm9qIiwKICAgICAgImZzcHJvaiIsCiAgICAgICJwcm9wcyIsCiAgICAgICJ0YXJnZXRzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTVVNUFMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1wcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk1hY3JvbWVkaWEgZVh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJteG1sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJNYWRsYW5nIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtYWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyMiLAogICAgICAgICIjfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk1ha2VmaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtYWtlZmlsZSIsCiAgICAgICJtYWsiLAogICAgICAibWsiLAogICAgICAiYnAiCiAgICBdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgIm1ha2VmaWxlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJNYWtvIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICIlIGZvciAiLAogICAgICAiJSBpZiAiLAogICAgICAiJSBlbHNlICIsCiAgICAgICIlIGVsaWYgIiwKICAgICAgIjwlIGluY2x1ZGUgIiwKICAgICAgIjwlZGVmICIsCiAgICAgICI8JXBhZ2UgIiwKICAgICAgIjwlZGVmICIsCiAgICAgICI8JWJsb2NrICIsCiAgICAgICI8JW5hbWVzcGFjZSAiLAogICAgICAiPCVpbmhlcml0ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1ha28iLAogICAgICAibWFvIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8JWRvYz4iLAogICAgICAgICI8LyVkb2M+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWFya2Rvd24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtZCIsCiAgICAgICJtYXJrZG93biIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTWVzb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvcmVhY2ggIiwKICAgICAgImlmICIsCiAgICAgICJlbGlmICIsCiAgICAgICJ1bmxlc3MgIiwKICAgICAgImFuZCAiLAogICAgICAib3IgIiwKICAgICAgImVsc2UgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibWVzb24uYnVpbGQiLAogICAgICAibWVzb25fb3B0aW9ucy50eHQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnJyIsCiAgICAgICAgInN0YXJ0IjogIicnJyIKICAgICAgfQogICAgXQogIH0sCiAgIk1BVExBQiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYgIiwKICAgICAgImVsc2VpZiAiLAogICAgICAiY2FzZSAiLAogICAgICAib3RoZXJ3aXNlICIsCiAgICAgICJ0cnkiLAogICAgICAiZm9yICIsCiAgICAgICJ3aGlsZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtIgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImV5ZSgiLAogICAgICAiemVyb3MoIiwKICAgICAgIm9uZXMoIiwKICAgICAgInRyYW5zcG9zZSgiLAogICAgICAibWVzaGdyaWQoIiwKICAgICAgIm1vZCgiLAogICAgICAiY2xhc3NkZWYiLAogICAgICAiZnVuY3Rpb24iLAogICAgICAiZGlzcCgiLAogICAgICAic2luKCIsCiAgICAgICJ0YW4oIiwKICAgICAgImNvcygiLAogICAgICAicGxvdCIsCiAgICAgICJzcXJ0KCIsCiAgICAgICJkZWJsYW5rKCIsCiAgICAgICJmaW5kc3RyKCIsCiAgICAgICJzdHJyZXAoIiwKICAgICAgInN0cmNtcCgiLAogICAgICAiZGlzcGxheSgiLAogICAgICAic3RyY2F0KCIsCiAgICAgICJpc2NlbGxzdHIoIiwKICAgICAgInN0cmZpbmQoIiwKICAgICAgIiUiLAogICAgICAiZnVuY3Rpb24iLAogICAgICAiZnByaW50ZigiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbIAogICAgICBbCiAgICAgICAgIiV7IiwKICAgICAgICAifSUiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIk1vZHVsYTMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm0zIiwKICAgICAgIm1nIiwKICAgICAgImlnIiwKICAgICAgImkzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTW9kdWxlLURlZmluaXRpb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRlZiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiTW9ua2V5IEMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1jIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk11c3RhY2hlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtdXN0YWNoZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7eyEiLAogICAgICAgICJ9fSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIk5pbSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibmltIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIlxcXCJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIlxcXCJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiTml4IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJuaXgiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiT0NhbWwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1sIiwKICAgICAgIm1saSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk9iamVjdGl2ZSBDIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJtIgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgIiNpbmNsdWRlIiwKICAgICAgInByaW50ZiIsCiAgICAgICJzdGRpby5oIiwKICAgICAgIi5oIiwKICAgICAgIkBpbXBvcnQiLAogICAgICAiQGludGVyZmFjZSIsCiAgICAgICJAcHJvcGVydHkiLAogICAgICAiQGltcGxlbWVudGF0aW9uIiwKICAgICAgIk5TQXJyYXkiLAogICAgICAiI3ByYWdtYSIsCiAgICAgICJzdGF0aWMiLAogICAgICAiY29uc3QiLAogICAgICAiYXRvbWljIiwKICAgICAgIkBlbmQiLAogICAgICAiLy8iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWyAKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk9iamVjdGl2ZSBDKysiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm1tIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIk9wYWxhbmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm9wYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJPcmciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm9yZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyAiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIk96IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJveiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiJSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlBIUCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGhwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIiwKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJwaHAiLAogICAgICAicGhwNSIKICAgIF0KICB9LAogICJQS0dCVUlMRCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBrZ2J1aWxkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQTC9TUUwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImFuZCAiLAogICAgICAiYW5kKCIsCiAgICAgICJlbHNlICIsCiAgICAgICJlbHNlKCIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgImVsc2VpZigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJsb29wICIsCiAgICAgICJub3QgIiwKICAgICAgIm5vdCgiLAogICAgICAib3IgIiwKICAgICAgIm9yKCIsCiAgICAgICI8PiAiLAogICAgICAiPD4oIiwKICAgICAgIj0gIiwKICAgICAgIj0oIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiZm5jIiwKICAgICAgInBrYiIsCiAgICAgICJwa3MiLAogICAgICAicHJjIiwKICAgICAgInRyZyIsCiAgICAgICJ2dyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLS0iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiUFNMIEFzc2VydGlvbiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlBhc2NhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGFzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICJ7IiwKICAgICAgICAifSIKICAgICAgXSwKICAgICAgWwogICAgICAgICIoKiIsCiAgICAgICAgIiopIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJQYXRjaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBhdGNoIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQZXJsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwbCIsCiAgICAgICJwbSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI9cG9kIiwKICAgICAgICAiPWN1dCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInBlcmwiLAogICAgICAicGVybDUiLAogICAgICAicGVybDYiCiAgICBdCiAgfSwKICAiUGxhaW4gVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRleHQiLAogICAgICAidHh0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQb2xseSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicG9sbHkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJQb255IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJtYXRjaCAiLAogICAgICAicmVwZWF0IiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBvbnkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiXFxcIlxcXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJQb3dlcnNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ3aGlsZSAiLAogICAgICAid2hpbGUoIiwKICAgICAgInVudGlsICIsCiAgICAgICJ1bnRpbCgiLAogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImZvcmVhY2ggIiwKICAgICAgImZvcmVhY2goIiwKICAgICAgImlmICIsCiAgICAgICJlbHNlaWYgIiwKICAgICAgImVsc2UgIiwKICAgICAgInN3aXRjaCIsCiAgICAgICJzd2l0Y2goIiwKICAgICAgIi1ndCIsCiAgICAgICItbHQiLAogICAgICAiLWVxIiwKICAgICAgIi1uZSIsCiAgICAgICItZ2UiLAogICAgICAiLWxlIiwKICAgICAgIi1pbiIsCiAgICAgICItbm90aW4iLAogICAgICAiLWNvbnRhaW5zIiwKICAgICAgIi1ub3Rjb250YWlucyIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInBzMSIsCiAgICAgICJwc20xIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwjIiwKICAgICAgICAiIz4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUHJvY2Vzc2luZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicGRlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlByb2xvZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicCIsCiAgICAgICJwcm8iCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiUiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJQcm9wZXJ0aWVzIEZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwcm9wZXJ0aWVzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQcm90b2NvbCBCdWZmZXJzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJwcm90byIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlB1cHBldCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicHAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPWJlZ2luIiwKICAgICAgICAiPWVuZCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlB1cmVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB1cnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInstIiwKICAgICAgICAiLX0iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogW10KICB9LAogICJQeXRob24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJ3aGlsZSAiLAogICAgICAid2hpbGUoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxpZiAiLAogICAgICAiZWxpZigiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZToiLAogICAgICAibWF0Y2ggIiwKICAgICAgIm1hdGNoKCIsCiAgICAgICJ0cnkgIiwKICAgICAgInRyeToiLAogICAgICAiZXhjZXB0ICIsCiAgICAgICJleGNlcHQoIiwKICAgICAgImZpbmFsbHkgIiwKICAgICAgImZpbmFsbHk6IiwKICAgICAgIndpdGggIiwKICAgICAgIndpdGggKCIsCiAgICAgICJhbmQgIiwKICAgICAgImFuZCgiLAogICAgICAib3IgIiwKICAgICAgIm9yKCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInB5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfSwKICAgICAgewogICAgICAgICJkb2NTdHJpbmciOiB0cnVlLAogICAgICAgICJlbmQiOiAiXCJcIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCJcIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRvY1N0cmluZyI6IHRydWUsCiAgICAgICAgImVuZCI6ICInJyciLAogICAgICAgICJzdGFydCI6ICInJyciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJweXRob24iLAogICAgICAicHl0aG9uMiIsCiAgICAgICJweXRob24zIgogICAgXQogIH0sCiAgIlEjIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAicmVwZWF0ICIsCiAgICAgICJyZXBlYXR7IiwKICAgICAgInVudGlsICgiLAogICAgICAidW50aWwoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAiZWxpZiAiLAogICAgICAiZWxpZnsiLAogICAgICAiZWxzZSAiLAogICAgICAiZWxzZXsiLAogICAgICAifHx8ICIsCiAgICAgICImJiYgIiwKICAgICAgIjw8PCIsCiAgICAgICI+Pj4iLAogICAgICAiXl5eIiwKICAgICAgIn5+fiIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicXMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUUNMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxY2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJxbWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiUiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmFrZWZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFtdLAogICAgImZpbGVuYW1lcyI6IFsKICAgICAgInJha2UiLAogICAgICAicmFrZWZpbGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPWJlZ2luIiwKICAgICAgICAiPWVuZCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlJhem9yIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJjc2h0bWwiLAogICAgICAicmF6b3IiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXSwKICAgICAgWwogICAgICAgICJAKiIsCiAgICAgICAgIipAIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVTdHJ1Y3R1cmVkVGV4dCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInJzdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUmVwb3J0IERlZmluaXRpb24gTGFuZ3VhZ2UiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyZGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJSb2JvdCBGcmFtZXdvcmsiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyb2JvdCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiUnVieSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPWJlZ2luIiwKICAgICAgICAiPWVuZCIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInJ1YnkiCiAgICBdCiAgfSwKICAiUnVieSBIVE1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyaHRtbCIsCiAgICAgICJlcmIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJSdXN0IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJycyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJuZXN0ZWRtdWx0aWxpbmUiOiB0cnVlLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlNBUyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZG8iLAogICAgICAiJWRvIiwKICAgICAgImlmIiwKICAgICAgIiVpZiIsCiAgICAgICJlbHNlIiwKICAgICAgIiVlbHNlIiwKICAgICAgImNhc2UiLAogICAgICAib3IiLAogICAgICAiYW5kIiwKICAgICAgIl49IiwKICAgICAgIsKsPSIsCiAgICAgICJ+PSIsCiAgICAgICJuZSIsCiAgICAgICJlcSIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNhcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiKiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJTS0lMTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIjsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTUERYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3BkeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiU1FMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzcWwiLAogICAgICAiZG1sIiwKICAgICAgImRkbCIsCiAgICAgICJkcWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi0tIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlNSZWNvZGUgVGVtcGxhdGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNydCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOzsiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNWRyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3ZnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU2FzcyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2FzcyIsCiAgICAgICJzY3NzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlNjYWxhIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzYyIsCiAgICAgICJzY2FsYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTY2hlbWUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNjbSIsCiAgICAgICJzcyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiOyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIjfCIsCiAgICAgICAgInwjIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogW10sCiAgICAic2hlYmFuZ3MiOiBbXQogIH0sCiAgIlJhY2tldCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiKGlmIiwKICAgICAgIihjb25kIiwKICAgICAgIltlbHNlIiwKICAgICAgIihhbmQiLAogICAgICAiKG9yIiwKICAgICAgIihmb3IiLAogICAgICAiIzp3aGVuIiwKICAgICAgIiM6dW5sZXNzIiwKICAgICAgIiM6YnJlYWsiLAogICAgICAiIzpmaW5hbCIsCiAgICAgICIoZG8iLAogICAgICAiKHdoZW4iLAogICAgICAiKHVubGVzcyIsCiAgICAgICIoc2hhcmVkIiwKICAgICAgIihjYXNlIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAicmt0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICI7IgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgInwjIiwKICAgICAgICAiI3wiCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJyYWNrZXQiCiAgICBdCiAgfSwKICAiU2NvbnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImNzaWciLAogICAgICAic2NvbnN0cnVjdCIsCiAgICAgICJzY29uc2NyaXB0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCJcXFwiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCJcXFwiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJycnIiwKICAgICAgICAic3RhcnQiOiAiJycnIgogICAgICB9CiAgICBdCiAgfSwKICAiU2hlbGwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInNoIgogICAgXSwKICAgICJmaWxlbmFtZXMiOiBbCiAgICAgICIudGNzaHJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJzaCIKICAgIF0KICB9LAogICJOdXNoZWxsIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImRvIHsgIiwKICAgICAgImVhY2ggeyIsCiAgICAgICJpZiAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibnUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdLAogICAgInNoZWJhbmdzIjogWwogICAgICAibnUiCiAgICBdCiAgfSwKICAiU21hcnR5IFRlbXBsYXRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiaW5jbHVkZSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0cGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAieyoiLAogICAgICAgICIqfSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlNvZnRicmlkZ2UgQmFzaWMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic2JsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlNvbGlkaXR5IjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiLAogICAgICAiYXNzZW1ibHkgIiwKICAgICAgImFzc2VtYmx5eyIsCiAgICAgICJ1bmNoZWNrZWQgIiwKICAgICAgInVuY2hlY2tlZHsiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzb2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3BlY21hbiBlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICInPiIsCiAgICAgICAgIjwnIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiU3BpY2UgTmV0bGlzdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2t0IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIqIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJTdGFuZGFyZCBNTCAoU01MKSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic21sIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIigqIiwKICAgICAgICAiKikiCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3RhdGEiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvcmVhY2giLAogICAgICAiZm9ydmFsdWVzIiwKICAgICAgImlmIiwKICAgICAgImVsc2UiLAogICAgICAid2hpbGUiLAogICAgICAic3dpdGNoIiwKICAgICAgInwiLAogICAgICAiJiIsCiAgICAgICIhPSIsCiAgICAgICI9PSIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImRvIiwKICAgICAgImFkbyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iLAogICAgICAiKiIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiXCInIiwKICAgICAgICAic3RhcnQiOiAiYFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3R5bHVzIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImlmICIsCiAgICAgICJ1bmxlc3MgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInN0eWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiU3ZlbHRlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzdmVsdGUiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTd2lmdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAic3dpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAibmVzdGVkbXVsdGlsaW5lIjogdHJ1ZSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTd2lnIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiaSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlN5c3RlbVZlcmlsb2ciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgIiYgIiwKICAgICAgIiE9ICIsCiAgICAgICIhPT0gIiwKICAgICAgIj09ICIsCiAgICAgICJmb3JlYWNoICIsCiAgICAgICJmb3JlYWNoKCIsCiAgICAgICJjYXNlICIsCiAgICAgICJjYXNlKCIsCiAgICAgICJjYXNleCAiLAogICAgICAiY2FzZXgoIiwKICAgICAgImNhc2V6ICIsCiAgICAgICJjYXNleigiLAogICAgICAiY2FzZXh6ICIsCiAgICAgICJjYXNleHooIiwKICAgICAgImZvcmsgIiwKICAgICAgIiA/ICIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIsCiAgICAgICJldmVudCAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzdiIsCiAgICAgICJzdmgiCiAgICBdLAogICAgImtleXdvcmRzIjogWwogICAgICAiZW5kbW9kdWxlIiwKICAgICAgInBvc2VkZ2UiLAogICAgICAiZWRnZSIsCiAgICAgICJhbHdheXMiLAogICAgICAid2lyZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJTeXN0ZW1kIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiYXV0b21vdW50IiwKICAgICAgImRldmljZSIsCiAgICAgICJsaW5rIiwKICAgICAgIm1vdW50IiwKICAgICAgInBhdGgiLAogICAgICAic2NvcGUiLAogICAgICAic2VydmljZSIsCiAgICAgICJzbGljZSIsCiAgICAgICJzb2NrZXQiLAogICAgICAic3dhcCIsCiAgICAgICJ0YXJnZXQiLAogICAgICAidGltZXIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlRDTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGNsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0sCiAgICAic2hlYmFuZ3MiOiBbCiAgICAgICJ0Y2wiCiAgICBdCiAgfSwKICAiVE9NTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidG9tbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiXFxcIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiXFxcIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIicnJyIsCiAgICAgICAgInN0YXJ0IjogIicnJyIKICAgICAgfQogICAgXQogIH0sCiAgIlRhc2tQYXBlciI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRhc2twYXBlciIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVGVhbCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAibG9vcDoiLAogICAgICAicmV0c3ViIiwKICAgICAgImNhbGxzdWIgIiwKICAgICAgIiYmIiwKICAgICAgIj09IiwKICAgICAgInx8IiwKICAgICAgIjw9IiwKICAgICAgIj49IgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGVhbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlRlcnJhZm9ybSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiY291bnQiLAogICAgICAiZm9yIiwKICAgICAgImZvcl9lYWNoIiwKICAgICAgImlmIiwKICAgICAgIjogIiwKICAgICAgIj8gIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj4gIiwKICAgICAgIj49ICIsCiAgICAgICI8ICIsCiAgICAgICI8PSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGYiLAogICAgICAidGYuanNvbiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIsCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVGVYIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0ZXgiLAogICAgICAic3R5IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIlIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJUaHJpZnQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ0aHJpZnQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiVHdpZyBUZW1wbGF0ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAieyUgZm9yICIsCiAgICAgICJ7JSBpZiAiLAogICAgICAieyUgZWxzZSAiLAogICAgICAieyUgZWxzZWlmICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInR3aWciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlR5cGVTY3JpcHQiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrIiwKICAgICAgIj8iLAogICAgICAiOiIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInRzIiwKICAgICAgInRzeCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJUeXBlU2NyaXB0IFR5cGluZ3MiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInwgIiwKICAgICAgInx8ICIsCiAgICAgICImICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIiE9PSAiLAogICAgICAiPT0gIiwKICAgICAgIj09PSAiLAogICAgICAiZm9yZWFjaCgiLAogICAgICAiY2FzZSAiLAogICAgICAiY2FzZSgiLAogICAgICAiY2FzZXggIiwKICAgICAgImNhc2V4KCIsCiAgICAgICJjYXNleiAiLAogICAgICAiY2FzZXooIiwKICAgICAgImNhc2V4eiAiLAogICAgICAiY2FzZXh6KCIsCiAgICAgICJmb3JrIiwKICAgICAgIj8iLAogICAgICAiOiIsCiAgICAgICJpbnNpZGUiLAogICAgICAid2l0aCIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgImQudHMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXQogIH0sCiAgIlRMIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidGwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIiwKICAgICAgIi8vLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVW5yZWFsIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidWMiLAogICAgICAidWNpIiwKICAgICAgInVwa2ciCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVXIvV2ViIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ1ciIsCiAgICAgICJ1cnMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJVci9XZWIgUHJvamVjdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidXJwIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJWIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2IgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImJyZWFrIiwKICAgICAgImNvbnN0ICIsCiAgICAgICJjb250aW51ZSIsCiAgICAgICJkZWZlciIsCiAgICAgICJlbHNlICIsCiAgICAgICJlbnVtIiwKICAgICAgImZuICIsCiAgICAgICJnb3RvIiwKICAgICAgImltcG9ydCAiLAogICAgICAiaW4gIiwKICAgICAgImludGVyZmFjZSIsCiAgICAgICJtYXRjaCIsCiAgICAgICJtdXQiLAogICAgICAicHJpbnRsbiIsCiAgICAgICJwdWIiLAogICAgICAicmV0dXJuIiwKICAgICAgInN0cnVjdCAiLAogICAgICAidHlwZSAiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICJgIiwKICAgICAgICAic3RhcnQiOiAiYCIKICAgICAgfQogICAgXQogIH0sCiAgIlZIREwiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZoZCIsCiAgICAgICJ2aGRsIgogICAgXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgImFicyIsCiAgICAgICJhY2Nlc3MiLAogICAgICAiYWZ0ZXIiLAogICAgICAiYWxpYXMiLAogICAgICAiYWxsIiwKICAgICAgImFuZCIsCiAgICAgICJhcmNoaXRlY3R1cmUiLAogICAgICAiYXJyYXkiLAogICAgICAiYXNzZXJ0IiwKICAgICAgImF0dHJpYnV0ZSIsCiAgICAgICJiZWdpbiIsCiAgICAgICJibG9jayIsCiAgICAgICJib2R5IiwKICAgICAgImJ1ZmZlciIsCiAgICAgICJidXMiLAogICAgICAiY2FzZSIsCiAgICAgICJjb21wb25lbnQiLAogICAgICAiY29uZmlndXJhdGlvbiIsCiAgICAgICJjb25zdGFudCIsCiAgICAgICJkaXNjb25uZWN0IiwKICAgICAgImRvd250byIsCiAgICAgICJlbHNlIiwKICAgICAgImVsc2lmIiwKICAgICAgImVuZCIsCiAgICAgICJlbnRpdHkiLAogICAgICAiZXhpdCIsCiAgICAgICJmaWxlIiwKICAgICAgImZvciIsCiAgICAgICJmdW5jdGlvbiIsCiAgICAgICJnZW5lcmF0ZSIsCiAgICAgICJnZW5lcmljIiwKICAgICAgImdyb3VwIiwKICAgICAgImd1YXJkZWQiLAogICAgICAiaWYiLAogICAgICAiaW1wdXJlIiwKICAgICAgImluIiwKICAgICAgImluZXJ0aWFsIiwKICAgICAgImlub3V0IiwKICAgICAgImlzIiwKICAgICAgImxhYmVsIiwKICAgICAgImxpYnJhcnkiLAogICAgICAibGlua2FnZSIsCiAgICAgICJsaXRlcmFsIiwKICAgICAgImxvb3AiLAogICAgICAibWFwIiwKICAgICAgIm1vZCIsCiAgICAgICJuYW5kIiwKICAgICAgIm5ldyIsCiAgICAgICJuZXh0IiwKICAgICAgIm5vciIsCiAgICAgICJub3QiLAogICAgICAibnVsbCIsCiAgICAgICJvZiIsCiAgICAgICJvbiIsCiAgICAgICJvcGVuIiwKICAgICAgIm9yIiwKICAgICAgIm90aGVycyIsCiAgICAgICJvdXQiLAogICAgICAicGFja2FnZSIsCiAgICAgICJwb3J0IiwKICAgICAgInBvc3Rwb25lZCIsCiAgICAgICJwcm9jZWR1cmUiLAogICAgICAicHJvY2VzcyIsCiAgICAgICJwdXJlIiwKICAgICAgInJhbmdlIiwKICAgICAgInJlY29yZCIsCiAgICAgICJyZWdpc3RlciIsCiAgICAgICJyZWplY3QiLAogICAgICAicmVtIiwKICAgICAgInJlcG9ydCIsCiAgICAgICJyZXR1cm4iLAogICAgICAicm9sIiwKICAgICAgInJvciIsCiAgICAgICJzZWxlY3QiLAogICAgICAic2V2ZXJpdHkiLAogICAgICAic2hhcmVkIiwKICAgICAgInNpZ25hbCIsCiAgICAgICJzbGEiLAogICAgICAic2xsIiwKICAgICAgInNyYSIsCiAgICAgICJzcmwiLAogICAgICAic3VidHlwZSIsCiAgICAgICJ0aGVuIiwKICAgICAgInRvIiwKICAgICAgInRyYW5zcG9ydCIsCiAgICAgICJ0eXBlIiwKICAgICAgInVuYWZmZWN0ZWQiLAogICAgICAidW5pdHMiLAogICAgICAidW50aWwiLAogICAgICAidXNlIiwKICAgICAgInZhcmlhYmxlIiwKICAgICAgIndhaXQiLAogICAgICAid2hlbiIsCiAgICAgICJ3aGlsZSIsCiAgICAgICJ3aXRoIiwKICAgICAgInhub3IiLAogICAgICAieG9yIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICItLSIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVmFsYSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmFsYSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJWYXJuaXNoIENvbmZpZ3VyYXRpb24iOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2Y2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiLAogICAgICAiLy8iCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIlZlcmlsb2ciOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgInN3aXRjaCAiLAogICAgICAid2hpbGUgIiwKICAgICAgImVsc2UgIiwKICAgICAgInx8ICIsCiAgICAgICImJiAiLAogICAgICAiIT0gIiwKICAgICAgIj09ICIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInZnIiwKICAgICAgInZoIiwKICAgICAgInYiCiAgICBdLAogICAgImtleXdvcmRzIjogWwogICAgICAibW9kdWxlIiwKICAgICAgImVuZG1vZHVsZSIsCiAgICAgICJ0aW1lc2NhbGUiLAogICAgICAiaW5wdXQiLAogICAgICAib3V0cHV0IiwKICAgICAgInJlZyIsCiAgICAgICJ3aXJlIiwKICAgICAgInBvc2VkZ2UiLAogICAgICAibmVnZWRnZSIsCiAgICAgICJhbHdheXMiLAogICAgICAiYmVnaW4iLAogICAgICAic3dpdGNoIiwKICAgICAgImNhc2UiLAogICAgICAiZW5kIiwKICAgICAgImVuZGNhc2UiLAogICAgICAiZWxzZSIsCiAgICAgICJsb2NhbHBhcmFtIiwKICAgICAgImluaXRpYWwiLAogICAgICAic2lnbmVkIiwKICAgICAgImFzc2lnbiIsCiAgICAgICJnZW5lcmF0ZSIsCiAgICAgICJnZW52YXIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVmVyaWxvZyBBcmdzIEZpbGUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJpcnVuYXJncyIsCiAgICAgICJ4cnVuYXJncyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiVmVydGV4IFNoYWRlciBGaWxlIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ2c2giCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVmltIFNjcmlwdCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmltIiwKICAgICAgInZpbXJjIiwKICAgICAgImd2aW1yYyIKICAgIF0sCiAgICAiZmlsZW5hbWVzIjogWwogICAgICAiX3ZpbXJjIiwKICAgICAgIi52aW1yYyIsCiAgICAgICJfZ3ZpbXJjIiwKICAgICAgIi5ndmltcmMiLAogICAgICAidmltcmMiLAogICAgICAiZ3ZpbXJjIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICJcIiIsCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfSwKICAgICAgewogICAgICAgICJlbmQiOiAiJyIsCiAgICAgICAgInN0YXJ0IjogIiciCiAgICAgIH0KICAgIF0KICB9LAogICJWaXN1YWwgQmFzaWMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidmIiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiciCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9CiAgICBdCiAgfSwKICAiVmlzdWFsIEJhc2ljIGZvciBBcHBsaWNhdGlvbnMiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFsKICAgICAgImZvciAiLAogICAgICAiZm9yKCIsCiAgICAgICJpZiAiLAogICAgICAiaWYoIiwKICAgICAgImVsc2VpZiAiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAiY2xzIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICInIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcXFwiIiwKICAgICAgICAic3RhcnQiOiAiXFxcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlZ1ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAidnVlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0sCiAgICAgIFsKICAgICAgICAiLyoiLAogICAgICAgICIqLyIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIiciLAogICAgICAgICJzdGFydCI6ICInIgogICAgICB9CiAgICBdCiAgfSwKICAiV2ViIFNlcnZpY2VzIERlc2NyaXB0aW9uIExhbmd1YWdlIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ3c2RsIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIjwhLS0iLAogICAgICAgICItLT4iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiV29sZnJhbSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAibmIiLAogICAgICAid2wiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiKCoiLAogICAgICAgICIqKSIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJXcmVuIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ3cmVuIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgIm5lc3RlZG11bHRpbGluZSI6IHRydWUsCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiWEFNTCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieGFtbCIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlhjb2RlIENvbmZpZyI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInhjY29uZmlnIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIvLyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFtdLAogICAgInF1b3RlcyI6IFtdCiAgfSwKICAiWE1MIjogewogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJ4bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFtdLAogICAgIm11bHRpX2xpbmUiOiBbCiAgICAgIFsKICAgICAgICAiPCEtLSIsCiAgICAgICAgIi0tPiIKICAgICAgXQogICAgXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlwiIiwKICAgICAgICAic3RhcnQiOiAiXCIiCiAgICAgIH0KICAgIF0KICB9LAogICJYTUwgU2NoZW1hIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHNkIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJYdGVuZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieHRlbmQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfSwKICAiWWFybiI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiPDxpZiAiLAogICAgICAiPDxlbHNlaWYgIiwKICAgICAgIjw8ZWxzZSAiLAogICAgICAiIGVxICIsCiAgICAgICIgPT0gIiwKICAgICAgIiBuZXEgIiwKICAgICAgIiAhICIsCiAgICAgICIgZ3QgIiwKICAgICAgIiA+ICIsCiAgICAgICIgbHQgIiwKICAgICAgIiA8ICIsCiAgICAgICIgbHRlICIsCiAgICAgICIgPD0gIiwKICAgICAgIiBndGUgIiwKICAgICAgIiA+PSAiLAogICAgICAiIHhvciAiLAogICAgICAiIF4gIiwKICAgICAgIiBhbmQgIiwKICAgICAgIiAmJiAiLAogICAgICAiIHx8ICIsCiAgICAgICIgb3IgIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFybiIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJZQU1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFtbCIsCiAgICAgICJ5bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXQogIH0sCiAgIkNsb3VkRm9ybWF0aW9uIChZQU1MKSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiIUdldEF0dCIsCiAgICAgICIhU3ViIiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRGVwZW5kc09uOiIsCiAgICAgICIhU2VsZWN0IiwKICAgICAgIiFFcXVhbHMiLAogICAgICAiIUlmIiwKICAgICAgIkZuOjpJZiIsCiAgICAgICJGbjo6QW5kIiwKICAgICAgIkZuOjpFcXVhbHMiLAogICAgICAiRm46Ok5vdCIsCiAgICAgICJGbjo6T3IiLAogICAgICAiRm46OkJhc2U2NCIsCiAgICAgICJGbjo6Q2lkciIsCiAgICAgICJGbjo6RmluZEluTWFwIiwKICAgICAgIkZuOjpHZXRBdHQiLAogICAgICAiRm46OkdldEFacyIsCiAgICAgICJGbjo6SW1wb3J0VmFsdWUiLAogICAgICAiRm46OkpvaW4iLAogICAgICAiRm46OlNlbGVjdCIsCiAgICAgICJGbjo6U3BsaXQiLAogICAgICAiRm46OlN1YiIsCiAgICAgICJGbjo6VHJhbnNmb3JtIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAieWFtbCIsCiAgICAgICJ5bWwiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXSwKICAgICJrZXl3b3JkcyI6IFsKICAgICAgIlJlc291cmNlczoiLAogICAgICAiQVdTVGVtcGxhdGVGb3JtYXRWZXJzaW9uOiIsCiAgICAgICJEZXNjcmlwdGlvbjoiLAogICAgICAiQVdTOjoiLAogICAgICAiUHJvcGVydGllczoiLAogICAgICAiTmFtZToiLAogICAgICAiVHlwZToiLAogICAgICAiIUdldEF0dCIsCiAgICAgICIhU3ViIiwKICAgICAgIlN0YXRlbWVudDoiLAogICAgICAiUmVmOiIsCiAgICAgICJEZXBlbmRzT246IiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRm46OklmIiwKICAgICAgIkZuOjpBbmQiLAogICAgICAiRm46OkVxdWFscyIsCiAgICAgICJGbjo6Tm90IiwKICAgICAgIkZuOjpPciIsCiAgICAgICJGbjo6QmFzZTY0IiwKICAgICAgIkZuOjpDaWRyIiwKICAgICAgIkZuOjpGaW5kSW5NYXAiLAogICAgICAiRm46OkdldEF0dCIsCiAgICAgICJGbjo6R2V0QVpzIiwKICAgICAgIkZuOjpJbXBvcnRWYWx1ZSIsCiAgICAgICJGbjo6Sm9pbiIsCiAgICAgICJGbjo6U2VsZWN0IiwKICAgICAgIkZuOjpTcGxpdCIsCiAgICAgICJGbjo6U3ViIiwKICAgICAgIkZuOjpUcmFuc2Zvcm0iCiAgICBdCiAgfSwKICAiQ2xvdWRGb3JtYXRpb24gKEpTT04pIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICIhR2V0QXR0IiwKICAgICAgIiFTdWIiLAogICAgICAiIVNlbGVjdCIsCiAgICAgICIhRXF1YWxzIiwKICAgICAgIiFJZiIsCiAgICAgICJEZXBlbmRzT246IiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRm46OklmIiwKICAgICAgIkZuOjpBbmQiLAogICAgICAiRm46OkVxdWFscyIsCiAgICAgICJGbjo6Tm90IiwKICAgICAgIkZuOjpPciIsCiAgICAgICJGbjo6QmFzZTY0IiwKICAgICAgIkZuOjpDaWRyIiwKICAgICAgIkZuOjpGaW5kSW5NYXAiLAogICAgICAiRm46OkdldEF0dCIsCiAgICAgICJGbjo6R2V0QVpzIiwKICAgICAgIkZuOjpJbXBvcnRWYWx1ZSIsCiAgICAgICJGbjo6Sm9pbiIsCiAgICAgICJGbjo6U2VsZWN0IiwKICAgICAgIkZuOjpTcGxpdCIsCiAgICAgICJGbjo6U3ViIiwKICAgICAgIkZuOjpUcmFuc2Zvcm0iCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJqc29uIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10sCiAgICAia2V5d29yZHMiOiBbCiAgICAgICJcIkFXU1RlbXBsYXRlRm9ybWF0VmVyc2lvblwiIiwKICAgICAgIkFXUzo6IiwKICAgICAgIiFHZXRBdHQiLAogICAgICAiIVN1YiIsCiAgICAgICJcIkRlcGVuZHNPblwiIiwKICAgICAgIiFTZWxlY3QiLAogICAgICAiIUVxdWFscyIsCiAgICAgICIhSWYiLAogICAgICAiRm46OklmIiwKICAgICAgIkZuOjpBbmQiLAogICAgICAiRm46OkVxdWFscyIsCiAgICAgICJGbjo6Tm90IiwKICAgICAgIkZuOjpPciIsCiAgICAgICJGbjo6QmFzZTY0IiwKICAgICAgIkZuOjpDaWRyIiwKICAgICAgIkZuOjpGaW5kSW5NYXAiLAogICAgICAiRm46OkdldEF0dCIsCiAgICAgICJGbjo6R2V0QVpzIiwKICAgICAgIkZuOjpJbXBvcnRWYWx1ZSIsCiAgICAgICJGbjo6Sm9pbiIsCiAgICAgICJGbjo6U2VsZWN0IiwKICAgICAgIkZuOjpTcGxpdCIsCiAgICAgICJGbjo6U3ViIiwKICAgICAgIkZuOjpUcmFuc2Zvcm0iCiAgICBdCiAgfSwKICAiWmlnIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJ3aGlsZSAiLAogICAgICAiZm9yICIsCiAgICAgICJpZiAiLAogICAgICAiZWxzZSAiLAogICAgICAiZGVmZXIgIiwKICAgICAgInN3aXRjaCIsCiAgICAgICJ8fCIsCiAgICAgICImJiIsCiAgICAgICIhPSIsCiAgICAgICI9PSIKICAgIF0sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgInppZyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiLy8iCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXFxcIiIsCiAgICAgICAgInN0YXJ0IjogIlxcXCIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxuIiwKICAgICAgICAic3RhcnQiOiAiXFxcXCIKICAgICAgfQogICAgXQogIH0sCiAgIlpzaCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAifHwgIiwKICAgICAgIiYmICIsCiAgICAgICIhPSAiLAogICAgICAiPT0gIgogICAgXSwKICAgICJleHRlbnNpb25zIjogWwogICAgICAienNoIiwKICAgICAgInpzaGVudiIsCiAgICAgICJ6bG9naW4iLAogICAgICAiemxvZ291dCIsCiAgICAgICJ6cHJvZmlsZSIsCiAgICAgICJ6c2hyYyIKICAgIF0sCiAgICAiZmlsZW5hbWVzIjogWwogICAgICAiLnpzaGVudiIsCiAgICAgICIuemxvZ2luIiwKICAgICAgIi56bG9nb3V0IiwKICAgICAgIi56cHJvZmlsZSIsCiAgICAgICIuenNocmMiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbCiAgICAgIHsKICAgICAgICAiZW5kIjogIlxcXCIiLAogICAgICAgICJzdGFydCI6ICJcXFwiIgogICAgICB9LAogICAgICB7CiAgICAgICAgImVuZCI6ICInIiwKICAgICAgICAic3RhcnQiOiAiJyIKICAgICAgfQogICAgXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInpzaCIKICAgIF0KICB9LAogICJnaXRpZ25vcmUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbXSwKICAgICJmaWxlbmFtZXMiOiBbCiAgICAgICIuZ2l0aWdub3JlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJpZ25vcmUiOiB7CiAgICAiY29tcGxleGl0eWNoZWNrcyI6IFtdLAogICAgImV4dGVuc2lvbnMiOiBbXSwKICAgICJmaWxlbmFtZXMiOiBbCiAgICAgICIuaWdub3JlIgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJtNCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogW10sCiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm00IgogICAgXSwKICAgICJsaW5lX2NvbW1lbnQiOiBbCiAgICAgICIjIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogW10sCiAgICAicXVvdGVzIjogW10KICB9LAogICJudXNwZWMiOiB7CiAgICAiZXh0ZW5zaW9ucyI6IFsKICAgICAgIm51c3BlYyIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogW10sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICI8IS0tIiwKICAgICAgICAiLS0+IgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgInNlZCI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiZm9yICIsCiAgICAgICJmb3IoIiwKICAgICAgImlmICIsCiAgICAgICJpZigiLAogICAgICAic3dpdGNoICIsCiAgICAgICJ3aGlsZSAiLAogICAgICAiZWxzZSAiLAogICAgICAiYW5kICIsCiAgICAgICJvciAiLAogICAgICAibm90ICIsCiAgICAgICJpbiAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzZWQiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIiMiCiAgICBdLAogICAgIm11bHRpX2xpbmUiOiBbXSwKICAgICJxdW90ZXMiOiBbXSwKICAgICJzaGViYW5ncyI6IFsKICAgICAgInNlZCIKICAgIF0KICB9LAogICJTaWV2ZSI6IHsKICAgICJjb21wbGV4aXR5Y2hlY2tzIjogWwogICAgICAiaWYiLAogICAgICAiaWYgIiwKICAgICAgImVsc2lmIiwKICAgICAgImVsc2lmICIsCiAgICAgICJhbGxvZiIsCiAgICAgICJhbGxvZiAiLAogICAgICAiYW55b2YiLAogICAgICAiYW55b2YgIiwKICAgICAgImFsbG9mKCIsCiAgICAgICJhbnlvZigiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJzaWV2ZSIKICAgIF0sCiAgICAibGluZV9jb21tZW50IjogWwogICAgICAiIyIKICAgIF0sCiAgICAibXVsdGlfbGluZSI6IFsKICAgICAgWwogICAgICAgICIvKiIsCiAgICAgICAgIiovIgogICAgICBdCiAgICBdLAogICAgInF1b3RlcyI6IFsKICAgICAgewogICAgICAgICJlbmQiOiAiXCIiLAogICAgICAgICJzdGFydCI6ICJcIiIKICAgICAgfQogICAgXQogIH0sCiAgIlJlYXNvbk1MIjogewogICAgImNvbXBsZXhpdHljaGVja3MiOiBbCiAgICAgICJmb3IgIiwKICAgICAgImZvcigiLAogICAgICAiaWYgIiwKICAgICAgImlmKCIsCiAgICAgICJzd2l0Y2ggIiwKICAgICAgIndoaWxlICIsCiAgICAgICJlbHNlICIsCiAgICAgICJ8fCAiLAogICAgICAiJiYgIiwKICAgICAgIiE9ICIsCiAgICAgICI9PSAiCiAgICBdLAogICAgImV4dGVuc2lvbnMiOiBbCiAgICAgICJyZSIsCiAgICAgICJyZWkiCiAgICBdLAogICAgImxpbmVfY29tbWVudCI6IFsKICAgICAgIi8vIgogICAgXSwKICAgICJtdWx0aV9saW5lIjogWwogICAgICBbCiAgICAgICAgIi8qIiwKICAgICAgICAiKi8iCiAgICAgIF0KICAgIF0sCiAgICAicXVvdGVzIjogWwogICAgICB7CiAgICAgICAgImVuZCI6ICJcIiIsCiAgICAgICAgInN0YXJ0IjogIlwiIgogICAgICB9CiAgICBdCiAgfQp9Cg==` ) diff --git a/test-all.sh b/test-all.sh index b50539cf..fd52fb61 100755 --- a/test-all.sh +++ b/test-all.sh @@ -895,6 +895,21 @@ do fi done + +# Issue339 +for i in 'MATLAB ' 'Objective C ' +do + if ./scc "examples/issue339/" | grep -q "$i "; then + echo -e "${GREEN}PASSED $i Language Check" + else + echo -e "${RED}=======================================================" + echo -e "FAILED Should be able to find $i" + echo -e "=======================================================${NC}" + exit + fi +done + + # Extra case for longer languages that are normally truncated for i in 'CloudFormation (YAM' 'CloudFormation (JSO' do