<?xml version="1.0" encoding="UTF-8"?>

<Library xmlns="http://hl7.org/fhir">
  <id value="CervicalCancerScreeningDecision"/>
  <text>
    <status value="extensions"/><div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">Cervical Cancer Screening Decision Logic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">CervicalCancerScreeningDecision</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">0.1.0</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-CervicalCancerScreeningDecision.html">Cervical Cancer Screening Decision Logic</a></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Experimental: </b></th>
            <td style="padding-left: 4px;">true</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>logic-library</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2026-04-21 19:55:49+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">Hopena Health</td>
        </tr>
        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Jurisdiction: </b></th>
            <td style="padding-left: 4px;">001</td>
        </tr>
        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li><a href="Library-CervicalCancerScreeningCommon.html">Cervical Cancer Screening Common Definitions</a> version: 0.1.0</li>
                  
                </ul>
                
                
                
                
                
            </td>
        </tr>
        

        
        <tr>
          <th scope="row"><b>Parameters: </b></th>
          <td style="padding-left: 4px;">
            <table class="grid-dict">
              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>
              
                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Meets Age Criteria</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Is Within Screening Age Range</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Is Eligible For Screening</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Years Since Last HPV Test</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Has Never Been Screened</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Screening Interval Has Elapsed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Is Due For Screening</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Most Recent HPV Test Is Negative</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Needs Triage After Positive HPV</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Has Positive Triage Result</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Triage Was Negative</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Is In Post Treatment Follow Up</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Recommended Action</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Cascade Status</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Screening Interval Display</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Population Classification</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Needs Attention</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
            </table>
          </td>
        </tr>
        

        

        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
              <tr><td><pre><code class="language-cql">/*
 * CervicalCancerScreeningDecision
 *
 * Screening eligibility and scheduling logic for cervical cancer CDS,
 * implementing WHO guideline Algorithm 5 (HPV DNA + VIA triage).
 *
 * This library determines:
 *   - Whether a patient is eligible for cervical cancer screening
 *   - Whether screening is currently due
 *   - The patient's current position in the screening cascade
 *   - The recommended next action
 *
 * WHO Recommendations covered:
 *   General population: 1, 2, 5, 6, 7, 8, 14
 *   WLHIV: 21, 22, 25, 26, 27, 28, 34
 *
 * @author  Dan Heslinga / Hopena Health
 * @version 0.1.0
 * @date    2026-03-08
 */

library CervicalCancerScreeningDecision version '0.1.0'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1'
include CervicalCancerScreeningCommon version '0.1.0' called Common

/*
 * =============================================================================
 * SCREENING ELIGIBILITY
 * =============================================================================
 *
 * @guidance WHO Rec 5 (general): Start at age 30
 *           WHO Rec 25 (WLHIV): Start at age 25
 *           WHO Rec 6/26: Stop after age 50 with adequate prior screening
 *           WHO Rec 7/27: Prioritize ages 30-49 (general) / 25-49 (WLHIV)
 */

context Patient

/*
 * @output Boolean — true if patient meets basic demographic criteria
 * @pseudocode Patient is female AND age &gt;= minimum screening age
 */
define &quot;Meets Age Criteria&quot;:
  Common.&quot;Is Female&quot;
    and Common.&quot;Age In Years&quot; &gt;= Common.&quot;Minimum Screening Age&quot;

/*
 * @output Boolean — true if patient is within the target screening age range
 * @pseudocode Patient age &lt;= maximum screening age (50)
 */
define &quot;Is Within Screening Age Range&quot;:
  Common.&quot;Age In Years&quot; &lt;= Common.&quot;Maximum Screening Age&quot;

/*
 * @output Boolean — true if patient is eligible for cervical cancer screening
 * @pseudocode Patient is female, meets age criteria, no cervical cancer diagnosis
 * @guidance Patients with known cervical cancer should be managed through
 *           oncology, not the screening pathway.
 */
define &quot;Is Eligible For Screening&quot;:
  &quot;Meets Age Criteria&quot;
    and not Common.&quot;Has Cervical Cancer Diagnosis&quot;

/*
 * =============================================================================
 * SCREENING DUE DETERMINATION
 * =============================================================================
 *
 * @guidance WHO Rec 8 (general): Every 5-10 years with HPV DNA
 *           WHO Rec 28 (WLHIV): Every 3-5 years with HPV DNA
 *           Using lower bound (most conservative) for &quot;due&quot; calculation
 */

/*
 * @output Integer — years since most recent HPV DNA test, or null if never screened
 */
define &quot;Years Since Last HPV Test&quot;:
  if Common.&quot;Has Ever Been Screened With HPV&quot;
  then years between Common.&quot;Date Of Most Recent HPV Test&quot; and Today()
  else null

/*
 * @output Boolean — true if patient has never been screened with HPV DNA
 */
define &quot;Has Never Been Screened&quot;:
  not Common.&quot;Has Ever Been Screened With HPV&quot;

/*
 * @output Boolean — true if screening interval has elapsed since last HPV test
 * @pseudocode Years since last test &gt;= screening interval for this population
 */
define &quot;Screening Interval Has Elapsed&quot;:
  Common.&quot;Has Ever Been Screened With HPV&quot;
    and &quot;Years Since Last HPV Test&quot; &gt;= Common.&quot;Screening Interval Years&quot;

/*
 * @output Boolean — true if patient is due for routine screening
 * @pseudocode Patient is eligible AND (never screened OR interval elapsed)
 */
define &quot;Is Due For Screening&quot;:
  &quot;Is Eligible For Screening&quot;
    and (&quot;Has Never Been Screened&quot; or &quot;Screening Interval Has Elapsed&quot;)

/*
 * =============================================================================
 * CASCADE POSITION — Where is the patient in the screening pathway?
 * =============================================================================
 *
 * Algorithm 5 cascade:
 *   1. Not yet screened → Screen
 *   2. HPV negative, interval not elapsed → Routine recall
 *   3. HPV negative, interval elapsed → Re-screen
 *   4. HPV positive, no VIA yet → Needs VIA triage
 *   5. HPV positive, VIA negative → Follow-up retest (12/24 months)
 *   6. HPV positive, VIA positive → Needs treatment
 *   7. Treated → Post-treatment follow-up
 *   8. Cervical cancer → Refer to oncology
 *
 * This library determines cascade position; downstream libraries
 * (TriageDecision, TreatmentDecision, FollowUpDecision) handle
 * the detailed logic for positions 4-7.
 */

/*
 * @output Boolean — true if most recent HPV test was negative
 */
define &quot;Most Recent HPV Test Is Negative&quot;:
  Common.&quot;Has Ever Been Screened With HPV&quot;
    and not Common.&quot;Most Recent HPV Test Is Positive&quot;

/*
 * @output Boolean — true if patient has a positive HPV result that
 *         has not yet been followed up with VIA triage
 * @pseudocode HPV+ AND (no VIA result OR most recent VIA is before the HPV test)
 */
define &quot;Needs Triage After Positive HPV&quot;:
  Common.&quot;Most Recent HPV Test Is Positive&quot;
    and (
      not exists(Common.&quot;VIA Screening Results&quot;)
      or Common.&quot;Date Of Most Recent VIA&quot; before Common.&quot;Date Of Most Recent HPV Test&quot;
    )

/*
 * @output Boolean — true if HPV+ and VIA triage was positive (needs treatment)
 * @pseudocode HPV+ AND VIA+ AND VIA was after HPV test
 */
define &quot;Has Positive Triage Result&quot;:
  Common.&quot;Most Recent HPV Test Is Positive&quot;
    and Common.&quot;Most Recent VIA Is Positive&quot;
    and Common.&quot;Date Of Most Recent VIA&quot; on or after Common.&quot;Date Of Most Recent HPV Test&quot;

/*
 * @output Boolean — true if HPV+ but VIA triage was negative (needs follow-up retest)
 * @pseudocode HPV+ AND VIA- AND VIA was after HPV test
 */
define &quot;Triage Was Negative&quot;:
  Common.&quot;Most Recent HPV Test Is Positive&quot;
    and not Common.&quot;Most Recent VIA Is Positive&quot;
    and Common.&quot;Date Of Most Recent VIA&quot; on or after Common.&quot;Date Of Most Recent HPV Test&quot;

/*
 * @output Boolean — true if patient is in post-treatment follow-up window
 * @pseudocode Patient has been treated AND months since treatment &lt; 24
 *             (covers both 12-month and 12+12-month WLHIV windows)
 */
define &quot;Is In Post Treatment Follow Up&quot;:
  Common.&quot;Has Been Treated&quot;
    and Common.&quot;Months Since Treatment&quot; is not null
    and Common.&quot;Months Since Treatment&quot; &lt; 24

/*
 * =============================================================================
 * RECOMMENDED ACTION — Clinician-facing guidance
 * =============================================================================
 *
 * @guidance These are the primary outputs consumed by CDS hooks / alerts.
 *           Each returns a human-readable recommendation string.
 */

/*
 * @output String — the recommended next action for this patient
 * @pseudocode Decision tree based on cascade position
 */
define &quot;Recommended Action&quot;:
  case
    // Exclusion: cervical cancer diagnosed
    when Common.&quot;Has Cervical Cancer Diagnosis&quot;
      then 'Refer to oncology for cervical cancer management'

    // Not eligible (wrong sex or too young)
    when not &quot;Meets Age Criteria&quot;
      then 'Not yet eligible for cervical cancer screening'

    // Post-treatment follow-up in progress
    when &quot;Is In Post Treatment Follow Up&quot;
      then 'Post-treatment follow-up: retest with HPV DNA at 12 months post-treatment'

    // HPV+ needs VIA triage
    when &quot;Needs Triage After Positive HPV&quot;
      then 'HPV test is positive — perform VIA triage'

    // HPV+ VIA+ needs treatment
    when &quot;Has Positive Triage Result&quot;
      then 'HPV-positive and VIA-positive — assess ablation eligibility and treat'

    // HPV+ VIA- needs follow-up retest
    when &quot;Triage Was Negative&quot;
      then 'HPV-positive but VIA-negative — retest with HPV DNA in '
           + ToString(Common.&quot;Post Triage Negative Retest Months&quot;)
           + ' months'

    // Never screened and eligible
    when &quot;Has Never Been Screened&quot; and &quot;Is Eligible For Screening&quot;
      then 'Screen with HPV DNA test'

    // Interval elapsed and eligible
    when &quot;Screening Interval Has Elapsed&quot; and &quot;Is Eligible For Screening&quot;
      then 'Routine re-screening due — screen with HPV DNA test'

    // HPV negative, not yet due
    when &quot;Most Recent HPV Test Is Negative&quot; and not &quot;Screening Interval Has Elapsed&quot;
      then 'Last HPV test was negative — next screening due in '
           + ToString(Common.&quot;Screening Interval Years&quot; - &quot;Years Since Last HPV Test&quot;)
           + ' years'

    // Over age 50 — evaluate for cessation
    when Common.&quot;Age In Years&quot; &gt; Common.&quot;Maximum Screening Age&quot;
      then 'Age over 50 — assess for screening cessation (requires 2 consecutive negative HPV tests)'

    else 'Unable to determine recommendation — review patient data'
  end

/*
 * @output String — coded cascade position for downstream logic
 * @pseudocode Returns a machine-readable status for integration
 */
define &quot;Cascade Status&quot;:
  case
    when Common.&quot;Has Cervical Cancer Diagnosis&quot; then 'cervical-cancer'
    when not &quot;Meets Age Criteria&quot; then 'not-eligible'
    when &quot;Is In Post Treatment Follow Up&quot; then 'post-treatment-follow-up'
    when &quot;Needs Triage After Positive HPV&quot; then 'needs-triage'
    when &quot;Has Positive Triage Result&quot; then 'needs-treatment'
    when &quot;Triage Was Negative&quot; then 'triage-negative-follow-up'
    when &quot;Has Never Been Screened&quot; and &quot;Is Eligible For Screening&quot; then 'due-for-screening'
    when &quot;Screening Interval Has Elapsed&quot; and &quot;Is Eligible For Screening&quot; then 'due-for-screening'
    when &quot;Most Recent HPV Test Is Negative&quot; then 'routine-recall'
    when Common.&quot;Age In Years&quot; &gt; Common.&quot;Maximum Screening Age&quot; then 'assess-cessation'
    else 'unknown'
  end

/*
 * =============================================================================
 * SCREENING INTERVAL DISPLAY — For clinician-facing display
 * =============================================================================
 */

/*
 * @output String — human-readable screening interval for this patient
 */
define &quot;Screening Interval Display&quot;:
  if Common.&quot;Is WLHIV&quot;
  then '3-5 years (WLHIV)'
  else '5-10 years (general population)'

/*
 * @output String — human-readable population classification
 */
define &quot;Population Classification&quot;:
  if Common.&quot;Is WLHIV&quot;
  then 'Woman living with HIV (WLHIV) — WHO Recommendations 21-34'
  else 'General population — WHO Recommendations 1-14'

/*
 * =============================================================================
 * SUMMARY OUTPUTS — Structured data for CDS integration
 * =============================================================================
 */

/*
 * @output Boolean — overall flag: does this patient need clinical attention?
 * @pseudocode True if any action is recommended (screening, triage, treatment, follow-up)
 */
define &quot;Needs Attention&quot;:
  &quot;Is Due For Screening&quot;
    or &quot;Needs Triage After Positive HPV&quot;
    or &quot;Has Positive Triage Result&quot;
    or &quot;Is In Post Treatment Follow Up&quot;
    or Common.&quot;Has Cervical Cancer Diagnosis&quot;
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><b>Content: </b> application/elm+json</th></tr>
              <tr><td><pre><code>Encoded data (66632 characters)</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
    </table>
</div>
</div>
  </text>
  <url value="https://hopenahealth.com/fhir/cervical-cancer-cds/Library/CervicalCancerScreeningDecision"/>
  <version value="0.1.0"/>
  <name value="CervicalCancerScreeningDecision"/>
  <title value="Cervical Cancer Screening Decision Logic"/>
  <status value="draft"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-04-21T19:55:49+00:00"/>
  <publisher value="Hopena Health"/>
  <contact>
    <name value="Hopena Health"/>
    <telecom>
      <system value="url"/>
      <value value="https://hopenahealth.com"/>
    </telecom>
  </contact>
  <contact>
    <name value="Dan Heslinga"/>
    <telecom>
      <system value="url"/>
      <value value="https://hopenahealth.com"/>
    </telecom>
  </contact>
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
    </coding>
  </jurisdiction>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Common"/>
    <resource value="https://hopenahealth.com/fhir/cervical-cancer-cds/Library/CervicalCancerScreeningCommon|0.1.0"/>
  </relatedArtifact>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Meets Age Criteria"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Is Within Screening Age Range"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Is Eligible For Screening"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Years Since Last HPV Test"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="integer"/>
  </parameter>
  <parameter>
    <name value="Has Never Been Screened"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Screening Interval Has Elapsed"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Is Due For Screening"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Most Recent HPV Test Is Negative"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Needs Triage After Positive HPV"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Has Positive Triage Result"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Triage Was Negative"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Is In Post Treatment Follow Up"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Recommended Action"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Cascade Status"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Screening Interval Display"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Population Classification"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Needs Attention"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data value="LyoKICogQ2VydmljYWxDYW5jZXJTY3JlZW5pbmdEZWNpc2lvbgogKgogKiBTY3JlZW5pbmcgZWxpZ2liaWxpdHkgYW5kIHNjaGVkdWxpbmcgbG9naWMgZm9yIGNlcnZpY2FsIGNhbmNlciBDRFMsCiAqIGltcGxlbWVudGluZyBXSE8gZ3VpZGVsaW5lIEFsZ29yaXRobSA1IChIUFYgRE5BICsgVklBIHRyaWFnZSkuCiAqCiAqIFRoaXMgbGlicmFyeSBkZXRlcm1pbmVzOgogKiAgIC0gV2hldGhlciBhIHBhdGllbnQgaXMgZWxpZ2libGUgZm9yIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcKICogICAtIFdoZXRoZXIgc2NyZWVuaW5nIGlzIGN1cnJlbnRseSBkdWUKICogICAtIFRoZSBwYXRpZW50J3MgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgc2NyZWVuaW5nIGNhc2NhZGUKICogICAtIFRoZSByZWNvbW1lbmRlZCBuZXh0IGFjdGlvbgogKgogKiBXSE8gUmVjb21tZW5kYXRpb25zIGNvdmVyZWQ6CiAqICAgR2VuZXJhbCBwb3B1bGF0aW9uOiAxLCAyLCA1LCA2LCA3LCA4LCAxNAogKiAgIFdMSElWOiAyMSwgMjIsIDI1LCAyNiwgMjcsIDI4LCAzNAogKgogKiBAYXV0aG9yICBEYW4gSGVzbGluZ2EgLyBIb3BlbmEgSGVhbHRoCiAqIEB2ZXJzaW9uIDAuMS4wCiAqIEBkYXRlICAgIDIwMjYtMDMtMDgKICovCgpsaWJyYXJ5IENlcnZpY2FsQ2FuY2VyU2NyZWVuaW5nRGVjaXNpb24gdmVyc2lvbiAnMC4xLjAnCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBDZXJ2aWNhbENhbmNlclNjcmVlbmluZ0NvbW1vbiB2ZXJzaW9uICcwLjEuMCcgY2FsbGVkIENvbW1vbgoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogU0NSRUVOSU5HIEVMSUdJQklMSVRZCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqCiAqIEBndWlkYW5jZSBXSE8gUmVjIDUgKGdlbmVyYWwpOiBTdGFydCBhdCBhZ2UgMzAKICogICAgICAgICAgIFdITyBSZWMgMjUgKFdMSElWKTogU3RhcnQgYXQgYWdlIDI1CiAqICAgICAgICAgICBXSE8gUmVjIDYvMjY6IFN0b3AgYWZ0ZXIgYWdlIDUwIHdpdGggYWRlcXVhdGUgcHJpb3Igc2NyZWVuaW5nCiAqICAgICAgICAgICBXSE8gUmVjIDcvMjc6IFByaW9yaXRpemUgYWdlcyAzMC00OSAoZ2VuZXJhbCkgLyAyNS00OSAoV0xISVYpCiAqLwoKY29udGV4dCBQYXRpZW50CgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgcGF0aWVudCBtZWV0cyBiYXNpYyBkZW1vZ3JhcGhpYyBjcml0ZXJpYQogKiBAcHNldWRvY29kZSBQYXRpZW50IGlzIGZlbWFsZSBBTkQgYWdlID49IG1pbmltdW0gc2NyZWVuaW5nIGFnZQogKi8KZGVmaW5lICJNZWV0cyBBZ2UgQ3JpdGVyaWEiOgogIENvbW1vbi4iSXMgRmVtYWxlIgogICAgYW5kIENvbW1vbi4iQWdlIEluIFllYXJzIiA+PSBDb21tb24uIk1pbmltdW0gU2NyZWVuaW5nIEFnZSIKCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBwYXRpZW50IGlzIHdpdGhpbiB0aGUgdGFyZ2V0IHNjcmVlbmluZyBhZ2UgcmFuZ2UKICogQHBzZXVkb2NvZGUgUGF0aWVudCBhZ2UgPD0gbWF4aW11bSBzY3JlZW5pbmcgYWdlICg1MCkKICovCmRlZmluZSAiSXMgV2l0aGluIFNjcmVlbmluZyBBZ2UgUmFuZ2UiOgogIENvbW1vbi4iQWdlIEluIFllYXJzIiA8PSBDb21tb24uIk1heGltdW0gU2NyZWVuaW5nIEFnZSIKCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBwYXRpZW50IGlzIGVsaWdpYmxlIGZvciBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nCiAqIEBwc2V1ZG9jb2RlIFBhdGllbnQgaXMgZmVtYWxlLCBtZWV0cyBhZ2UgY3JpdGVyaWEsIG5vIGNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMKICogQGd1aWRhbmNlIFBhdGllbnRzIHdpdGgga25vd24gY2VydmljYWwgY2FuY2VyIHNob3VsZCBiZSBtYW5hZ2VkIHRocm91Z2gKICogICAgICAgICAgIG9uY29sb2d5LCBub3QgdGhlIHNjcmVlbmluZyBwYXRod2F5LgogKi8KZGVmaW5lICJJcyBFbGlnaWJsZSBGb3IgU2NyZWVuaW5nIjoKICAiTWVldHMgQWdlIENyaXRlcmlhIgogICAgYW5kIG5vdCBDb21tb24uIkhhcyBDZXJ2aWNhbCBDYW5jZXIgRGlhZ25vc2lzIgoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogU0NSRUVOSU5HIERVRSBERVRFUk1JTkFUSU9OCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqCiAqIEBndWlkYW5jZSBXSE8gUmVjIDggKGdlbmVyYWwpOiBFdmVyeSA1LTEwIHllYXJzIHdpdGggSFBWIEROQQogKiAgICAgICAgICAgV0hPIFJlYyAyOCAoV0xISVYpOiBFdmVyeSAzLTUgeWVhcnMgd2l0aCBIUFYgRE5BCiAqICAgICAgICAgICBVc2luZyBsb3dlciBib3VuZCAobW9zdCBjb25zZXJ2YXRpdmUpIGZvciAiZHVlIiBjYWxjdWxhdGlvbgogKi8KCi8qCiAqIEBvdXRwdXQgSW50ZWdlciDigJQgeWVhcnMgc2luY2UgbW9zdCByZWNlbnQgSFBWIEROQSB0ZXN0LCBvciBudWxsIGlmIG5ldmVyIHNjcmVlbmVkCiAqLwpkZWZpbmUgIlllYXJzIFNpbmNlIExhc3QgSFBWIFRlc3QiOgogIGlmIENvbW1vbi4iSGFzIEV2ZXIgQmVlbiBTY3JlZW5lZCBXaXRoIEhQViIKICB0aGVuIHllYXJzIGJldHdlZW4gQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IiBhbmQgVG9kYXkoKQogIGVsc2UgbnVsbAoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIHBhdGllbnQgaGFzIG5ldmVyIGJlZW4gc2NyZWVuZWQgd2l0aCBIUFYgRE5BCiAqLwpkZWZpbmUgIkhhcyBOZXZlciBCZWVuIFNjcmVlbmVkIjoKICBub3QgQ29tbW9uLiJIYXMgRXZlciBCZWVuIFNjcmVlbmVkIFdpdGggSFBWIgoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIHNjcmVlbmluZyBpbnRlcnZhbCBoYXMgZWxhcHNlZCBzaW5jZSBsYXN0IEhQViB0ZXN0CiAqIEBwc2V1ZG9jb2RlIFllYXJzIHNpbmNlIGxhc3QgdGVzdCA+PSBzY3JlZW5pbmcgaW50ZXJ2YWwgZm9yIHRoaXMgcG9wdWxhdGlvbgogKi8KZGVmaW5lICJTY3JlZW5pbmcgSW50ZXJ2YWwgSGFzIEVsYXBzZWQiOgogIENvbW1vbi4iSGFzIEV2ZXIgQmVlbiBTY3JlZW5lZCBXaXRoIEhQViIKICAgIGFuZCAiWWVhcnMgU2luY2UgTGFzdCBIUFYgVGVzdCIgPj0gQ29tbW9uLiJTY3JlZW5pbmcgSW50ZXJ2YWwgWWVhcnMiCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgcGF0aWVudCBpcyBkdWUgZm9yIHJvdXRpbmUgc2NyZWVuaW5nCiAqIEBwc2V1ZG9jb2RlIFBhdGllbnQgaXMgZWxpZ2libGUgQU5EIChuZXZlciBzY3JlZW5lZCBPUiBpbnRlcnZhbCBlbGFwc2VkKQogKi8KZGVmaW5lICJJcyBEdWUgRm9yIFNjcmVlbmluZyI6CiAgIklzIEVsaWdpYmxlIEZvciBTY3JlZW5pbmciCiAgICBhbmQgKCJIYXMgTmV2ZXIgQmVlbiBTY3JlZW5lZCIgb3IgIlNjcmVlbmluZyBJbnRlcnZhbCBIYXMgRWxhcHNlZCIpCgovKgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBDQVNDQURFIFBPU0lUSU9OIOKAlCBXaGVyZSBpcyB0aGUgcGF0aWVudCBpbiB0aGUgc2NyZWVuaW5nIHBhdGh3YXk/CiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqCiAqIEFsZ29yaXRobSA1IGNhc2NhZGU6CiAqICAgMS4gTm90IHlldCBzY3JlZW5lZCDihpIgU2NyZWVuCiAqICAgMi4gSFBWIG5lZ2F0aXZlLCBpbnRlcnZhbCBub3QgZWxhcHNlZCDihpIgUm91dGluZSByZWNhbGwKICogICAzLiBIUFYgbmVnYXRpdmUsIGludGVydmFsIGVsYXBzZWQg4oaSIFJlLXNjcmVlbgogKiAgIDQuIEhQViBwb3NpdGl2ZSwgbm8gVklBIHlldCDihpIgTmVlZHMgVklBIHRyaWFnZQogKiAgIDUuIEhQViBwb3NpdGl2ZSwgVklBIG5lZ2F0aXZlIOKGkiBGb2xsb3ctdXAgcmV0ZXN0ICgxMi8yNCBtb250aHMpCiAqICAgNi4gSFBWIHBvc2l0aXZlLCBWSUEgcG9zaXRpdmUg4oaSIE5lZWRzIHRyZWF0bWVudAogKiAgIDcuIFRyZWF0ZWQg4oaSIFBvc3QtdHJlYXRtZW50IGZvbGxvdy11cAogKiAgIDguIENlcnZpY2FsIGNhbmNlciDihpIgUmVmZXIgdG8gb25jb2xvZ3kKICoKICogVGhpcyBsaWJyYXJ5IGRldGVybWluZXMgY2FzY2FkZSBwb3NpdGlvbjsgZG93bnN0cmVhbSBsaWJyYXJpZXMKICogKFRyaWFnZURlY2lzaW9uLCBUcmVhdG1lbnREZWNpc2lvbiwgRm9sbG93VXBEZWNpc2lvbikgaGFuZGxlCiAqIHRoZSBkZXRhaWxlZCBsb2dpYyBmb3IgcG9zaXRpb25zIDQtNy4KICovCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgbW9zdCByZWNlbnQgSFBWIHRlc3Qgd2FzIG5lZ2F0aXZlCiAqLwpkZWZpbmUgIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIE5lZ2F0aXZlIjoKICBDb21tb24uIkhhcyBFdmVyIEJlZW4gU2NyZWVuZWQgV2l0aCBIUFYiCiAgICBhbmQgbm90IENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgcGF0aWVudCBoYXMgYSBwb3NpdGl2ZSBIUFYgcmVzdWx0IHRoYXQKICogICAgICAgICBoYXMgbm90IHlldCBiZWVuIGZvbGxvd2VkIHVwIHdpdGggVklBIHRyaWFnZQogKiBAcHNldWRvY29kZSBIUFYrIEFORCAobm8gVklBIHJlc3VsdCBPUiBtb3N0IHJlY2VudCBWSUEgaXMgYmVmb3JlIHRoZSBIUFYgdGVzdCkKICovCmRlZmluZSAiTmVlZHMgVHJpYWdlIEFmdGVyIFBvc2l0aXZlIEhQViI6CiAgQ29tbW9uLiJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBQb3NpdGl2ZSIKICAgIGFuZCAoCiAgICAgIG5vdCBleGlzdHMoQ29tbW9uLiJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiKQogICAgICBvciBDb21tb24uIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiBiZWZvcmUgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IgogICAgKQoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIEhQVisgYW5kIFZJQSB0cmlhZ2Ugd2FzIHBvc2l0aXZlIChuZWVkcyB0cmVhdG1lbnQpCiAqIEBwc2V1ZG9jb2RlIEhQVisgQU5EIFZJQSsgQU5EIFZJQSB3YXMgYWZ0ZXIgSFBWIHRlc3QKICovCmRlZmluZSAiSGFzIFBvc2l0aXZlIFRyaWFnZSBSZXN1bHQiOgogIENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiCiAgICBhbmQgQ29tbW9uLiJNb3N0IFJlY2VudCBWSUEgSXMgUG9zaXRpdmUiCiAgICBhbmQgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IFZJQSIgb24gb3IgYWZ0ZXIgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IgoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIEhQVisgYnV0IFZJQSB0cmlhZ2Ugd2FzIG5lZ2F0aXZlIChuZWVkcyBmb2xsb3ctdXAgcmV0ZXN0KQogKiBAcHNldWRvY29kZSBIUFYrIEFORCBWSUEtIEFORCBWSUEgd2FzIGFmdGVyIEhQViB0ZXN0CiAqLwpkZWZpbmUgIlRyaWFnZSBXYXMgTmVnYXRpdmUiOgogIENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiCiAgICBhbmQgbm90IENvbW1vbi4iTW9zdCBSZWNlbnQgVklBIElzIFBvc2l0aXZlIgogICAgYW5kIENvbW1vbi4iRGF0ZSBPZiBNb3N0IFJlY2VudCBWSUEiIG9uIG9yIGFmdGVyIENvbW1vbi4iRGF0ZSBPZiBNb3N0IFJlY2VudCBIUFYgVGVzdCIKCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBwYXRpZW50IGlzIGluIHBvc3QtdHJlYXRtZW50IGZvbGxvdy11cCB3aW5kb3cKICogQHBzZXVkb2NvZGUgUGF0aWVudCBoYXMgYmVlbiB0cmVhdGVkIEFORCBtb250aHMgc2luY2UgdHJlYXRtZW50IDwgMjQKICogICAgICAgICAgICAgKGNvdmVycyBib3RoIDEyLW1vbnRoIGFuZCAxMisxMi1tb250aCBXTEhJViB3aW5kb3dzKQogKi8KZGVmaW5lICJJcyBJbiBQb3N0IFRyZWF0bWVudCBGb2xsb3cgVXAiOgogIENvbW1vbi4iSGFzIEJlZW4gVHJlYXRlZCIKICAgIGFuZCBDb21tb24uIk1vbnRocyBTaW5jZSBUcmVhdG1lbnQiIGlzIG5vdCBudWxsCiAgICBhbmQgQ29tbW9uLiJNb250aHMgU2luY2UgVHJlYXRtZW50IiA8IDI0CgovKgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBSRUNPTU1FTkRFRCBBQ1RJT04g4oCUIENsaW5pY2lhbi1mYWNpbmcgZ3VpZGFuY2UKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICoKICogQGd1aWRhbmNlIFRoZXNlIGFyZSB0aGUgcHJpbWFyeSBvdXRwdXRzIGNvbnN1bWVkIGJ5IENEUyBob29rcyAvIGFsZXJ0cy4KICogICAgICAgICAgIEVhY2ggcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIHJlY29tbWVuZGF0aW9uIHN0cmluZy4KICovCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgdGhlIHJlY29tbWVuZGVkIG5leHQgYWN0aW9uIGZvciB0aGlzIHBhdGllbnQKICogQHBzZXVkb2NvZGUgRGVjaXNpb24gdHJlZSBiYXNlZCBvbiBjYXNjYWRlIHBvc2l0aW9uCiAqLwpkZWZpbmUgIlJlY29tbWVuZGVkIEFjdGlvbiI6CiAgY2FzZQogICAgLy8gRXhjbHVzaW9uOiBjZXJ2aWNhbCBjYW5jZXIgZGlhZ25vc2VkCiAgICB3aGVuIENvbW1vbi4iSGFzIENlcnZpY2FsIENhbmNlciBEaWFnbm9zaXMiCiAgICAgIHRoZW4gJ1JlZmVyIHRvIG9uY29sb2d5IGZvciBjZXJ2aWNhbCBjYW5jZXIgbWFuYWdlbWVudCcKCiAgICAvLyBOb3QgZWxpZ2libGUgKHdyb25nIHNleCBvciB0b28geW91bmcpCiAgICB3aGVuIG5vdCAiTWVldHMgQWdlIENyaXRlcmlhIgogICAgICB0aGVuICdOb3QgeWV0IGVsaWdpYmxlIGZvciBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nJwoKICAgIC8vIFBvc3QtdHJlYXRtZW50IGZvbGxvdy11cCBpbiBwcm9ncmVzcwogICAgd2hlbiAiSXMgSW4gUG9zdCBUcmVhdG1lbnQgRm9sbG93IFVwIgogICAgICB0aGVuICdQb3N0LXRyZWF0bWVudCBmb2xsb3ctdXA6IHJldGVzdCB3aXRoIEhQViBETkEgYXQgMTIgbW9udGhzIHBvc3QtdHJlYXRtZW50JwoKICAgIC8vIEhQVisgbmVlZHMgVklBIHRyaWFnZQogICAgd2hlbiAiTmVlZHMgVHJpYWdlIEFmdGVyIFBvc2l0aXZlIEhQViIKICAgICAgdGhlbiAnSFBWIHRlc3QgaXMgcG9zaXRpdmUg4oCUIHBlcmZvcm0gVklBIHRyaWFnZScKCiAgICAvLyBIUFYrIFZJQSsgbmVlZHMgdHJlYXRtZW50CiAgICB3aGVuICJIYXMgUG9zaXRpdmUgVHJpYWdlIFJlc3VsdCIKICAgICAgdGhlbiAnSFBWLXBvc2l0aXZlIGFuZCBWSUEtcG9zaXRpdmUg4oCUIGFzc2VzcyBhYmxhdGlvbiBlbGlnaWJpbGl0eSBhbmQgdHJlYXQnCgogICAgLy8gSFBWKyBWSUEtIG5lZWRzIGZvbGxvdy11cCByZXRlc3QKICAgIHdoZW4gIlRyaWFnZSBXYXMgTmVnYXRpdmUiCiAgICAgIHRoZW4gJ0hQVi1wb3NpdGl2ZSBidXQgVklBLW5lZ2F0aXZlIOKAlCByZXRlc3Qgd2l0aCBIUFYgRE5BIGluICcKICAgICAgICAgICArIFRvU3RyaW5nKENvbW1vbi4iUG9zdCBUcmlhZ2UgTmVnYXRpdmUgUmV0ZXN0IE1vbnRocyIpCiAgICAgICAgICAgKyAnIG1vbnRocycKCiAgICAvLyBOZXZlciBzY3JlZW5lZCBhbmQgZWxpZ2libGUKICAgIHdoZW4gIkhhcyBOZXZlciBCZWVuIFNjcmVlbmVkIiBhbmQgIklzIEVsaWdpYmxlIEZvciBTY3JlZW5pbmciCiAgICAgIHRoZW4gJ1NjcmVlbiB3aXRoIEhQViBETkEgdGVzdCcKCiAgICAvLyBJbnRlcnZhbCBlbGFwc2VkIGFuZCBlbGlnaWJsZQogICAgd2hlbiAiU2NyZWVuaW5nIEludGVydmFsIEhhcyBFbGFwc2VkIiBhbmQgIklzIEVsaWdpYmxlIEZvciBTY3JlZW5pbmciCiAgICAgIHRoZW4gJ1JvdXRpbmUgcmUtc2NyZWVuaW5nIGR1ZSDigJQgc2NyZWVuIHdpdGggSFBWIEROQSB0ZXN0JwoKICAgIC8vIEhQViBuZWdhdGl2ZSwgbm90IHlldCBkdWUKICAgIHdoZW4gIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIE5lZ2F0aXZlIiBhbmQgbm90ICJTY3JlZW5pbmcgSW50ZXJ2YWwgSGFzIEVsYXBzZWQiCiAgICAgIHRoZW4gJ0xhc3QgSFBWIHRlc3Qgd2FzIG5lZ2F0aXZlIOKAlCBuZXh0IHNjcmVlbmluZyBkdWUgaW4gJwogICAgICAgICAgICsgVG9TdHJpbmcoQ29tbW9uLiJTY3JlZW5pbmcgSW50ZXJ2YWwgWWVhcnMiIC0gIlllYXJzIFNpbmNlIExhc3QgSFBWIFRlc3QiKQogICAgICAgICAgICsgJyB5ZWFycycKCiAgICAvLyBPdmVyIGFnZSA1MCDigJQgZXZhbHVhdGUgZm9yIGNlc3NhdGlvbgogICAgd2hlbiBDb21tb24uIkFnZSBJbiBZZWFycyIgPiBDb21tb24uIk1heGltdW0gU2NyZWVuaW5nIEFnZSIKICAgICAgdGhlbiAnQWdlIG92ZXIgNTAg4oCUIGFzc2VzcyBmb3Igc2NyZWVuaW5nIGNlc3NhdGlvbiAocmVxdWlyZXMgMiBjb25zZWN1dGl2ZSBuZWdhdGl2ZSBIUFYgdGVzdHMpJwoKICAgIGVsc2UgJ1VuYWJsZSB0byBkZXRlcm1pbmUgcmVjb21tZW5kYXRpb24g4oCUIHJldmlldyBwYXRpZW50IGRhdGEnCiAgZW5kCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgY29kZWQgY2FzY2FkZSBwb3NpdGlvbiBmb3IgZG93bnN0cmVhbSBsb2dpYwogKiBAcHNldWRvY29kZSBSZXR1cm5zIGEgbWFjaGluZS1yZWFkYWJsZSBzdGF0dXMgZm9yIGludGVncmF0aW9uCiAqLwpkZWZpbmUgIkNhc2NhZGUgU3RhdHVzIjoKICBjYXNlCiAgICB3aGVuIENvbW1vbi4iSGFzIENlcnZpY2FsIENhbmNlciBEaWFnbm9zaXMiIHRoZW4gJ2NlcnZpY2FsLWNhbmNlcicKICAgIHdoZW4gbm90ICJNZWV0cyBBZ2UgQ3JpdGVyaWEiIHRoZW4gJ25vdC1lbGlnaWJsZScKICAgIHdoZW4gIklzIEluIFBvc3QgVHJlYXRtZW50IEZvbGxvdyBVcCIgdGhlbiAncG9zdC10cmVhdG1lbnQtZm9sbG93LXVwJwogICAgd2hlbiAiTmVlZHMgVHJpYWdlIEFmdGVyIFBvc2l0aXZlIEhQViIgdGhlbiAnbmVlZHMtdHJpYWdlJwogICAgd2hlbiAiSGFzIFBvc2l0aXZlIFRyaWFnZSBSZXN1bHQiIHRoZW4gJ25lZWRzLXRyZWF0bWVudCcKICAgIHdoZW4gIlRyaWFnZSBXYXMgTmVnYXRpdmUiIHRoZW4gJ3RyaWFnZS1uZWdhdGl2ZS1mb2xsb3ctdXAnCiAgICB3aGVuICJIYXMgTmV2ZXIgQmVlbiBTY3JlZW5lZCIgYW5kICJJcyBFbGlnaWJsZSBGb3IgU2NyZWVuaW5nIiB0aGVuICdkdWUtZm9yLXNjcmVlbmluZycKICAgIHdoZW4gIlNjcmVlbmluZyBJbnRlcnZhbCBIYXMgRWxhcHNlZCIgYW5kICJJcyBFbGlnaWJsZSBGb3IgU2NyZWVuaW5nIiB0aGVuICdkdWUtZm9yLXNjcmVlbmluZycKICAgIHdoZW4gIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIE5lZ2F0aXZlIiB0aGVuICdyb3V0aW5lLXJlY2FsbCcKICAgIHdoZW4gQ29tbW9uLiJBZ2UgSW4gWWVhcnMiID4gQ29tbW9uLiJNYXhpbXVtIFNjcmVlbmluZyBBZ2UiIHRoZW4gJ2Fzc2Vzcy1jZXNzYXRpb24nCiAgICBlbHNlICd1bmtub3duJwogIGVuZAoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogU0NSRUVOSU5HIElOVEVSVkFMIERJU1BMQVkg4oCUIEZvciBjbGluaWNpYW4tZmFjaW5nIGRpc3BsYXkKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgaHVtYW4tcmVhZGFibGUgc2NyZWVuaW5nIGludGVydmFsIGZvciB0aGlzIHBhdGllbnQKICovCmRlZmluZSAiU2NyZWVuaW5nIEludGVydmFsIERpc3BsYXkiOgogIGlmIENvbW1vbi4iSXMgV0xISVYiCiAgdGhlbiAnMy01IHllYXJzIChXTEhJViknCiAgZWxzZSAnNS0xMCB5ZWFycyAoZ2VuZXJhbCBwb3B1bGF0aW9uKScKCi8qCiAqIEBvdXRwdXQgU3RyaW5nIOKAlCBodW1hbi1yZWFkYWJsZSBwb3B1bGF0aW9uIGNsYXNzaWZpY2F0aW9uCiAqLwpkZWZpbmUgIlBvcHVsYXRpb24gQ2xhc3NpZmljYXRpb24iOgogIGlmIENvbW1vbi4iSXMgV0xISVYiCiAgdGhlbiAnV29tYW4gbGl2aW5nIHdpdGggSElWIChXTEhJVikg4oCUIFdITyBSZWNvbW1lbmRhdGlvbnMgMjEtMzQnCiAgZWxzZSAnR2VuZXJhbCBwb3B1bGF0aW9uIOKAlCBXSE8gUmVjb21tZW5kYXRpb25zIDEtMTQnCgovKgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBTVU1NQVJZIE9VVFBVVFMg4oCUIFN0cnVjdHVyZWQgZGF0YSBmb3IgQ0RTIGludGVncmF0aW9uCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqLwoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCBvdmVyYWxsIGZsYWc6IGRvZXMgdGhpcyBwYXRpZW50IG5lZWQgY2xpbmljYWwgYXR0ZW50aW9uPwogKiBAcHNldWRvY29kZSBUcnVlIGlmIGFueSBhY3Rpb24gaXMgcmVjb21tZW5kZWQgKHNjcmVlbmluZywgdHJpYWdlLCB0cmVhdG1lbnQsIGZvbGxvdy11cCkKICovCmRlZmluZSAiTmVlZHMgQXR0ZW50aW9uIjoKICAiSXMgRHVlIEZvciBTY3JlZW5pbmciCiAgICBvciAiTmVlZHMgVHJpYWdlIEFmdGVyIFBvc2l0aXZlIEhQViIKICAgIG9yICJIYXMgUG9zaXRpdmUgVHJpYWdlIFJlc3VsdCIKICAgIG9yICJJcyBJbiBQb3N0IFRyZWF0bWVudCBGb2xsb3cgVXAiCiAgICBvciBDb21tb24uIkhhcyBDZXJ2aWNhbCBDYW5jZXIgRGlhZ25vc2lzIgo="/>
  </content>
  <content>
    <contentType value="application/elm+json"/>
    <data value="ewogICAibGlicmFyeSIgOiB7CiAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAidHJhbnNsYXRvck9wdGlvbnMiIDogIkVuYWJsZUxvY2F0b3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iLAogICAgICAgICAic2lnbmF0dXJlTGV2ZWwiIDogIk5vbmUiLAogICAgICAgICAidHlwZSIgOiAiQ3FsVG9FbG1JbmZvIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iLAogICAgICAgICAiZXJyb3JUeXBlIiA6ICJzZW1hbnRpYyIsCiAgICAgICAgICJlcnJvclNldmVyaXR5IiA6ICJ3YXJuaW5nIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtRXJyb3IiCiAgICAgIH0sIHsKICAgICAgICAgIm1lc3NhZ2UiIDogIlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiwKICAgICAgICAgImVycm9yVHlwZSIgOiAic2VtYW50aWMiLAogICAgICAgICAiZXJyb3JTZXZlcml0eSIgOiAid2FybmluZyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUVycm9yIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9JbnRlcnZhbCBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIsCiAgICAgICAgICJlcnJvclR5cGUiIDogInNlbWFudGljIiwKICAgICAgICAgImVycm9yU2V2ZXJpdHkiIDogIndhcm5pbmciLAogICAgICAgICAidHlwZSIgOiAiQ3FsVG9FbG1FcnJvciIKICAgICAgfSwgewogICAgICAgICAibWVzc2FnZSIgOiAiQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiwKICAgICAgICAgImVycm9yVHlwZSIgOiAic2VtYW50aWMiLAogICAgICAgICAiZXJyb3JTZXZlcml0eSIgOiAid2FybmluZyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUVycm9yIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iLAogICAgICAgICAiZXJyb3JUeXBlIiA6ICJzZW1hbnRpYyIsCiAgICAgICAgICJlcnJvclNldmVyaXR5IiA6ICJ3YXJuaW5nIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtRXJyb3IiCiAgICAgIH0gXSwKICAgICAgImlkZW50aWZpZXIiIDogewogICAgICAgICAiaWQiIDogIkNlcnZpY2FsQ2FuY2VyU2NyZWVuaW5nRGVjaXNpb24iLAogICAgICAgICAic3lzdGVtIiA6ICJodHRwczovL2hvcGVuYWhlYWx0aC5jb20vZmhpci9jZXJ2aWNhbC1jYW5jZXItY2RzIiwKICAgICAgICAgInZlcnNpb24iIDogIjAuMS4wIgogICAgICB9LAogICAgICAic2NoZW1hSWRlbnRpZmllciIgOiB7CiAgICAgICAgICJpZCIgOiAidXJuOmhsNy1vcmc6ZWxtIiwKICAgICAgICAgInZlcnNpb24iIDogInIxIgogICAgICB9LAogICAgICAidXNpbmdzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiU3lzdGVtIiwKICAgICAgICAgICAgInVyaSIgOiAidXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjEuMC4wIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0OjEtMjQ6MjYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSIiwKICAgICAgICAgICAgInVyaSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImluY2x1ZGVzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjI2OjEtMjY6MzUiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSSGVscGVycyIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjQuMC4xIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjI3OjEtMjc6NjciLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJDb21tb24iLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cHM6Ly9ob3BlbmFoZWFsdGguY29tL2ZoaXIvY2VydmljYWwtY2FuY2VyLWNkcy9DZXJ2aWNhbENhbmNlclNjcmVlbmluZ0NvbW1vbiIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICIwLjEuMCIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImNvbnRleHRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjQwOjEtNDA6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgInN0YXRlbWVudHMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYXRvciIgOiAiNDA6MS00MDoxNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgInR5cGUiIDogIlNpbmdsZXRvbkZyb20iLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI0MDoxLTQwOjE1IiwKICAgICAgICAgICAgICAgICAgImRhdGFUeXBlIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInRlbXBsYXRlSWQiIDogImh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlJldHJpZXZlIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAiaW5jbHVkZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJjb2RlRmlsdGVyIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgImRhdGVGaWx0ZXIiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3RoZXJGaWx0ZXIiIDogWyBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI0NjoxLTQ4OjYzIiwKICAgICAgICAgICAgIm5hbWUiIDogIk1lZXRzIEFnZSBDcml0ZXJpYSIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjQ3OjMtNDg6NjMiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI0NzozLTQ3OjIwIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIklzIEZlbWFsZSIsCiAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNDg6OS00ODo2MyIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJHcmVhdGVyT3JFcXVhbCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNDg6OS00ODoyOSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJBZ2UgSW4gWWVhcnMiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjQ4OjM0LTQ4OjYzIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1pbmltdW0gU2NyZWVuaW5nIEFnZSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjU0OjEtNTU6NTciLAogICAgICAgICAgICAibmFtZSIgOiAiSXMgV2l0aGluIFNjcmVlbmluZyBBZ2UgUmFuZ2UiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NTozLTU1OjU3IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkxlc3NPckVxdWFsIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NTozLTU1OjIzIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkFnZSBJbiBZZWFycyIsCiAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNTU6MjgtNTU6NTciLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTWF4aW11bSBTY3JlZW5pbmcgQWdlIiwKICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2MzoxLTY1OjUwIiwKICAgICAgICAgICAgIm5hbWUiIDogIklzIEVsaWdpYmxlIEZvciBTY3JlZW5pbmciLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2NDozLTY1OjUwIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjQ6My02NDoyMiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNZWV0cyBBZ2UgQ3JpdGVyaWEiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2NTo5LTY1OjUwIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY1OjEzLTY1OjUwIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBDZXJ2aWNhbCBDYW5jZXIgRGlhZ25vc2lzIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjgwOjEtODM6MTEiLAogICAgICAgICAgICAibmFtZSIgOiAiWWVhcnMgU2luY2UgTGFzdCBIUFYgVGVzdCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjgxOjMtODM6MTEiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiSWYiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJjb25kaXRpb24iIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODE6Ni04MTo0NSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgRXZlciBCZWVuIFNjcmVlbmVkIFdpdGggSFBWIiwKICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4Mjo4LTgyOjcwIiwKICAgICAgICAgICAgICAgICAgInByZWNpc2lvbiIgOiAiWWVhciIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJEdXJhdGlvbkJldHdlZW4iLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjgyOjIyLTgyOjU4IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgSFBWIFRlc3QiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjgyOjY0LTgyOjcwIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlRvZGF5IiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgImVsc2UiIDogewogICAgICAgICAgICAgICAgICAiYXNUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQXMiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4Mzo4LTgzOjExIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk51bGwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYXRvciIgOiAiODg6MS04OTo0NiIsCiAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgTmV2ZXIgQmVlbiBTY3JlZW5lZCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjg5OjMtODk6NDYiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODk6Ny04OTo0NiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgRXZlciBCZWVuIFNjcmVlbmVkIFdpdGggSFBWIiwKICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYXRvciIgOiAiOTU6MS05Nzo3MiIsCiAgICAgICAgICAgICJuYW1lIiA6ICJTY3JlZW5pbmcgSW50ZXJ2YWwgSGFzIEVsYXBzZWQiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5NjozLTk3OjcyIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiOTY6My05Njo0MiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgRXZlciBCZWVuIFNjcmVlbmVkIFdpdGggSFBWIiwKICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5Nzo5LTk3OjcyIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkdyZWF0ZXJPckVxdWFsIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5Nzo5LTk3OjM1IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlllYXJzIFNpbmNlIExhc3QgSFBWIFRlc3QiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5Nzo0MC05Nzo3MiIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJTY3JlZW5pbmcgSW50ZXJ2YWwgWWVhcnMiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMDM6MS0xMDU6NzEiLAogICAgICAgICAgICAibmFtZSIgOiAiSXMgRHVlIEZvciBTY3JlZW5pbmciLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMDQ6My0xMDU6NzEiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMDQ6My0xMDQ6MjkiLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAiSXMgRWxpZ2libGUgRm9yIFNjcmVlbmluZyIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEwNTo5LTEwNTo3MSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJPciIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTA1OjEwLTEwNTozNCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgTmV2ZXIgQmVlbiBTY3JlZW5lZCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEwNTozOS0xMDU6NzAiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiU2NyZWVuaW5nIEludGVydmFsIEhhcyBFbGFwc2VkIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMDoxLTEzMjo1MyIsCiAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBOZWdhdGl2ZSIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMTozLTEzMjo1MyIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbmQiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMTozLTEzMTo0MiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgRXZlciBCZWVuIFNjcmVlbmVkIFdpdGggSFBWIiwKICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMzI6OS0xMzI6NTMiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTMyOjEzLTEzMjo1MyIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMzk6MS0xNDQ6NSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJOZWVkcyBUcmlhZ2UgQWZ0ZXIgUG9zaXRpdmUgSFBWIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQwOjMtMTQ0OjUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDA6My0xNDA6NDMiLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE0MTo5LTE0NDo1IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk9yIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDI6Ny0xNDI6NDgiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQyOjExLTE0Mjo0OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeGlzdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDI6MTctMTQyOjQ4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlZJQSBTY3JlZW5pbmcgUmVzdWx0cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE0MzoxMC0xNDM6ODYiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQmVmb3JlIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDM6MTAtMTQzOjQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDM6NTAtMTQzOjg2IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgSFBWIFRlc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYXRvciIgOiAiMTUwOjEtMTUzOjkwIiwKICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBQb3NpdGl2ZSBUcmlhZ2UgUmVzdWx0IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTUxOjMtMTUzOjkwIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTUxOjMtMTUyOjQ0IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTUxOjMtMTUxOjQzIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNTI6OS0xNTI6NDQiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTW9zdCBSZWNlbnQgVklBIElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTUzOjktMTUzOjkwIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlNhbWVPckFmdGVyIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNTM6OS0xNTM6NDAiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiRGF0ZSBPZiBNb3N0IFJlY2VudCBWSUEiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE1Mzo1NC0xNTM6OTAiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiRGF0ZSBPZiBNb3N0IFJlY2VudCBIUFYgVGVzdCIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjE1OToxLTE2Mjo5MCIsCiAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgV2FzIE5lZ2F0aXZlIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYwOjMtMTYyOjkwIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYwOjMtMTYxOjQ4IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYwOjMtMTYwOjQzIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjE6OS0xNjE6NDgiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYxOjEzLTE2MTo0OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBWSUEgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE2Mjo5LTE2Mjo5MCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJTYW1lT3JBZnRlciIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYyOjktMTYyOjQwIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjI6NTQtMTYyOjkwIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgSFBWIFRlc3QiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjk6MS0xNzI6NDQiLAogICAgICAgICAgICAibmFtZSIgOiAiSXMgSW4gUG9zdCBUcmVhdG1lbnQgRm9sbG93IFVwIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcwOjMtMTcyOjQ0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcwOjMtMTcxOjUxIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcwOjMtMTcwOjI3IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBCZWVuIFRyZWF0ZWQiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3MTo5LTE3MTo1MSIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6OS0xNzE6NTEiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiSXNOdWxsIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcxOjktMTcxOjM5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vbnRocyBTaW5jZSBUcmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcyOjktMTcyOjQ0IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxlc3MiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3Mjo5LTE3MjozOSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb250aHMgU2luY2UgVHJlYXRtZW50IiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzI6NDMtMTcyOjQ0IiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIyNCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODc6MS0yMzQ6NSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJSZWNvbW1lbmRlZCBBY3Rpb24iLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODg6My0yMzQ6NSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDYXNlIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAiY2FzZUl0ZW0iIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTA6NS0xOTE6NjEiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5MDoxMC0xOTA6NDciLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiSGFzIENlcnZpY2FsIENhbmNlciBEaWFnbm9zaXMiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5MToxMi0xOTE6NjEiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiUmVmZXIgdG8gb25jb2xvZ3kgZm9yIGNlcnZpY2FsIGNhbmNlciBtYW5hZ2VtZW50IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTQ6NS0xOTU6NTkiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5NDoxMC0xOTQ6MzMiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTk0OjE0LTE5NDozMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNZWV0cyBBZ2UgQ3JpdGVyaWEiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5NToxMi0xOTU6NTkiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiTm90IHlldCBlbGlnaWJsZSBmb3IgY2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTk4OjUtMTk5Ojg2IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTg6MTAtMTk4OjQxIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIklzIEluIFBvc3QgVHJlYXRtZW50IEZvbGxvdyBVcCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5OToxMi0xOTk6ODYiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiUG9zdC10cmVhdG1lbnQgZm9sbG93LXVwOiByZXRlc3Qgd2l0aCBIUFYgRE5BIGF0IDEyIG1vbnRocyBwb3N0LXRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjAyOjUtMjAzOjU0IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMDI6MTAtMjAyOjQyIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk5lZWRzIFRyaWFnZSBBZnRlciBQb3NpdGl2ZSBIUFYiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMDM6MTItMjAzOjU0IiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIkhQViB0ZXN0IGlzIHBvc2l0aXZlIOKAlCBwZXJmb3JtIFZJQSB0cmlhZ2UiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIwNjo1LTIwNzo4MiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjA2OjEwLTIwNjozNyIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgUG9zaXRpdmUgVHJpYWdlIFJlc3VsdCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIwNzoxMi0yMDc6ODIiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiSFBWLXBvc2l0aXZlIGFuZCBWSUEtcG9zaXRpdmUg4oCUIGFzc2VzcyBhYmxhdGlvbiBlbGlnaWJpbGl0eSBhbmQgdHJlYXQiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIxMDo1LTIxMzoyMiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjEwOjEwLTIxMDozMCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgV2FzIE5lZ2F0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjExOjEyLTIxMzoyMiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDb25jYXRlbmF0ZSIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjExOjEyLTIxMjo2NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDb25jYXRlbmF0ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjExOjEyLTIxMTo2OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJIUFYtcG9zaXRpdmUgYnV0IFZJQS1uZWdhdGl2ZSDigJQgcmV0ZXN0IHdpdGggSFBWIEROQSBpbiAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMTI6MTQtMjEyOjY2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlRvU3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjEyOjIzLTIxMjo2NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQb3N0IFRyaWFnZSBOZWdhdGl2ZSBSZXRlc3QgTW9udGhzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMTM6MTQtMjEzOjIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIiBtb250aHMiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMTY6NS0yMTc6MzciLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIxNjoxMC0yMTY6NjYiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMTY6MTAtMjE2OjM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBOZXZlciBCZWVuIFNjcmVlbmVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjE2OjQwLTIxNjo2NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBFbGlnaWJsZSBGb3IgU2NyZWVuaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIxNzoxMi0yMTc6MzciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiU2NyZWVuIHdpdGggSFBWIEROQSB0ZXN0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjA6NS0yMjE6NjQiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyMDoxMC0yMjA6NzMiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjA6MTAtMjIwOjQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlNjcmVlbmluZyBJbnRlcnZhbCBIYXMgRWxhcHNlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyMDo0Ny0yMjA6NzMiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiSXMgRWxpZ2libGUgRm9yIFNjcmVlbmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjE6MTItMjIxOjY0IiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIlJvdXRpbmUgcmUtc2NyZWVuaW5nIGR1ZSDigJQgc2NyZWVuIHdpdGggSFBWIEROQSB0ZXN0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjQ6NS0yMjc6MjEiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyNDoxMC0yMjQ6ODQiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjQ6MTAtMjI0OjQzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIE5lZ2F0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjI0OjQ5LTIyNDo4NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjQ6NTMtMjI0Ojg0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlNjcmVlbmluZyBJbnRlcnZhbCBIYXMgRWxhcHNlZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyNToxMi0yMjc6MjEiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQ29uY2F0ZW5hdGUiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyNToxMi0yMjY6ODYiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQ29uY2F0ZW5hdGUiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyNToxMi0yMjU6NjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiTGFzdCBIUFYgdGVzdCB3YXMgbmVnYXRpdmUg4oCUIG5leHQgc2NyZWVuaW5nIGR1ZSBpbiAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjY6MTQtMjI2Ojg2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlRvU3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjI2OjIzLTIyNjo4NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJTdWJ0cmFjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjI2OjIzLTIyNjo1NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJTY3JlZW5pbmcgSW50ZXJ2YWwgWWVhcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIyNjo1OS0yMjY6ODUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiWWVhcnMgU2luY2UgTGFzdCBIUFYgVGVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyMjc6MTQtMjI3OjIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIiB5ZWFycyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIzMDo1LTIzMToxMDEiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIzMDoxMC0yMzA6NjMiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiR3JlYXRlciIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjMwOjEwLTIzMDozMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJBZ2UgSW4gWWVhcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIzMDozNC0yMzA6NjMiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTWF4aW11bSBTY3JlZW5pbmcgQWdlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjMxOjEyLTIzMToxMDEiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiQWdlIG92ZXIgNTAg4oCUIGFzc2VzcyBmb3Igc2NyZWVuaW5nIGNlc3NhdGlvbiAocmVxdWlyZXMgMiBjb25zZWN1dGl2ZSBuZWdhdGl2ZSBIUFYgdGVzdHMpIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICAgICJlbHNlIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjIzMzoxMC0yMzM6NjciLAogICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiVW5hYmxlIHRvIGRldGVybWluZSByZWNvbW1lbmRhdGlvbiDigJQgcmV2aWV3IHBhdGllbnQgZGF0YSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDA6MS0yNTM6NSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJDYXNjYWRlIFN0YXR1cyIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0MTozLTI1Mzo1IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkNhc2UiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJjYXNlSXRlbSIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0Mjo1LTI0Mjo3MCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQyOjEwLTI0Mjo0NyIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgQ2VydmljYWwgQ2FuY2VyIERpYWdub3NpcyIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQyOjU0LTI0Mjo3MCIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJjZXJ2aWNhbC1jYW5jZXIiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0Mzo1LTI0Mzo1MyIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQzOjEwLTI0MzozMyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDM6MTQtMjQzOjMzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1lZXRzIEFnZSBDcml0ZXJpYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQzOjQwLTI0Mzo1MyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJub3QtZWxpZ2libGUiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0NDo1LTI0NDo3MyIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ0OjEwLTI0NDo0MSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBJbiBQb3N0IFRyZWF0bWVudCBGb2xsb3cgVXAiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDQ6NDgtMjQ0OjczIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogInBvc3QtdHJlYXRtZW50LWZvbGxvdy11cCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ1OjUtMjQ1OjYyIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDU6MTAtMjQ1OjQyIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk5lZWRzIFRyaWFnZSBBZnRlciBQb3NpdGl2ZSBIUFYiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDU6NDktMjQ1OjYyIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIm5lZWRzLXRyaWFnZSIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ2OjUtMjQ2OjYwIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDY6MTAtMjQ2OjM3IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBQb3NpdGl2ZSBUcmlhZ2UgUmVzdWx0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ2OjQ0LTI0Njo2MCIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJuZWVkcy10cmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0Nzo1LTI0Nzo2MyIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ3OjEwLTI0NzozMCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgV2FzIE5lZ2F0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ3OjM3LTI0Nzo2MyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJ0cmlhZ2UtbmVnYXRpdmUtZm9sbG93LXVwIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDg6NS0yNDg6OTEiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0ODoxMC0yNDg6NjYiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNDg6MTAtMjQ4OjM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBOZXZlciBCZWVuIFNjcmVlbmVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ4OjQwLTI0ODo2NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBFbGlnaWJsZSBGb3IgU2NyZWVuaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0ODo3My0yNDg6OTEiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiZHVlLWZvci1zY3JlZW5pbmciLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0OTo1LTI0OTo5OCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ5OjEwLTI0OTo3MyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbmQiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0OToxMC0yNDk6NDEiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiU2NyZWVuaW5nIEludGVydmFsIEhhcyBFbGFwc2VkIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjQ5OjQ3LTI0OTo3MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBFbGlnaWJsZSBGb3IgU2NyZWVuaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI0OTo4MC0yNDk6OTgiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiZHVlLWZvci1zY3JlZW5pbmciLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI1MDo1LTI1MDo2NSIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjUwOjEwLTI1MDo0MyIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBOZWdhdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI1MDo1MC0yNTA6NjUiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAicm91dGluZS1yZWNhbGwiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI1MTo1LTI1MTo4NyIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjUxOjEwLTI1MTo2MyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJHcmVhdGVyIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNTE6MTAtMjUxOjMwIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkFnZSBJbiBZZWFycyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjUxOjM0LTI1MTo2MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNYXhpbXVtIFNjcmVlbmluZyBBZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNTE6NzAtMjUxOjg3IiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogImFzc2Vzcy1jZXNzYXRpb24iLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgImVsc2UiIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjUyOjEwLTI1MjoxOCIsCiAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJ1bmtub3duIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjI2NDoxLTI2Nzo0MCIsCiAgICAgICAgICAgICJuYW1lIiA6ICJTY3JlZW5pbmcgSW50ZXJ2YWwgRGlzcGxheSIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI2NTozLTI2Nzo0MCIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJJZiIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgImNvbmRpdGlvbiIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyNjU6Ni0yNjU6MjIiLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAiSXMgV0xISVYiLAogICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI2Njo4LTI2NjoyNiIsCiAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIzLTUgeWVhcnMgKFdMSElWKSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJlbHNlIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI2Nzo4LTI2Nzo0MCIsCiAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICI1LTEwIHllYXJzIChnZW5lcmFsIHBvcHVsYXRpb24pIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjI3MjoxLTI3NTo1NCIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQb3B1bGF0aW9uIENsYXNzaWZpY2F0aW9uIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjczOjMtMjc1OjU0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIklmIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAiY29uZGl0aW9uIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI3Mzo2LTI3MzoyMiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBXTEhJViIsCiAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjc0OjgtMjc0OjY2IiwKICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAidmFsdWUiIDogIldvbWFuIGxpdmluZyB3aXRoIEhJViAoV0xISVYpIOKAlCBXSE8gUmVjb21tZW5kYXRpb25zIDIxLTM0IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgImVsc2UiIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjc1OjgtMjc1OjU0IiwKICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAidmFsdWUiIDogIkdlbmVyYWwgcG9wdWxhdGlvbiDigJQgV0hPIFJlY29tbWVuZGF0aW9ucyAxLTE0IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjI4NzoxLTI5Mjo0NSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJOZWVkcyBBdHRlbnRpb24iLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyODg6My0yOTI6NDUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiT3IiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI4ODozLTI5MTozOSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJPciIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjg4OjMtMjkwOjM1IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk9yIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyODg6My0yODk6NDAiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiT3IiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI4ODozLTI4ODoyNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJJcyBEdWUgRm9yIFNjcmVlbmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI4OTo4LTI4OTo0MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJOZWVkcyBUcmlhZ2UgQWZ0ZXIgUG9zaXRpdmUgSFBWIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI5MDo4LTI5MDozNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgUG9zaXRpdmUgVHJpYWdlIFJlc3VsdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIyOTE6OC0yOTE6MzkiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiSXMgSW4gUG9zdCBUcmVhdG1lbnQgRm9sbG93IFVwIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjI5Mjo4LTI5Mjo0NSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJIYXMgQ2VydmljYWwgQ2FuY2VyIERpYWdub3NpcyIsCiAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgIH0KICAgICAgICAgfSBdCiAgICAgIH0KICAgfQp9"/>
  </content>
</Library>