<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>197969</bug_id>
          
          <creation_ts>2019-05-16 16:25:51 -0700</creation_ts>
          <short_desc>[WASM-References] Add support for Anyref in parameters and return types, Ref.null and Ref.is_null for Anyref values.</short_desc>
          <delta_ts>2019-05-27 23:56:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Michaud">justin_michaud</reporter>
          <assigned_to name="Justin Michaud">justin_michaud</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1536960</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-05-16 16:25:51 -0700</bug_when>
    <thetext>Add support for Anyref in parameters and return types of Wasm functions, Ref.null and Ref.is_null for Anyref values.

Support for funcref (formerly anyfunc) is out of scope for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536971</commentid>
    <comment_count>1</comment_count>
      <attachid>370091</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-05-16 16:43:00 -0700</bug_when>
    <thetext>Created attachment 370091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536973</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-16 16:44:34 -0700</bug_when>
    <thetext>This patch modifies one of the wasm.json files. Please ensure that any changes in one have been mirrored to the other. You can find the wasm.json files at &quot;Source/JavaScriptCore/wasm/wasm.json&quot; and &quot;JSTests/wasm/wasm.json&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536983</commentid>
    <comment_count>3</comment_count>
      <attachid>370091</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-16 17:57:36 -0700</bug_when>
    <thetext>Comment on attachment 370091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370091&amp;action=review

r=me

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:177
&gt; +    WASM_VALIDATOR_FAIL_IF(Type::Anyref != value, &quot;ref.is_null to type &quot;, value, &quot; expected &quot;, Type::Anyref);

You can define a helper function like, `isReferenceType()` instead of directly checking AnyRef, and in the future, you can extend this function to accept funcref too.

&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:261
&gt; +        isNullref.link(&amp;jit);

Discussed with Justin, at this point, we can just use JSValue representation directly.
We could change this after revisiting thread proposal.

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:262
&gt; +                        if (!buffer[argNum])
&gt; +                            arg = jsNull();
&gt; +                        else
&gt; +                            arg = JSValue::decode(buffer[argNum]);

Ditto.

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:300
&gt; +                    if (result.isNull())
&gt; +                        realResult = 0;
&gt; +                    else
&gt; +                        realResult = JSValue::encode(result);

Ditto.

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:427
&gt; +                // If 0, this is nullref so it becomes null. Otherwise, it is already a JSValue.
&gt; +                auto isNullref = jit.branchIfNotEmpty(gprReg);
&gt; +                jit.moveTrustedValue(jsNull(), JSValueRegs { gprReg });
&gt; +                isNullref.link(&amp;jit);

Ditto.

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:598
&gt; +        isNullref.link(&amp;jit);

Ditto.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:90
&gt; +        case Wasm::Anyref:
&gt; +            // All JSValues are valid, but null becomes 0.
&gt; +            if (arg.isNull())
&gt; +                arg = JSValue::decode(0);

Ditto.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:465
&gt; +        isNullref.link(&amp;jit);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536985</commentid>
    <comment_count>4</comment_count>
      <attachid>370091</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-16 18:01:03 -0700</bug_when>
    <thetext>Comment on attachment 370091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370091&amp;action=review

Everything looks great! r- because I think I found a bug in the stub that we use to call from JS to Wasm. Let&apos;s add a test for that and get this landed

&gt; Source/JavaScriptCore/ChangeLog:7
&gt; +        Add support for Anyref in parameters and return types of Wasm functions.
&gt; +        Add Ref.null and Ref.is_null for Anyref values. Support for these functions with funcrefs is out of scope.

style nit: this should go below &quot;Reviewed by ...&quot;

Also, you should talk about how you implemented this here. What from JS maps to null in Wasm? etc

&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:258
&gt; +        // If 0, this is nullref so it becomes null. Otherwise, it is already a JSValue.

not sure this comment is adding much

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:183
&gt; +            case Anyref: {

Can this just be part of the I32 case above, and the call to zeroExtend can branch on Anyref vs I32?

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:424
&gt; +                // If 0, this is nullref so it becomes null. Otherwise, it is already a JSValue.

comment isn&apos;t adding much that the code doesn&apos;t tell you.

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:425
&gt; +                auto isNullref = jit.branchIfNotEmpty(gprReg);

this variable is named wrong. Should be something like &quot;not null ref&quot;

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:595
&gt; +        // Any JSValue, Ref.func or Ref.null is valid here, and it is impossible to create any other kind of ref from within wasm.
&gt; +        // Hence, there are no exception checks.
&gt; +
&gt; +        // If null, this is nullref so it becomes 0. Otherwise, it is still a JSValue.

same about comment not being helpful.

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:596
&gt; +        auto isNullref = jit.branchIfNotNull(GPRInfo::returnValueGPR);

nit: Wrong name. This is JSValue null, so should be named something like &quot;isNull&quot;

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:88
&gt; +            // All JSValues are valid, but null becomes 0.

ditto about comment

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:461
&gt; +    case Wasm::Anyref: {

You&apos;re not handling this as a parameter in this JS to Wasm stub. I think that&apos;s a bug. Please add a test.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:462
&gt; +        // If 0, this is nullref so it becomes null. Otherwise, it is already a JSValue.

ditto

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:463
&gt; +        auto isNullref = jit.branchIfNotEmpty(GPRInfo::returnValueGPR);

nit: name should be inverted to &quot;not null ref&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536986</commentid>
    <comment_count>5</comment_count>
      <attachid>370091</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-16 18:03:00 -0700</bug_when>
    <thetext>Comment on attachment 370091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370091&amp;action=review

&gt; Source/JavaScriptCore/wasm/WasmFunctionParser.h:295
&gt; +    case RefNull: {
&gt; +        m_expressionStack.append(m_context.addConstant(Anyref, 0));
&gt; +        return { };
&gt; +    }
&gt; +
&gt; +    case RefIsNull: {
&gt; +        ExpressionType result, value;
&gt; +        WASM_TRY_POP_EXPRESSION_STACK_INTO(value, &quot;ref.is_null&quot;);
&gt; +        WASM_TRY_ADD_TO_CONTEXT(addRefIsNull(value, result));
&gt; +        m_expressionStack.append(result);
&gt; +        return { };
&gt; +    }

I previously said let&apos;s not add a runtime option, but I&apos;m going back on that. Let&apos;s add a runtime option that we just check here inside the parser. So we can pretend we don&apos;t parse this when the option is false. We can even default this option to on for now, but it will give us an easy switch to flip if we want to turn this feature off on some branch in the future (we may want to do that if it&apos;s not complete yet).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536988</commentid>
    <comment_count>6</comment_count>
      <attachid>370091</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-16 18:05:28 -0700</bug_when>
    <thetext>Comment on attachment 370091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370091&amp;action=review

&gt; JSTests/wasm/wasm.json:20
&gt; +    &quot;block_type&quot;: [&quot;i32&quot;, &quot;i64&quot;, &quot;f32&quot;, &quot;f64&quot;, &quot;void&quot;, &quot;anyref&quot;],

Can we add a test where we have a block with this result type? Maybe like an if or something</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536989</commentid>
    <comment_count>7</comment_count>
      <attachid>370091</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-16 18:07:30 -0700</bug_when>
    <thetext>Comment on attachment 370091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370091&amp;action=review

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:461
&gt;&gt; +    case Wasm::Anyref: {
&gt; 
&gt; You&apos;re not handling this as a parameter in this JS to Wasm stub. I think that&apos;s a bug. Please add a test.

You can test this by calling some Wasm stuff in a loop to 1000 or 10000 in JS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536990</commentid>
    <comment_count>8</comment_count>
      <attachid>370091</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-16 18:09:33 -0700</bug_when>
    <thetext>Comment on attachment 370091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370091&amp;action=review

&gt;&gt; Source/JavaScriptCore/wasm/js/JSToWasm.cpp:261
&gt;&gt; +        isNullref.link(&amp;jit);
&gt; 
&gt; Discussed with Justin, at this point, we can just use JSValue representation directly.
&gt; We could change this after revisiting thread proposal.

Good point. We&apos;ll just need to keep in mind we may need to branch on jsNull in some places we store zero to mean null (I think Table IIRC) when we implement that functionality in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537277</commentid>
    <comment_count>9</comment_count>
      <attachid>370157</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-05-17 15:09:26 -0700</bug_when>
    <thetext>Created attachment 370157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537285</commentid>
    <comment_count>10</comment_count>
      <attachid>370159</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-05-17 15:16:44 -0700</bug_when>
    <thetext>Created attachment 370159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537311</commentid>
    <comment_count>11</comment_count>
      <attachid>370159</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-05-17 16:10:59 -0700</bug_when>
    <thetext>Comment on attachment 370159
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537388</commentid>
    <comment_count>12</comment_count>
      <attachid>370159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 21:58:42 -0700</bug_when>
    <thetext>Comment on attachment 370159
Patch

Clearing flags on attachment: 370159

Committed r245496: &lt;https://trac.webkit.org/changeset/245496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537389</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 21:58:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539492</commentid>
    <comment_count>14</comment_count>
      <attachid>370159</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-27 23:56:47 -0700</bug_when>
    <thetext>Comment on attachment 370159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=370159&amp;action=review

&gt; Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:941
&gt; +    append(Move, Arg::bigImm(JSValue::encode(jsNull())), tmp);
&gt; +    append(Compare64, Arg::relCond(MacroAssembler::Equal), value, tmp, result);

I think this compare can be against an immediate in the instruction instead of moving jsNull to a register. jsNull() is just &quot;2&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370091</attachid>
            <date>2019-05-16 16:43:00 -0700</date>
            <delta_ts>2019-05-17 15:09:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197969-20190516164259.patch</filename>
            <type>text/plain</type>
            <size>34948</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NmZiMzY3ZGUyNzFlYTM1ZWQ4M2ExMmIyNDBhYjc5NjE4YmRhMDI0Li44YTE5OTdjNTE1NWI3Nzk3
Mjg3NDFlNzY1ZDNhOTUwMGRhMDdlYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxOS0wNS0xNiAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIEFu
eXJlZiBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlwZXMsIFJlZi5udWxsIGFuZCBSZWYuaXNf
bnVsbCBmb3IgQW55cmVmIHZhbHVlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5Nzk2OQorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBbnlyZWYg
aW4gcGFyYW1ldGVycyBhbmQgcmV0dXJuIHR5cGVzIG9mIFdhc20gZnVuY3Rpb25zLgorICAgICAg
ICBBZGQgUmVmLm51bGwgYW5kIFJlZi5pc19udWxsIGZvciBBbnlyZWYgdmFsdWVzLiBTdXBwb3J0
IGZvciB0aGVzZSBmdW5jdGlvbnMgd2l0aCBmdW5jcmVmcyBpcyBvdXQgb2Ygc2NvcGUuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3YXNtL1dhc21B
aXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjp0
bXBGb3JUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OkFpcklSR2Vu
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZENvbnN0YW50
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZFJlZklzTnVsbCk6Cisg
ICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjphZGRSZXR1cm4pOgorICAgICAgICAq
IHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2Vu
ZXJhdG9yOjphZGRSZWZJc051bGwpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50
aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206OkNhbGxpbmdDb252ZW50aW9uQWlyOjptYXJzaGFs
bEFyZ3VtZW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGluZ0NvbnZlbnRpb25B
aXI6OnNldHVwQ2FsbCBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6CisgICAg
ICAgIChKU0M6Oldhc206OmlzVmFsdWVUeXBlKToKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlv
blBhcnNlci5oOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6
RnVuY3Rpb25QYXJzZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250
ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJz
ZXI8Q29udGV4dD46OnBhcnNlVW5yZWFjaGFibGVFeHByZXNzaW9uKToKKyAgICAgICAgKiB3YXNt
L1dhc21WYWxpZGF0ZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRSZWZJ
c051bGwpOgorICAgICAgICAqIHdhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5OgorICAgICAg
ICAoYml0U2V0KToKKyAgICAgICAgKiB3YXNtL2pzL0pTVG9XYXNtLmNwcDoKKyAgICAgICAgKEpT
Qzo6V2FzbTo6Y3JlYXRlSlNUb1dhc21XcmFwcGVyKToKKyAgICAgICAgKiB3YXNtL2pzL1dhc21U
b0pTLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6d2FzbVRvSlMpOgorICAgICAgICAqIHdhc20v
anMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmNhbGxXZWJBc3NlbWJs
eUZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50
cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDE5LTA1LTEzICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQ29tcHJl
c3MgbWlzY2VsYW5lb3VzIEpJVCByZWxhdGVkIGRhdGEgc3RydWN0dXJlcyB3aXRoIFBhY2tlZDw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNw
cAppbmRleCAyNmE0MDBkZmJmNTEzMmQ3ZTM3YTE1NjkzNGFhNjA1YTQxMTY2N2NlLi44OGEyNjdm
NDI3Y2Y0OTliNmI2OTI4MmViNmUwYTJkNWEzNzI2YjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTIyOSw2ICsyMjksOCBA
QCBwdWJsaWM6CiAgICAgRXhwcmVzc2lvblR5cGUgYWRkQ29uc3RhbnQoVHlwZSwgdWludDY0X3Qp
OwogICAgIEV4cHJlc3Npb25UeXBlIGFkZENvbnN0YW50KEJhc2ljQmxvY2sqLCBUeXBlLCB1aW50
NjRfdCk7CiAKKyAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRSZWZJc051
bGwoRXhwcmVzc2lvblR5cGUmIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKKwogICAg
IC8vIExvY2FscwogICAgIFBhcnRpYWxSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdldExvY2Fs
KHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBQYXJ0aWFsUmVz
dWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBzZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lv
blR5cGUgdmFsdWUpOwpAQCAtMzU5LDYgKzM2MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
VHlwZTo6STMyOgogICAgICAgICAgICAgcmV0dXJuIGczMigpOwogICAgICAgICBjYXNlIFR5cGU6
Okk2NDoKKyAgICAgICAgY2FzZSBUeXBlOjpBbnlyZWY6CiAgICAgICAgICAgICByZXR1cm4gZzY0
KCk7CiAgICAgICAgIGNhc2UgVHlwZTo6RjMyOgogICAgICAgICAgICAgcmV0dXJuIGYzMigpOwpA
QCAtNzg1LDYgKzc4OCw3IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBN
b2R1bGVJbmZvcm1hdGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgICAgICAgICBh
cHBlbmQoTW92ZTMyLCBhcmcsIG1fbG9jYWxzW2ldKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFR5cGU6Okk2NDoKKyAgICAgICAgY2FzZSBUeXBlOjpBbnlyZWY6CiAgICAgICAg
ICAgICBhcHBlbmQoTW92ZSwgYXJnLCBtX2xvY2Fsc1tpXSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBUeXBlOjpGMzI6CkBAIC04OTQsNiArODk4LDcgQEAgYXV0byBBaXJJUkdl
bmVyYXRvcjo6YWRkQ29uc3RhbnQoQmFzaWNCbG9jayogYmxvY2ssIFR5cGUgdHlwZSwgdWludDY0
X3QgdmFsdWUpIC0KICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFR5cGU6OkkzMjoKICAg
ICBjYXNlIFR5cGU6Okk2NDoKKyAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgYXBwZW5k
KGJsb2NrLCBNb3ZlLCBBcmc6OmJpZ0ltbSh2YWx1ZSksIHJlc3VsdCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVHlwZTo6RjMyOgpAQCAtOTE3LDYgKzkyMiwxNiBAQCBhdXRvIEFpcklSR2Vu
ZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBhcnRp
YWxSZXN1bHQKICAgICByZXR1cm4geyB9OwogfQogCithdXRvIEFpcklSR2VuZXJhdG9yOjphZGRS
ZWZJc051bGwoRXhwcmVzc2lvblR5cGUmIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAt
PiBQYXJ0aWFsUmVzdWx0Cit7CisgICAgQVNTRVJUKHZhbHVlLnRtcCgpKTsKKyAgICByZXN1bHQg
PSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CisKKyAgICBhcHBlbmQoVGVzdDY0LCBBcmc6OnJlc0Nv
bmQoTWFjcm9Bc3NlbWJsZXI6Olplcm8pLCB2YWx1ZSwgdmFsdWUsIHJlc3VsdCk7CisKKyAgICBy
ZXR1cm4geyB9OworfQorCiBhdXRvIEFpcklSR2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJfdCBp
bmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIEFT
U0VSVChtX2xvY2Fsc1tpbmRleF0udG1wKCkpOwpAQCAtMTUwMSw2ICsxNTE2LDcgQEAgYXV0byBB
aXJJUkdlbmVyYXRvcjo6YWRkUmV0dXJuKGNvbnN0IENvbnRyb2xEYXRhJiBkYXRhLCBjb25zdCBF
eHByZXNzaW9uTGlzdCYgcmUKICAgICAgICAgICAgIGFwcGVuZChSZXQzMiwgcmV0dXJuVmFsdWVH
UFIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAgICAg
ICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgICAgIGFwcGVuZChNb3ZlLCByZXR1cm5WYWx1
ZXNbMF0sIHJldHVyblZhbHVlR1BSKTsKICAgICAgICAgICAgIGFwcGVuZChSZXQ2NCwgcmV0dXJu
VmFsdWVHUFIpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggYWVlOGI0ZGEwMDQ4NTE1ZWM1Yzhi
ZDg5Mjk0NTcwYjhkYzA2MDZjOS4uMmI5ZjM0MTY4NWI4YjU1NzNjYjJjZTQ3NTA0MGVmNGU1NTYz
NGFlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcApAQCAtMTgzLDYgKzE4Myw4IEBAIHB1YmxpYzoKICAgICBQYXJ0aWFsUmVzdWx0IFdB
Uk5fVU5VU0VEX1JFVFVSTiBhZGRMb2NhbChUeXBlLCB1aW50MzJfdCk7CiAgICAgRXhwcmVzc2lv
blR5cGUgYWRkQ29uc3RhbnQoVHlwZSwgdWludDY0X3QpOwogCisgICAgUGFydGlhbFJlc3VsdCBX
QVJOX1VOVVNFRF9SRVRVUk4gYWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhw
cmVzc2lvblR5cGUmIHJlc3VsdCk7CisKICAgICAvLyBMb2NhbHMKICAgICBQYXJ0aWFsUmVzdWx0
IFdBUk5fVU5VU0VEX1JFVFVSTiBnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5
cGUmIHJlc3VsdCk7CiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9j
YWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKTsKQEAgLTU0NCw2ICs1NDYs
MTIgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgU2lnbmF0dXJlJiBz
aWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAgICByZXR1cm4geyB9OwogfQogCithdXRvIEIz
SVJHZW5lcmF0b3I6OmFkZFJlZklzTnVsbChFeHByZXNzaW9uVHlwZSYgdmFsdWUsIEV4cHJlc3Np
b25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICByZXN1bHQgPSBtX2N1cnJl
bnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEIzOjpFcXVhbCwgb3JpZ2luKCksIHZh
bHVlLCBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4obV9wcm9jLCBvcmln
aW4oKSwgMCkpOworICAgIHJldHVybiB7IH07Cit9CisKIGF1dG8gQjNJUkdlbmVyYXRvcjo6Z2V0
TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxS
ZXN1bHQKIHsKICAgICBBU1NFUlQobV9sb2NhbHNbaW5kZXhdKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXggMzE4NjZjMjBk
Y2JmZDA5ZmFkZGNmOTg3Mjg5Mzc5OGU1OTllMDI3My4uMTBlYjhjZDRlNzMzNmUwZWYyNGRjOWJl
NTA0Yjc1MDdjZTgzYzc1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBUeXBlOjpJMzI6CiAgICAgICAgIGNh
c2UgVHlwZTo6STY0OgorICAgICAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgICAgIG1h
cnNoYWxsQXJndW1lbnRJbXBsKG1fZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNl
dCwgcmVnRnVuYywgc3RhY2tGdW5jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFR5cGU6OkYzMjoKQEAgLTI5OSw2ICszMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBUeXBlOjpJMzI6CiAgICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAg
ICAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENv
bnN0cmFpbnQgPSBCMzo6VmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21Gb3JtYXQuaAppbmRleCBmYzY5ZWU1YzU4YTRmYWMzMWFjOTdiNGUxNmFjNjA0ZjJh
MTRhZThkLi4zYzU4ZDQ5MTJkMGJjNGJlN2M1OGE0MjI0MGU0ZTg0OWI2ZGI1OTBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC02MSw2ICs2MSw3IEBAIGlubGlu
ZSBib29sIGlzVmFsdWVUeXBlKFR5cGUgdHlwZSkKICAgICBjYXNlIEk2NDoKICAgICBjYXNlIEYz
MjoKICAgICBjYXNlIEY2NDoKKyAgICBjYXNlIEFueXJlZjoKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCmluZGV4IDJlMDI4ZTM2NjYyNjUzZWNlYzM5ZTAy
ZWRiOGEyMGJmZDQ0Y2RhOTEuLjM3NjE3NDVlYjhjMzY0ZmRmMjAyOTE2ODlkODcyYjI3NWI1MDBh
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBh
cnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNl
ci5oCkBAIC0xMDUsNyArMTA1LDcgQEAgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OkZ1bmN0aW9u
UGFyc2VyKENvbnRleHQmIGNvbnRleHQsIGNvbnN0IHVpbnQ4X3QqIGZ1bmN0aW8KICAgICAsIG1f
aW5mbyhpbmZvKQogewogICAgIGlmICh2ZXJib3NlKQotICAgICAgICBkYXRhTG9nTG4oIlBhcnNp
bmcgZnVuY3Rpb24gc3RhcnRpbmcgYXQ6ICIsICh1aW50cHRyX3QpZnVuY3Rpb25TdGFydCwgIiBv
ZiBsZW5ndGg6ICIsIGZ1bmN0aW9uTGVuZ3RoKTsKKyAgICAgICAgZGF0YUxvZ0xuKCJQYXJzaW5n
IGZ1bmN0aW9uIHN0YXJ0aW5nIGF0OiAiLCAodWludHB0cl90KWZ1bmN0aW9uU3RhcnQsICIgb2Yg
bGVuZ3RoOiAiLCBmdW5jdGlvbkxlbmd0aCwgIiB3aXRoIHNpZ25hdHVyZTogIiwgc2lnbmF0dXJl
KTsKICAgICBtX2NvbnRleHQuc2V0UGFyc2VyKHRoaXMpOwogfQogCkBAIC0yODEsNiArMjgxLDE5
IEBAIGF1dG8gRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbigpIC0+IFBh
cnRpYWxSZXN1bHQKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKKyAgICBjYXNlIFJlZk51
bGw6IHsKKyAgICAgICAgbV9leHByZXNzaW9uU3RhY2suYXBwZW5kKG1fY29udGV4dC5hZGRDb25z
dGFudChBbnlyZWYsIDApKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBjYXNl
IFJlZklzTnVsbDogeworICAgICAgICBFeHByZXNzaW9uVHlwZSByZXN1bHQsIHZhbHVlOworICAg
ICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZhbHVlLCAicmVmLmlzX251
bGwiKTsKKyAgICAgICAgV0FTTV9UUllfQUREX1RPX0NPTlRFWFQoYWRkUmVmSXNOdWxsKHZhbHVl
LCByZXN1bHQpKTsKKyAgICAgICAgbV9leHByZXNzaW9uU3RhY2suYXBwZW5kKHJlc3VsdCk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCiAgICAgY2FzZSBHZXRMb2NhbDogewogICAgICAg
ICB1aW50MzJfdCBpbmRleDsKICAgICAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0OwpAQCAtNjM5
LDYgKzY1MiwxNCBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZVVucmVhY2hh
YmxlRXhwcmVzc2lvbigpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAKKyAgICBjYXNlIFJlZk51bGw6IHsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisK
KyAgICBjYXNlIFJlZklzTnVsbDogeworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwogICAg
IGNhc2UgR3Jvd01lbW9yeToKICAgICBjYXNlIEN1cnJlbnRNZW1vcnk6IHsKICAgICAgICAgdWlu
dDhfdCByZXNlcnZlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21WYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUu
Y3BwCmluZGV4IGJjZDQ3N2JjMjBlZjdjOGFhNzNiZWIxYTg2YTNhYWI5MWQwYmYwOGEuLmZkNTQx
NjIwMDg0MDlkYTM2Zjk2OTRkMzg5MTJjOGVmYzkxNDI4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcApAQCAtMTAwLDYgKzEwMCw4IEBAIHB1YmxpYzoK
ICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZExvY2FsKFR5cGUsIHVpbnQzMl90KTsK
ICAgICBFeHByZXNzaW9uVHlwZSBhZGRDb25zdGFudChUeXBlIHR5cGUsIHVpbnQ2NF90KSB7IHJl
dHVybiB0eXBlOyB9CiAKKyAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFJlZklzTnVs
bChFeHByZXNzaW9uVHlwZSYgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworCiAgICAg
Ly8gTG9jYWxzCiAgICAgUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBnZXRMb2NhbCh1aW50MzJf
dCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUmVzdWx0IFdBUk5fVU5VU0VE
X1JFVFVSTiBzZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUgdmFsdWUpOwpA
QCAtMTY5LDYgKzE3MSwxNCBAQCBhdXRvIFZhbGlkYXRlOjphZGRBcmd1bWVudHMoY29uc3QgU2ln
bmF0dXJlJiBzaWduYXR1cmUpIC0+IFJlc3VsdAogICAgIHJldHVybiB7IH07CiB9CiAKK2F1dG8g
VmFsaWRhdGU6OmFkZFJlZklzTnVsbChFeHByZXNzaW9uVHlwZSYgdmFsdWUsIEV4cHJlc3Npb25U
eXBlJiByZXN1bHQpIC0+IFJlc3VsdAoreworICAgIHJlc3VsdCA9IFR5cGU6OkkzMjsKKyAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKFR5cGU6OkFueXJlZiAhPSB2YWx1ZSwgInJlZi5pc19udWxs
IHRvIHR5cGUgIiwgdmFsdWUsICIgZXhwZWN0ZWQgIiwgVHlwZTo6QW55cmVmKTsKKworICAgIHJl
dHVybiB7IH07Cit9CisKIGF1dG8gVmFsaWRhdGU6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMy
X3QgY291bnQpIC0+IFJlc3VsdAogewogICAgIHNpemVfdCBzaXplID0gbV9sb2NhbHMuc2l6ZSgp
ICsgY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0
ZVdhc21PcHNIZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdh
c21PcHNIZWFkZXIucHkKaW5kZXggMGI4ZDdiMDI2NDQ4MGFmMzJkOWI4MWMwZTIyMjJkYjdlMDdi
ODcxNS4uNGU5YTY2NTY2MzE5NzlkMmM5Mzc4YjYzN2UxYjg4ZjA2OTJiNzUxYyAxMDA3NTUKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weQpA
QCAtOTUsNyArOTUsNyBAQCBkZWYgY2VpbERpdihhLCBiKToKIAogZGVmIGJpdFNldCgpOgogICAg
IHYgPSAiIgotICAgIGZvciBpIGluIHJhbmdlKGNlaWxEaXYobWF4T3BWYWx1ZSwgOCkpOgorICAg
IGZvciBpIGluIHJhbmdlKGNlaWxEaXYobWF4T3BWYWx1ZSArIDEsIDgpKToKICAgICAgICAgZW50
cnkgPSAwCiAgICAgICAgIGZvciBqIGluIHJhbmdlKDgpOgogICAgICAgICAgICAgaWYgaSAqIDgg
KyBqIGluIG9wVmFsdWVTZXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1RvV2FzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2Fz
bS5jcHAKaW5kZXggZTAzNmNlZjZkYTQxYjFiOGNmYmYxOGU0NmIxZGUzYWVjYjdhNzBlMS4uYTNi
YWE1MTc4ODk1ZTU0YTYwYWZiNTU5ODljZTk2ZTM5OTAwOWQ0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcApAQCAtODIsNiArODIsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENvbXBpbGF0aW9u
Q29udGV4dCYgY29tcAogICAgICAgICAgICAgYXJndW1lbnRzSW5jbHVkZUk2NCA9IHRydWU7CiAg
ICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBXYXNtOjpJMzI6CisgICAgICAg
IGNhc2UgV2FzbTo6QW55cmVmOgogICAgICAgICAgICAgaWYgKG51bUdQUnMgPj0gd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkubV9ncHJBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICB0b3RhbEZy
YW1lU2l6ZSArPSBzaXplb2Yodm9pZCopOwogICAgICAgICAgICAgKytudW1HUFJzOwpAQCAtMTY0
LDYgKzE2NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1Rv
V2FzbVdyYXBwZXIoQ29tcGlsYXRpb25Db250ZXh0JiBjb21wCiAgICAgICAgICAgICBzd2l0Y2gg
KHNpZ25hdHVyZS5hcmd1bWVudChpKSkgewogICAgICAgICAgICAgY2FzZSBXYXNtOjpJMzI6CiAg
ICAgICAgICAgICBjYXNlIFdhc206Okk2NDoKKyAgICAgICAgICAgIGNhc2UgV2FzbTo6QW55cmVm
OgogICAgICAgICAgICAgICAgIGlmIChudW1HUFJzID49IHdhc21DYWxsaW5nQ29udmVudGlvbigp
Lm1fZ3ByQXJncy5zaXplKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5h
cmd1bWVudChpKSA9PSBXYXNtOjpJMzIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5s
b2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBq
c09mZnNldCksIHNjcmF0Y2hSZWcpOwpAQCAtMjUyLDYgKzI1NCwxMyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8SW50ZXJuYWxGdW5jdGlvbj4gY3JlYXRlSlNUb1dhc21XcmFwcGVyKENvbXBpbGF0aW9uQ29u
dGV4dCYgY29tcAogICAgIGNhc2UgV2FzbTo6Vm9pZDoKICAgICAgICAgaml0Lm1vdmVUcnVzdGVk
VmFsdWUoanNVbmRlZmluZWQoKSwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
UiB9KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXNtOjpBbnlyZWY6IHsKKyAgICAgICAg
Ly8gSWYgMCwgdGhpcyBpcyBudWxscmVmIHNvIGl0IGJlY29tZXMgbnVsbC4gT3RoZXJ3aXNlLCBp
dCBpcyBhbHJlYWR5IGEgSlNWYWx1ZS4KKyAgICAgICAgYXV0byBpc051bGxyZWYgPSBqaXQuYnJh
bmNoSWZOb3RFbXB0eShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGppdC5tb3Zl
VHJ1c3RlZFZhbHVlKGpzTnVsbCgpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVl
R1BSIH0pOworICAgICAgICBpc051bGxyZWYubGluaygmaml0KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQogICAgIGNhc2UgV2FzbTo6STMyOgogICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9QdHIo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICAg
ICAgaml0LmJveEludDMyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBKU1ZhbHVlUmVncyB7IEdQ
UkluZm86OnJldHVyblZhbHVlR1BSIH0sIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKaW5kZXggNTcyYjAzMDdkMDMyYzQw
YjU5MjM1M2U2YjZkNDIzYmQ2ZmNkYmIzYy4uNThjOGUxOWQ4NDhhZGE2N2FhMTZjYmYwZTAxN2Fm
MGYyZGVhZTA3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Fz
bVRvSlMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNw
cApAQCAtMTgwLDYgKzE4MCwyMCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNKiB2bQogICAgICAgICAg
ICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjYXNlIEFueXJlZjogeworICAgICAgICAgICAgICAgIEdQUlJl
ZyBncHJSZWc7CisgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLm1f
Z3ByQXJncy5zaXplKCkpCisgICAgICAgICAgICAgICAgICAgIGdwclJlZyA9IHdhc21DQy5tX2dw
ckFyZ3NbbWFyc2hhbGxlZEdQUnNdLmdwcigpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IHNwaWxsZWQgYWxsIGFyZ3VtZW50cywg
dGhlc2UgcmVnaXN0ZXJzIGFyZSBhdmFpbGFibGUgYXMgc2NyYXRjaC4KKyAgICAgICAgICAgICAg
ICAgICAgZ3ByUmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIwOworICAgICAgICAgICAgICAgICAg
ICBqaXQubG9hZDY0KEpJVDo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZnJP
ZmZzZXQpLCBncHJSZWcpOworICAgICAgICAgICAgICAgICAgICBmck9mZnNldCArPSBzaXplb2Yo
UmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBqaXQuc3RvcmU2
NChncHJSZWcsIGJ1ZmZlciArIGJ1ZmZlck9mZnNldCk7CisgICAgICAgICAgICAgICAgKyttYXJz
aGFsbGVkR1BSczsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGNhc2UgRjMyOiB7CiAgICAgICAgICAgICAgICAgRlBSUmVnIGZwclJlZzsKICAgICAg
ICAgICAgICAgICBpZiAobWFyc2hhbGxlZEZQUnMgPCB3YXNtQ0MubV9mcHJBcmdzLnNpemUoKSkK
QEAgLTI0MSw2ICsyNTUsMTMgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21F
bnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSogdm0KICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBJMzI6CiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBqc051bWJl
cihzdGF0aWNfY2FzdDxpbnQzMl90PihidWZmZXJbYXJnTnVtXSkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQW55cmVmOiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIWJ1ZmZlclthcmdOdW1dKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZyA9IGpzTnVsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IEpTVmFsdWU6OmRlY29kZShidWZm
ZXJbYXJnTnVtXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBjYXNlIEYzMjoKICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBGNjQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBqc051bWJlcihw
dXJpZnlOYU4oYml0d2lzZV9jYXN0PGRvdWJsZT4oYnVmZmVyW2FyZ051bV0pKSk7CkBAIC0yNzIs
NiArMjkzLDEzIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAgICAgICAgICAgICAg
IHJlYWxSZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHJlc3VsdC50b0ludDMyKGV4ZWMpKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIEFueXJlZjogeworICAgICAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0LmlzTnVsbCgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
cmVhbFJlc3VsdCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJlYWxSZXN1bHQgPSBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNh
c2UgRjY0OgogICAgICAgICAgICAgICAgIGNhc2UgRjMyOiB7CiAgICAgICAgICAgICAgICAgICAg
IHJlYWxSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHJlc3VsdC50b051bWJlcihleGVj
KSk7CkBAIC0zODEsNiArNDA5LDI3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAg
ICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQW55cmVmOiB7
CisgICAgICAgICAgICAgICAgR1BSUmVnIGdwclJlZzsKKyAgICAgICAgICAgICAgICBpZiAobWFy
c2hhbGxlZEdQUnMgPCB3YXNtQ0MubV9ncHJBcmdzLnNpemUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgZ3ByUmVnID0gd2FzbUNDLm1fZ3ByQXJnc1ttYXJzaGFsbGVkR1BSc10uZ3ByKCk7CisgICAg
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkg
c3BpbGxlZCBhbGwgYXJndW1lbnRzLCB0aGVzZSByZWdpc3RlcnMgYXJlIGF2YWlsYWJsZSBhcyBz
Y3JhdGNoLgorICAgICAgICAgICAgICAgICAgICBncHJSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQ
UjA7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CisgICAgICAgICAgICAgICAg
ICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7CisKKyAgICAgICAgICAgICAgICAvLyBJZiAw
LCB0aGlzIGlzIG51bGxyZWYgc28gaXQgYmVjb21lcyBudWxsLiBPdGhlcndpc2UsIGl0IGlzIGFs
cmVhZHkgYSBKU1ZhbHVlLgorICAgICAgICAgICAgICAgIGF1dG8gaXNOdWxscmVmID0gaml0LmJy
YW5jaElmTm90RW1wdHkoZ3ByUmVnKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRW
YWx1ZShqc051bGwoKSwgSlNWYWx1ZVJlZ3MgeyBncHJSZWcgfSk7CisgICAgICAgICAgICAgICAg
aXNOdWxscmVmLmxpbmsoJmppdCk7CisKKyAgICAgICAgICAgICAgICBqaXQuc3RvcmU2NChncHJS
ZWcsIGNhbGxlZUZyYW1lLndpdGhPZmZzZXQoY2FsbGVlRnJhbWVPZmZzZXQpKTsKKyAgICAgICAg
ICAgICAgICBjYWxsZWVGcmFtZU9mZnNldCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBGMzI6CiAgICAg
ICAgICAgICBjYXNlIEY2NDoKICAgICAgICAgICAgICAgICAvLyBTa2lwcGVkOiBoYW5kbGVkIGJl
bG93LgpAQCAtNDMwLDYgKzQ3OSw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAg
ICAgICBjYXNlIEFueWZ1bmM6CiAgICAgICAgICAgICBjYXNlIEk2NDoKICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5kbGVkIGFib3ZlLgorICAgICAg
ICAgICAgY2FzZSBBbnlyZWY6CiAgICAgICAgICAgICBjYXNlIEkzMjoKICAgICAgICAgICAgICAg
ICAvLyBTa2lwcGVkOiBoYW5kbGVkIGFib3ZlLgogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFs
bGVkR1BScyA+PSB3YXNtQ0MubV9ncHJBcmdzLnNpemUoKSkKQEAgLTUzOCw2ICs1ODgsMTcgQEAg
RXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdG
YWlsdXJlPiB3YXNtVG9KUyhWTSogdm0KICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogICAgICAg
ICBicmVhazsKICAgICB9CisgICAgY2FzZSBBbnlyZWY6IHsKKyAgICAgICAgLy8gQW55IEpTVmFs
dWUsIFJlZi5mdW5jIG9yIFJlZi5udWxsIGlzIHZhbGlkIGhlcmUsIGFuZCBpdCBpcyBpbXBvc3Np
YmxlIHRvIGNyZWF0ZSBhbnkgb3RoZXIga2luZCBvZiByZWYgZnJvbSB3aXRoaW4gd2FzbS4KKyAg
ICAgICAgLy8gSGVuY2UsIHRoZXJlIGFyZSBubyBleGNlcHRpb24gY2hlY2tzLgorCisgICAgICAg
IC8vIElmIG51bGwsIHRoaXMgaXMgbnVsbHJlZiBzbyBpdCBiZWNvbWVzIDAuIE90aGVyd2lzZSwg
aXQgaXMgc3RpbGwgYSBKU1ZhbHVlLgorICAgICAgICBhdXRvIGlzTnVsbHJlZiA9IGppdC5icmFu
Y2hJZk5vdE51bGwoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBqaXQubW92ZShK
SVQ6OlRydXN0ZWRJbW02NCgwKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBp
c051bGxyZWYubGluaygmaml0KTsKKworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBG
MzI6IHsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmlu
ZGV4IGIzNDRjNjVmYjZjYTM4YzM4YzQ4YjRmYzBjNmQ4Nzc4MWYyNmQ3NzYuLjBiN2IyYjA1MjU2
OGI5Y2IwZDYzNGEzNDM5MTBlMGY2ODEzY2Q1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC04NCw2ICs4NCwx
MSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2ViQXNzZW1ibHlG
dW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGNhc2UgV2FzbTo6STMyOgogICAgICAg
ICAgICAgYXJnID0gSlNWYWx1ZTo6ZGVjb2RlKGFyZy50b0ludDMyKGV4ZWMpKTsKICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFdhc206OkFueXJlZjoKKyAgICAgICAgICAgIC8vIEFs
bCBKU1ZhbHVlcyBhcmUgdmFsaWQsIGJ1dCBudWxsIGJlY29tZXMgMC4KKyAgICAgICAgICAgIGlm
IChhcmcuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgYXJnID0gSlNWYWx1ZTo6ZGVjb2RlKDAp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2FzbTo6STY0OgogICAgICAgICAg
ICAgYXJnID0gSlNWYWx1ZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00NTMsNiArNDU4LDEz
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0
aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFdhc206OkFueXJlZjogeworICAgICAgICAv
LyBJZiAwLCB0aGlzIGlzIG51bGxyZWYgc28gaXQgYmVjb21lcyBudWxsLiBPdGhlcndpc2UsIGl0
IGlzIGFscmVhZHkgYSBKU1ZhbHVlLgorICAgICAgICBhdXRvIGlzTnVsbHJlZiA9IGppdC5icmFu
Y2hJZk5vdEVtcHR5KEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgaml0Lm1vdmVU
cnVzdGVkVmFsdWUoanNOdWxsKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIgfSk7CisgICAgICAgIGlzTnVsbHJlZi5saW5rKCZqaXQpOworICAgICAgICBicmVhazsKKyAg
ICB9CiAgICAgY2FzZSBXYXNtOjpJNjQ6CiAgICAgY2FzZSBXYXNtOjpGdW5jOgogICAgIGNhc2Ug
V2FzbTo6QW55ZnVuYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dh
c20uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgppbmRleCAzMWQx
MDNmOWM4YTIwMjJhNzE0NDAzMjY4NmU3NjBjNDBjYWYzYTQ1Li5lNjFhYTc0YzMzODY2MGU0YjVm
MTZhMzU0ZDUyZDE1MTA2MDA5MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS93YXNtLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29u
CkBAIC0xMiwxMSArMTIsMTIgQEAKICAgICAgICAgImYzMiI6ICAgICB7ICJ0eXBlIjogInZhcmlu
dDciLCAidmFsdWUiOiAgLTMsICJiM3R5cGUiOiAiQjM6OkZsb2F0IiB9LAogICAgICAgICAiZjY0
IjogICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNCwgImIzdHlwZSI6ICJCMzo6
RG91YmxlIiB9LAogICAgICAgICAiYW55ZnVuYyI6IHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6IC0xNiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKKyAgICAgICAgImFueXJlZiI6ICB7ICJ0
eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtMTcsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAog
ICAgICAgICAiZnVuYyI6ICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0zMiwgImIz
dHlwZSI6ICJCMzo6Vm9pZCIgfSwKICAgICAgICAgInZvaWQiOiAgICB7ICJ0eXBlIjogInZhcmlu
dDciLCAidmFsdWUiOiAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAotICAgICJ2
YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiXSwKLSAgICAiYmxvY2tfdHlw
ZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiXSwKKyAgICAidmFsdWVfdHlw
ZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImFueXJlZiJdLAorICAgICJibG9ja190
eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJhbnlyZWYiXSwKICAg
ICAiZWxlbV90eXBlIjogWyJhbnlmdW5jIl0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7CiAgICAg
ICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAwIH0sCkBAIC01OCw2
ICs1OSw4IEBACiAgICAgICAgICJpNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
c3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFt
ZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAi
dmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJ2YXJpbnQ2NCJ9XSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1
ZSBpbnRlcnByZXRlZCBhcyBpNjQiIH0sCiAgICAgICAgICJmNjQuY29uc3QiOiAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2OCwgInJldHVybiI6IFsiZjY0
Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJkb3VibGUifV0sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
YSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmNjQiIH0sCiAgICAgICAgICJmMzIuY29u
c3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2Nywg
InJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJm
bG9hdCJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmMzIiIH0sCisg
ICAgICAgICJyZWYubnVsbCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAg
ICJ2YWx1ZSI6IDIwOCwgInJldHVybiI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6IFtdLCAg
ICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCBudWxsIHJlZmVyZW5jZSIg
fSwKKyAgICAgICAgInJlZi5pc19udWxsIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFs
IiwgICAgInZhbHVlIjogMjA5LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJhbnlyZWYiXSwgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJkZXRlcm1pbmUgaWYgYSByZWZlcmVu
Y2UgaXMgbnVsbCIgfSwKICAgICAgICAgImdldF9sb2NhbCI6ICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDMyLCAicmV0dXJuIjogWyJhbnkiXSwgICAgICAi
cGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFt
ZSI6ICJsb2NhbF9pbmRleCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJyZWFkIGEgbG9j
YWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAic2V0X2xvY2FsIjogICAgICAg
ICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzMsICJyZXR1cm4iOiBb
XSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1d
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAidGVl
X2xvY2FsIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAg
MzQsICJyZXR1cm4iOiBbImFueSJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUi
OiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIGFu
ZCByZXR1cm4gdGhlIHNhbWUgdmFsdWUiIH0sCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjODNjZmNkZmYwYmJhOTc5MGFlMDA2NjE1YTJm
NjczYTcxN2JhMWYuLmExMzYwNjUxZTJjYjE2NGJlYjlkOWI3ZWUzNjAwOTFmZjRjNWMzZjUgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTktMDUtMTYgIEp1c3RpbiBNaWNoYXVkICA8anVzdGluX21pY2hhdWRA
YXBwbGUuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIEFkZCBzdXBwb3J0IGZvciBB
bnlyZWYgaW4gcGFyYW1ldGVycyBhbmQgcmV0dXJuIHR5cGVzLCBSZWYubnVsbCBhbmQgUmVmLmlz
X251bGwgZm9yIEFueXJlZiB2YWx1ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTc5NjkKKworICAgICAgICBTdXBwb3J0IHRoZSBhbnlyZWYgdHlw
ZSBpbiBCdWlsZGVyLmpzLCBwbHVzIGFkZCBzb21lIGV4dHJhIGVycm9yIGxvZ2dpbmcuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3YXNtL0J1aWxk
ZXIuanM6CisgICAgICAgIChjb25zdC5faXNWYWxpZFZhbHVlKToKKyAgICAgICAgKiB3YXNtL3Jl
ZmVyZW5jZXMvYW55cmVmX21vZHVsZXMuanM6IEFkZGVkLgorICAgICAgICAoQ2FsbC4zLlJlZklz
TnVsbC5FbmQuRW5kLldlYkFzc2VtYmx5LmpzLmlkZW50KToKKyAgICAgICAgKENhbGwuMy5SZWZJ
c051bGwuRW5kLkVuZC5XZWJBc3NlbWJseS5qcy5tYWtlX251bGwpOgorICAgICAgICAoQ2FsbC4z
LlJlZklzTnVsbC5FbmQuRW5kLldlYkFzc2VtYmx5KToKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5j
ZXMvaXNfbnVsbC5qczogQWRkZWQuCisgICAgICAgICogd2FzbS9yZWZlcmVuY2VzL2lzX251bGxf
ZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAqIHdhc20vc3BlYy1oYXJuZXNzL2luZGV4LmpzOgor
ICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDE5LTA1LTEwICBTYWFtIGJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGwgdG8gSlNUb1dhc21JQ0NhbGxlZTo6Y3Jl
YXRlU3RydWN0dXJlIHBhc3NlcyBpbiB3cm9uZyBwcm90b3R5cGUgdmFsdWUKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzIGIvSlNUZXN0cy93YXNtL0J1aWxkZXIuanMKaW5kZXgg
ZTk0ZjBhMzFhNDE2Zjg2MzE3OTM1NTFkYzExNjAzZGU2ZGM0ZDEzYy4uZjIyZGUxYjgxYzg0MDlk
YTA0NGJiMDUxMTJhNDVjZDI5ZmQ3Mjg5NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL0J1aWxk
ZXIuanMKKysrIGIvSlNUZXN0cy93YXNtL0J1aWxkZXIuanMKQEAgLTMzLDYgKzMzLDcgQEAgY29u
c3QgX2lzVmFsaWRWYWx1ZSA9ICh2YWx1ZSwgdHlwZSkgPT4gewogICAgIHN3aXRjaCAodHlwZSkg
ewogICAgIC8vIFdlIGFsbG93IGJvdGggc2lnbmVkIGFuZCB1bnNpZ25lZCBudW1iZXJzLgogICAg
IGNhc2UgImkzMiI6IHJldHVybiBNYXRoLnJvdW5kKHZhbHVlKSA9PT0gdmFsdWUgJiYgTExCLnZh
cmludDMyTWluIDw9IHZhbHVlICYmIHZhbHVlIDw9IExMQi52YXJ1aW50MzJNYXg7CisgICAgY2Fz
ZSAiYW55cmVmIjogcmV0dXJuIHRydWU7CiAgICAgY2FzZSAiaTY0IjogcmV0dXJuIHRydWU7IC8v
IEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MjAgNjQt
Yml0IHZhbHVlcwogICAgIGNhc2UgImYzMiI6IHJldHVybiB0eXBlb2YodmFsdWUpID09PSAibnVt
YmVyIiAmJiBpc0Zpbml0ZSh2YWx1ZSk7CiAgICAgY2FzZSAiZjY0IjogcmV0dXJuIHR5cGVvZih2
YWx1ZSkgPT09ICJudW1iZXIiICYmIGlzRmluaXRlKHZhbHVlKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9yZWZlcmVuY2VzL2FueXJlZl9tb2R1bGVzLmpzIGIvSlNUZXN0cy93YXNtL3JlZmVy
ZW5jZXMvYW55cmVmX21vZHVsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYwNWE2MGE3ZDdlMTQ0MzQxMTUz
MjJiOWEwZGExZWFiODk5NjZjZgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9yZWZl
cmVuY2VzL2FueXJlZl9tb2R1bGVzLmpzCkBAIC0wLDAgKzEsMTE2IEBACitpbXBvcnQgKiBhcyBh
c3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKK2ltcG9ydCBCdWlsZGVyIGZyb20gJy4uL0J1aWxk
ZXIuanMnOworCitjb25zdCAkMSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShuZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAg
LkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5FeHBvcnQoKQorICAgICAgICAgIC5GdW5jdGlvbigi
aCIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJpIikKKyAgICAgICAgICAuRnVuY3Rpb24oImoiKQor
ICAgICAgICAgIC5GdW5jdGlvbigiayIpCisgICAgICAuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAg
ICAgICAgLkZ1bmN0aW9uKCJoIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJldDogImFueXJlZiIg
fSkKKyAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1
bmN0aW9uKCJpIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgICAu
UmVmTnVsbCgpCisgICAgICAgICAgICAuQ2FsbCgwKQorICAgICAgICAuRW5kKCkKKworICAgICAg
ICAuRnVuY3Rpb24oImoiLCB7IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiaTMyIiB9KQorICAg
ICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAuUmVmSXNOdWxsKCkKKyAgICAgICAg
LkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJrIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIi
IH0pCisgICAgICAgICAgICAuUmVmTnVsbCgpCisgICAgICAgICAgICAuUmVmSXNOdWxsKCkKKyAg
ICAgICAgLkVuZCgpCisgICAgICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSkpOworCitjb25z
dCAkMiA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChu
ZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkltcG9ydCgpCisgICAg
ICAgICAgLkZ1bmN0aW9uKCJtMSIsICJoIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJldDogImFu
eXJlZiIgfSkKKyAgICAgICAgICAuRnVuY3Rpb24oIm0xIiwgImoiLCB7IHBhcmFtczogWyJhbnly
ZWYiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgIC5GdW5jdGlvbigianMiLCAiaWRlbnQiLCB7
IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgIC5GdW5jdGlv
bigianMiLCAibWFrZV9udWxsIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAg
ICAuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuRXhwb3J0KCkKKyAgICAg
ICAgICAuRnVuY3Rpb24oImNhbGxfaCIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJjYWxsX2oiKQor
ICAgICAgICAgIC5GdW5jdGlvbigiY2FsbF9oX251bGwiKQorICAgICAgICAgIC5GdW5jdGlvbigi
Y2FsbF9qX251bGwiKQorICAgICAgICAgIC5GdW5jdGlvbigiY2FsbF9pZGVudCIpCisgICAgICAg
ICAgLkZ1bmN0aW9uKCJjYWxsX2lkZW50X251bGwiKQorICAgICAgICAgIC5GdW5jdGlvbigiaXNf
bWFrZW51bGxfbnVsbCIpCisgICAgICAuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1
bmN0aW9uKCJjYWxsX2giLCB7IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiYW55cmVmIiB9KQor
ICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgIC5DYWxsKDApCisgICAgICAgIC5FbmQo
KQorCisgICAgICAgIC5GdW5jdGlvbigiY2FsbF9qIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJl
dDogImkzMiIgfSkKKyAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAuQ2FsbCgxKQor
ICAgICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rpb24oImNhbGxfaF9udWxsIiwgeyBwYXJh
bXM6IFtdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgLlJlZk51bGwoKQorICAgICAgICAg
IC5DYWxsKDApCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlvbigiY2FsbF9qX251
bGwiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAuUmVmTnVsbCgpCisg
ICAgICAgICAgLkNhbGwoMSkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJj
YWxsX2lkZW50IiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJldDogImFueXJlZiIgfSkKKyAgICAg
ICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAuQ2FsbCgyKQorICAgICAgICAuRW5kKCkKKwor
ICAgICAgICAuRnVuY3Rpb24oImNhbGxfaWRlbnRfbnVsbCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAi
YW55cmVmIiB9KQorICAgICAgICAgIC5SZWZOdWxsKCkKKyAgICAgICAgICAuQ2FsbCgyKQorICAg
ICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rpb24oImlzX21ha2VudWxsX251bGwiLCB7IHBh
cmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAuQ2FsbCgzKQorICAgICAgICAgIC5S
ZWZJc051bGwoKQorICAgICAgICAuRW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdl
dCgpKSwgeyBtMTogJDEuZXhwb3J0cywganM6IHsKKyAgICAgICAgaWRlbnQ6IGZ1bmN0aW9uKHgp
IHsgcmV0dXJuIHg7IH0sCisgICAgICAgIG1ha2VfbnVsbDogZnVuY3Rpb24oKSB7IHJldHVybiBu
dWxsOyB9LAorICAgICAgfSB9KTsKKworYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9oKG51bGwp
LCBudWxsKQorCitjb25zdCBvYmogPSB7IHRlc3Q6ICJoaSIgfQorYXNzZXJ0LmVxKCQyLmV4cG9y
dHMuY2FsbF9oKG9iaiksIG9iaikKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaCg1KSwgNSkK
K2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaCgiaGkiKSwgImhpIikKK2Fzc2VydC5lcSgkMi5l
eHBvcnRzLmNhbGxfaCh1bmRlZmluZWQpLCB1bmRlZmluZWQpCisKK2Fzc2VydC5lcSgkMi5leHBv
cnRzLmNhbGxfaihvYmopLCAwKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qKDUpLCAwKQor
YXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qKCJoaSIpLCAwKQorYXNzZXJ0LmVxKCQyLmV4cG9y
dHMuY2FsbF9qKG51bGwpLCAxKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qKHVuZGVmaW5l
ZCksIDApCisKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaF9udWxsKCksIG51bGwpCithc3Nl
cnQuZXEoJDIuZXhwb3J0cy5jYWxsX2pfbnVsbCgpLCAxKQorCithc3NlcnQuZXEoJDIuZXhwb3J0
cy5jYWxsX2lkZW50KG51bGwpLCBudWxsKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9pZGVu
dChvYmopLCBvYmopCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50KDUpLCA1KQorYXNz
ZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9pZGVudCgiaGkiKSwgImhpIikKK2Fzc2VydC5lcSgkMi5l
eHBvcnRzLmNhbGxfaWRlbnQodW5kZWZpbmVkKSwgdW5kZWZpbmVkKQorCithc3NlcnQuZXEoJDIu
ZXhwb3J0cy5jYWxsX2lkZW50X251bGwoKSwgbnVsbCkKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmlz
X21ha2VudWxsX251bGwoKSwgMSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2Vz
L2lzX251bGwuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9pc19udWxsLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgzM2E1ZmI3ZTZjMTY1MWMzMTlkNjlkMDI0M2Q0ZDUwMzhiZGU0ZTMKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9pc19udWxsLmpzCkBAIC0wLDAgKzEsNTgg
QEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOworaW1wb3J0IEJ1aWxk
ZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CisKK2NvbnN0IGJ1aWxkZXIgPSAobmV3IEJ1aWxkZXIo
KSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAu
RXhwb3J0KCkKKyAgICAgICAgICAuRnVuY3Rpb24oImgiKQorICAgICAgICAgIC5GdW5jdGlvbigi
aSIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJqIikKKyAgICAgICAgICAuRnVuY3Rpb24oImsiKQor
ICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlvbigiaCIsIHsgcGFy
YW1zOiBbImFueXJlZiJdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgLkdldExvY2FsKDAp
CisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlvbigiaSIsIHsgcGFyYW1zOiBbXSwg
cmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgICAgLlJlZk51bGwoKQorICAgICAgICAgICAgLkNh
bGwoMCkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJqIiwgeyBwYXJhbXM6
IFsiYW55cmVmIl0sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAg
ICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlv
bigiayIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgLlJlZk51bGwo
KQorICAgICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAgIC5FbmQoKQorICAgICAgLkVuZCgp
OworCitjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCkuZ2V0KCk7Citjb25zdCBtb2R1
bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbik7Citjb25zdCBpbnN0YW5jZSA9IG5ldyBX
ZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUpOworYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMu
aChudWxsKSwgbnVsbCkKKworY29uc3Qgb2JqID0geyB0ZXN0OiAiaGkiIH0KK2Fzc2VydC5lcShp
bnN0YW5jZS5leHBvcnRzLmgob2JqKSwgb2JqKQorYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMu
aCg1KSwgNSkKK2Fzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmgoImhpIiksICJoaSIpCithc3Nl
cnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5oKHVuZGVmaW5lZCksIHVuZGVmaW5lZCkKKworYXNzZXJ0
LmVxKGluc3RhbmNlLmV4cG9ydHMuaSgpLCBudWxsKQorCithc3NlcnQuZXEoaW5zdGFuY2UuZXhw
b3J0cy5qKG9iaiksIDApCithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5qKDUpLCAwKQorYXNz
ZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaigiaGkiKSwgMCkKK2Fzc2VydC5lcShpbnN0YW5jZS5l
eHBvcnRzLmoobnVsbCksIDEpCithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5qKHVuZGVmaW5l
ZCksIDApCisKK2Fzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmsoKSwgMSkKKworYXNzZXJ0LmVx
KG9iai50ZXN0LCAiaGkiKQorY29uc3Qgb2JqMiA9IGluc3RhbmNlLmV4cG9ydHMuaChvYmopCitv
YmoyLnRlc3QgPSAiYnllIgorYXNzZXJ0LmVxKG9iai50ZXN0LCAiYnllIikKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2lzX251bGxfZXJyb3IuanMgYi9KU1Rlc3RzL3dhc20v
cmVmZXJlbmNlcy9pc19udWxsX2Vycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxNWIzNmFkOTk2MTRmMGYw
ZjViODdjOTQyMzU3MjRkMTY5NTVjOGIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20v
cmVmZXJlbmNlcy9pc19udWxsX2Vycm9yLmpzCkBAIC0wLDAgKzEsMjIgQEAKK2ltcG9ydCAqIGFz
IGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOworaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVp
bGRlci5qcyc7CisKK3sKKyAgICBjb25zdCBidWlsZGVyID0gKG5ldyBCdWlsZGVyKCkpCisgICAg
ICAuVHlwZSgpLkVuZCgpCisgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgLkV4cG9ydCgp
CisgICAgICAgICAgLkZ1bmN0aW9uKCJqIikKKyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQor
ICAgICAgICAuRnVuY3Rpb24oImoiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAg
ICAgICAgIC5JMzJDb25zdCgwKQorICAgICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAgIC5F
bmQoKQorICAgICAgLkVuZCgpOworCisgICAgY29uc3QgYmluID0gYnVpbGRlci5XZWJBc3NlbWJs
eSgpOworICAgIGJpbi50cmltKCk7CisKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJB
c3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAiV2Vi
QXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHJlZi5pc19udWxsIHRvIHR5cGUgSTMy
IGV4cGVjdGVkIEFueXJlZiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3
IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpJykiKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9zcGVjLWhhcm5lc3MvaW5kZXguanMgYi9KU1Rlc3RzL3dhc20vc3BlYy1oYXJuZXNz
L2luZGV4LmpzCmluZGV4IGJjMjk4ZDIwMGEwN2IxZDU2OTcwOGFkZjgwZTA0YjNhYjk2YTE0Y2Mu
LmViMDBjNmQ4NzhmYzkwZDUxMWY2MDZiNGI0MzQ4NDU2ODY3MzVhZTQgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvd2FzbS9zcGVjLWhhcm5lc3MvaW5kZXguanMKKysrIGIvSlNUZXN0cy93YXNtL3NwZWMt
aGFybmVzcy9pbmRleC5qcwpAQCAtMTkwLDYgKzE5MCw3IEBAIGZ1bmN0aW9uIGluc3RhbmNlKGJ5
dGVzLCBpbXBvcnRzID0gcmVnaXN0cnksIHZhbGlkID0gdHJ1ZSkgewogICAgIGlmICh2YWxpZCkg
ewogICAgICAgICB1bmlxdWVUZXN0KCgpID0+IHsKICAgICAgICAgICAgIGxldCBpbnN0YW50aWF0
ZWQgPSBlcnIgPT09IG51bGw7CisgICAgICAgICAgICBpZiAoIWluc3RhbnRpYXRlZCkgcHJpbnQo
ZXJyKTsKICAgICAgICAgICAgIGFzc2VydF90cnVlKGluc3RhbnRpYXRlZCwgZXJyKTsKICAgICAg
ICAgfSwgIm1vZHVsZSBzdWNjZXNzZnVsbHkgaW5zdGFudGlhdGVkIik7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVzdHMvd2FzbS93YXNtLmpzb24KaW5k
ZXggMzFkMTAzZjljOGEyMDIyYTcxNDQwMzI2ODZlNzYwYzQwY2FmM2E0NS4uZTYxYWE3NGMzMzg2
NjBlNGI1ZjE2YTM1NGQ1MmQxNTEwNjAwOTJiMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3dh
c20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCkBAIC0xMiwxMSArMTIsMTIgQEAK
ICAgICAgICAgImYzMiI6ICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTMsICJi
M3R5cGUiOiAiQjM6OkZsb2F0IiB9LAogICAgICAgICAiZjY0IjogICAgIHsgInR5cGUiOiAidmFy
aW50NyIsICJ2YWx1ZSI6ICAtNCwgImIzdHlwZSI6ICJCMzo6RG91YmxlIiB9LAogICAgICAgICAi
YW55ZnVuYyI6IHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0xNiwgImIzdHlwZSI6ICJC
Mzo6Vm9pZCIgfSwKKyAgICAgICAgImFueXJlZiI6ICB7ICJ0eXBlIjogInZhcmludDciLCAidmFs
dWUiOiAtMTcsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVuYyI6ICAgIHsg
InR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0zMiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwK
ICAgICAgICAgInZvaWQiOiAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtNjQsICJi
M3R5cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAotICAgICJ2YWx1ZV90eXBlIjogWyJpMzIiLCAi
aTY0IiwgImYzMiIsICJmNjQiXSwKLSAgICAiYmxvY2tfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJm
MzIiLCAiZjY0IiwgInZvaWQiXSwKKyAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJm
MzIiLCAiZjY0IiwgImFueXJlZiJdLAorICAgICJibG9ja190eXBlIjogWyJpMzIiLCAiaTY0Iiwg
ImYzMiIsICJmNjQiLCAidm9pZCIsICJhbnlyZWYiXSwKICAgICAiZWxlbV90eXBlIjogWyJhbnlm
dW5jIl0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlvbiI6IHsgInR5
cGUiOiAidWludDgiLCAidmFsdWUiOiAwIH0sCkBAIC01OCw2ICs1OSw4IEBACiAgICAgICAgICJp
NjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6
ICA2NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlw
ZSI6ICJ2YXJpbnQ2NCJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBpNjQi
IH0sCiAgICAgICAgICJmNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lh
bCIsICAgICJ2YWx1ZSI6ICA2OCwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6
IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUi
LCAgICAgICAgICAidHlwZSI6ICJkb3VibGUifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRl
cnByZXRlZCBhcyBmNjQiIH0sCiAgICAgICAgICJmMzIuY29uc3QiOiAgICAgICAgICAgeyAiY2F0
ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2NywgInJldHVybiI6IFsiZjMyIl0sICAg
ICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7
Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJmbG9hdCJ9XSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25z
dGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmMzIiIH0sCisgICAgICAgICJyZWYubnVsbCI6ICAg
ICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6IDIwOCwgInJldHVy
biI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAg
ImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiYSBjb25zdGFudCBudWxsIHJlZmVyZW5jZSIgfSwKKyAgICAgICAgInJlZi5pc19u
dWxsIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogMjA5LCAi
cmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJhbnlyZWYiXSwgICAgICAgICAg
ICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJkZXRlcm1pbmUgaWYgYSByZWZlcmVuY2UgaXMgbnVsbCIgfSwKICAgICAg
ICAgImdldF9sb2NhbCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZh
bHVlIjogIDMyLCAicmV0dXJuIjogWyJhbnkiXSwgICAgICAicGFyYW1ldGVyIjogW10sICAgICAg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJsb2NhbF9pbmRleCIsICAg
ICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJyZWFkIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1l
dGVyIiB9LAogICAgICAgICAic2V0X2xvY2FsIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNw
ZWNpYWwiLCAgICAidmFsdWUiOiAgMzMsICJyZXR1cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0
ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxv
Y2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEgbG9jYWwgdmFy
aWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAidGVlX2xvY2FsIjogICAgICAgICAgIHsg
ImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzQsICJyZXR1cm4iOiBbImFueSJd
LCAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUi
OiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIndy
aXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIGFuZCByZXR1cm4gdGhlIHNhbWUgdmFs
dWUiIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370157</attachid>
            <date>2019-05-17 15:09:26 -0700</date>
            <delta_ts>2019-05-17 15:16:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197969-20190517150925.patch</filename>
            <type>text/plain</type>
            <size>41193</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NmZiMzY3ZGUyNzFlYTM1ZWQ4M2ExMmIyNDBhYjc5NjE4YmRhMDI0Li43MjFlNDFhODQ3NGFlYjc0
MDA0NGRkY2E5OWEyZGUwMjE4NjcwZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxOS0wNS0xNyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIEFu
eXJlZiBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlwZXMsIFJlZi5udWxsIGFuZCBSZWYuaXNf
bnVsbCBmb3IgQW55cmVmIHZhbHVlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5Nzk2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBydW50aW1lIG9wdGlvbiBmb3Igd2FzbSByZWZlcmVu
Y2VzLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQW55cmVmIGFzIGEgdmFsdWUgdHlwZS4KKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIEFueXJlZiBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlw
ZXMgb2YgV2FzbSBmdW5jdGlvbnMuIEpTVmFsdWVzIGFyZSBtYXJzaGFsbGVkIGludG8vb3V0IG9m
IHdhc20gQW55cmVmcworICAgICAgICAgICAgICAgIGFzIGEgYmxhY2sgYm94LCBleGNlcHQgbnVs
bCB3aGljaCBiZWNvbWVzIGEgTnVsbHJlZiB2YWx1ZS4gTnVsbHJlZiBpcyBub3QgZXhwcmVzc2li
bGUgaW4gdGhlIGJ5dGVjb2RlIG9yIGluIHRoZSBqcyBBUEkuCisgICAgICAgIEFkZCBSZWYubnVs
bCBhbmQgUmVmLmlzX251bGwgZm9yIEFueXJlZiB2YWx1ZXMuIFN1cHBvcnQgZm9yIHRoZXNlIGZ1
bmN0aW9ucyB3aXRoIGZ1bmNyZWZzIGlzIG91dCBvZiBzY29wZS4KKworICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OnRtcEZvclR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpXYXNt
OjpBaXJJUkdlbmVyYXRvcjo6YWRkUmVmSXNOdWxsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZFJldHVybik6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFJlZklzTnVsbCk6
CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6Q2FsbGluZ0NvbnZlbnRpb25BaXI6Om1hcnNoYWxsQXJndW1lbnQgY29uc3QpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpDYWxsaW5nQ29udmVudGlvbkFpcjo6c2V0dXBDYWxsIGNvbnN0KToK
KyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNWYWx1
ZVR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChK
U0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpGdW5jdGlvblBhcnNlcik6CisgICAg
ICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUV4cHJlc3Npb24p
OgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJl
YWNoYWJsZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vV2FzbVZhbGlkYXRlLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFJlZklzTnVsbCk6CisgICAgICAgICogd2Fz
bS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIucHk6CisgICAgICAgIChiaXRTZXQpOgorICAgICAgICAq
IHdhc20vanMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpjcmVhdGVKU1RvV2Fz
bVdyYXBwZXIpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24pOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdyk6CisgICAgICAg
ICogd2FzbS93YXNtLmpzb246CisKIDIwMTktMDUtMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDb21wcmVzcyBtaXNjZWxhbmVvdXMgSklUIHJl
bGF0ZWQgZGF0YSBzdHJ1Y3R1cmVzIHdpdGggUGFja2VkPD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAppbmRleCA2YmMxNTAwMjFhM2E1MDAzZThiYjE0YTQ4MmNlMTkzMDU2
MmZjNWQ4Li5mMzJmYTZlYThlOGIwZTVmZmQxZDA5Mjk1M2NkOWY2ZDVlYmM4NGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC01MDIsNiArNTAyLDcgQEAgY29u
c3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2
KGJvb2wsIHVzZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpLCBlbmFibGVXZWJBc3NlbWJseVN0cmVh
bWluZ0FwaSwgTm9ybWFsLCAiQWxsb3cgdG8gcnVuIFdlYkFzc2VtYmx5J3MgU3RyZWFtaW5nIEFQ
SSIpIFwKICAgICB2KGJvb2wsIHVzZUNhbGxJQ3NGb3JXZWJBc3NlbWJseVRvSlNDYWxscywgdHJ1
ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCB1c2UgQ2FsbExpbmtJbmZvIHRvIGlubGluZSBj
YWNoZSBXYXNtIHRvIEpTIGNhbGxzLiIpIFwKICAgICB2KGJvb2wsIHVzZUVhZ2VyV2ViQXNzZW1i
bHlNb2R1bGVIYXNoaW5nLCBmYWxzZSwgTm9ybWFsLCAiVW5uYW1lZCBXZWJBc3NlbWJseSBtb2R1
bGVzIGFyZSBpZGVudGlmaWVkIGluIGJhY2t0cmFjZXMgdGhyb3VnaCB0aGVpciBoYXNoLCBpZiBh
dmFpbGFibGUuIikgXAorICAgIHYoYm9vbCwgdXNlV2ViQXNzZW1ibHlSZWZlcmVuY2VzLCB0cnVl
LCBOb3JtYWwsICJBbGxvdyB0eXBlcyBmcm9tIHRoZSB3YXNtIHJlZmVyZW5jZXMgc3BlYy4iKSBc
CiAgICAgdihib29sLCB1c2VCaWdJbnQsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxs
IGVuYWJsZSBCaWdJbnQgc3VwcG9ydC4iKSBcCiAgICAgdihib29sLCB1c2VJbnRsTnVtYmVyRm9y
bWF0VG9QYXJ0cywgZW5hYmxlSW50bE51bWJlckZvcm1hdFRvUGFydHMsIE5vcm1hbCwgIklmIHRy
dWUsIHdlIHdpbGwgZW5hYmxlIEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5mb3JtYXRUb1Bh
cnRzIikgXAogICAgIHYoYm9vbCwgdXNlSW50bFBsdXJhbFJ1bGVzLCBlbmFibGVJbnRsUGx1cmFs
UnVsZXMsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdpbGwgZW5hYmxlIEludGwuUGx1cmFsUnVsZXMu
IikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRv
ci5jcHAKaW5kZXggMjZhNDAwZGZiZjUxMzJkN2UzN2ExNTY5MzRhYTYwNWE0MTE2NjdjZS4uOTNi
NGE3YTFmYmQ2YmI0NjkzYWViMDJmY2ZjMjU0NGVkYzU3NmU0MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC00MCw2ICs0MCw3
IEBACiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJCaW5hcnlTd2l0Y2guaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiVmlydHVh
bFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCkBAIC0yMjks
NiArMjMwLDggQEAgcHVibGljOgogICAgIEV4cHJlc3Npb25UeXBlIGFkZENvbnN0YW50KFR5cGUs
IHVpbnQ2NF90KTsKICAgICBFeHByZXNzaW9uVHlwZSBhZGRDb25zdGFudChCYXNpY0Jsb2NrKiwg
VHlwZSwgdWludDY0X3QpOwogCisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4g
YWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCk7CisKICAgICAvLyBMb2NhbHMKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVS
TiBnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAg
UGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3QgaW5kZXgs
IEV4cHJlc3Npb25UeXBlIHZhbHVlKTsKQEAgLTM1OSw2ICszNjIsNyBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIFR5cGU6OkkzMjoKICAgICAgICAgICAgIHJldHVybiBnMzIoKTsKICAgICAgICAg
Y2FzZSBUeXBlOjpJNjQ6CisgICAgICAgIGNhc2UgVHlwZTo6QW55cmVmOgogICAgICAgICAgICAg
cmV0dXJuIGc2NCgpOwogICAgICAgICBjYXNlIFR5cGU6OkYzMjoKICAgICAgICAgICAgIHJldHVy
biBmMzIoKTsKQEAgLTc4NSw2ICs3ODksNyBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0
b3IoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAg
ICAgICAgICAgYXBwZW5kKE1vdmUzMiwgYXJnLCBtX2xvY2Fsc1tpXSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUeXBlOjpJNjQ6CisgICAgICAgIGNhc2UgVHlwZTo6QW55cmVm
OgogICAgICAgICAgICAgYXBwZW5kKE1vdmUsIGFyZywgbV9sb2NhbHNbaV0pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZTo6RjMyOgpAQCAtODk0LDYgKzg5OSw3IEBAIGF1
dG8gQWlySVJHZW5lcmF0b3I6OmFkZENvbnN0YW50KEJhc2ljQmxvY2sqIGJsb2NrLCBUeXBlIHR5
cGUsIHVpbnQ2NF90IHZhbHVlKSAtCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBUeXBl
OjpJMzI6CiAgICAgY2FzZSBUeXBlOjpJNjQ6CisgICAgY2FzZSBUeXBlOjpBbnlyZWY6CiAgICAg
ICAgIGFwcGVuZChibG9jaywgTW92ZSwgQXJnOjpiaWdJbW0odmFsdWUpLCByZXN1bHQpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFR5cGU6OkYzMjoKQEAgLTkxNyw2ICs5MjMsMTggQEAgYXV0
byBBaXJJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJl
KSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYXV0byBBaXJJUkdlbmVy
YXRvcjo6YWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUm
IHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAoreworICAgIEFTU0VSVCh2YWx1ZS50bXAoKSk7Cisg
ICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlOjpJMzIpOworICAgIGF1dG8gdG1wID0gZzY0KCk7
CisKKyAgICBhcHBlbmQoTW92ZSwgQXJnOjpiaWdJbW0oSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgp
KSksIHRtcCk7CisgICAgYXBwZW5kKENvbXBhcmU2NCwgQXJnOjpyZWxDb25kKE1hY3JvQXNzZW1i
bGVyOjpFcXVhbCksIHZhbHVlLCB0bXAsIHJlc3VsdCk7CisKKyAgICByZXR1cm4geyB9OworfQor
CiBhdXRvIEFpcklSR2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIEFTU0VSVChtX2xvY2Fsc1tp
bmRleF0udG1wKCkpOwpAQCAtMTUwMSw2ICsxNTE5LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6
YWRkUmV0dXJuKGNvbnN0IENvbnRyb2xEYXRhJiBkYXRhLCBjb25zdCBFeHByZXNzaW9uTGlzdCYg
cmUKICAgICAgICAgICAgIGFwcGVuZChSZXQzMiwgcmV0dXJuVmFsdWVHUFIpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAgICAgICBjYXNlIFR5cGU6OkFu
eXJlZjoKICAgICAgICAgICAgIGFwcGVuZChNb3ZlLCByZXR1cm5WYWx1ZXNbMF0sIHJldHVyblZh
bHVlR1BSKTsKICAgICAgICAgICAgIGFwcGVuZChSZXQ2NCwgcmV0dXJuVmFsdWVHUFIpOwogICAg
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHAKaW5kZXggYWVlOGI0ZGEwMDQ4NTE1ZWM1YzhiZDg5Mjk0NTcwYjhkYzA2
MDZjOS4uYzdkNTYzOTY1MzZjZGZiNWY4YTBlYzk1MjYwZTgyODBhNmZhMWNiMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcApAQCAtMTgz
LDYgKzE4Myw4IEBAIHB1YmxpYzoKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVS
TiBhZGRMb2NhbChUeXBlLCB1aW50MzJfdCk7CiAgICAgRXhwcmVzc2lvblR5cGUgYWRkQ29uc3Rh
bnQoVHlwZSwgdWludDY0X3QpOwogCisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRV
Uk4gYWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJl
c3VsdCk7CisKICAgICAvLyBMb2NhbHMKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JF
VFVSTiBnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAg
ICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKTsKQEAgLTU0NCw2ICs1NDYsMTIgQEAgYXV0byBCM0lS
R2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBh
cnRpYWxSZXN1bHQKICAgICByZXR1cm4geyB9OwogfQogCithdXRvIEIzSVJHZW5lcmF0b3I6OmFk
ZFJlZklzTnVsbChFeHByZXNzaW9uVHlwZSYgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQp
IC0+IFBhcnRpYWxSZXN1bHQKK3sKKyAgICByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5k
TmV3PFZhbHVlPihtX3Byb2MsIEIzOjpFcXVhbCwgb3JpZ2luKCksIHZhbHVlLCBtX2N1cnJlbnRC
bG9jay0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVsbCgpKSkpOworICAgIHJldHVybiB7IH07Cit9CisKIGF1dG8gQjNJUkdlbmVy
YXRvcjo6Z2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+
IFBhcnRpYWxSZXN1bHQKIHsKICAgICBBU1NFUlQobV9sb2NhbHNbaW5kZXhdKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXgg
MzE4NjZjMjBkY2JmZDA5ZmFkZGNmOTg3Mjg5Mzc5OGU1OTllMDI3My4uMTBlYjhjZDRlNzMzNmUw
ZWYyNGRjOWJlNTA0Yjc1MDdjZTgzYzc1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwcml2
YXRlOgogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBUeXBlOjpJMzI6CiAg
ICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAgICAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAg
ICAgICAgIG1hcnNoYWxsQXJndW1lbnRJbXBsKG1fZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBz
dGFja09mZnNldCwgcmVnRnVuYywgc3RhY2tGdW5jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFR5cGU6OkYzMjoKQEAgLTI5OSw2ICszMDAsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlOjpJMzI6CiAgICAgICAgIGNhc2UgVHlwZTo6
STY0OgorICAgICAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgICAgIHBhdGNocG9pbnQt
PnJlc3VsdENvbnN0cmFpbnQgPSBCMzo6VmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCBmYzY5ZWU1YzU4YTRmYWMzMWFjOTdiNGUx
NmFjNjA0ZjJhMTRhZThkLi5iNzYyMjY0NDE2M2JmNzhmNWVkMzgwNTE5ZDQzODM2YjUxNDgzZTE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC02Miw2ICs2Miw4
IEBAIGlubGluZSBib29sIGlzVmFsdWVUeXBlKFR5cGUgdHlwZSkKICAgICBjYXNlIEYzMjoKICAg
ICBjYXNlIEY2NDoKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBBbnlyZWY6CisgICAg
ICAgIHJldHVybiBPcHRpb25zOjp1c2VXZWJBc3NlbWJseVJlZmVyZW5jZXMoKTsKICAgICBkZWZh
dWx0OgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCmluZGV4IDJlMDI4ZTM2NjYyNjUzZWNlYzM5ZTAyZWRi
OGEyMGJmZDQ0Y2RhOTEuLjE3NTA1NmI1OGU3MjFmNzQ0MmQ0OGM3Mzk2NmRlMzMwMTE5NTgwN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5o
CkBAIC0xMDUsNyArMTA1LDcgQEAgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OkZ1bmN0aW9uUGFy
c2VyKENvbnRleHQmIGNvbnRleHQsIGNvbnN0IHVpbnQ4X3QqIGZ1bmN0aW8KICAgICAsIG1faW5m
byhpbmZvKQogewogICAgIGlmICh2ZXJib3NlKQotICAgICAgICBkYXRhTG9nTG4oIlBhcnNpbmcg
ZnVuY3Rpb24gc3RhcnRpbmcgYXQ6ICIsICh1aW50cHRyX3QpZnVuY3Rpb25TdGFydCwgIiBvZiBs
ZW5ndGg6ICIsIGZ1bmN0aW9uTGVuZ3RoKTsKKyAgICAgICAgZGF0YUxvZ0xuKCJQYXJzaW5nIGZ1
bmN0aW9uIHN0YXJ0aW5nIGF0OiAiLCAodWludHB0cl90KWZ1bmN0aW9uU3RhcnQsICIgb2YgbGVu
Z3RoOiAiLCBmdW5jdGlvbkxlbmd0aCwgIiB3aXRoIHNpZ25hdHVyZTogIiwgc2lnbmF0dXJlKTsK
ICAgICBtX2NvbnRleHQuc2V0UGFyc2VyKHRoaXMpOwogfQogCkBAIC0yODEsNiArMjgxLDIxIEBA
IGF1dG8gRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbigpIC0+IFBhcnRp
YWxSZXN1bHQKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKKyAgICBjYXNlIFJlZk51bGw6
IHsKKyAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlS
ZWZlcmVuY2VzKCksICJyZWZlcmVuY2VzIGFyZSBub3QgZW5hYmxlZCIpOworICAgICAgICBtX2V4
cHJlc3Npb25TdGFjay5hcHBlbmQobV9jb250ZXh0LmFkZENvbnN0YW50KEFueXJlZiwgSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVsbCgpKSkpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAg
IGNhc2UgUmVmSXNOdWxsOiB7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6
OnVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygpLCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQi
KTsKKyAgICAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0LCB2YWx1ZTsKKyAgICAgICAgV0FTTV9U
UllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyh2YWx1ZSwgInJlZi5pc19udWxsIik7CisgICAg
ICAgIFdBU01fVFJZX0FERF9UT19DT05URVhUKGFkZFJlZklzTnVsbCh2YWx1ZSwgcmVzdWx0KSk7
CisgICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmFwcGVuZChyZXN1bHQpOworICAgICAgICByZXR1
cm4geyB9OworICAgIH0KKwogICAgIGNhc2UgR2V0TG9jYWw6IHsKICAgICAgICAgdWludDMyX3Qg
aW5kZXg7CiAgICAgICAgIEV4cHJlc3Npb25UeXBlIHJlc3VsdDsKQEAgLTYzOSw2ICs2NTQsMTYg
QEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Np
b24oKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCisgICAg
Y2FzZSBSZWZOdWxsOiB7CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygpLCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBjYXNlIFJlZklzTnVsbDogeworICAg
ICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVJlZmVyZW5j
ZXMoKSwgInJlZmVyZW5jZXMgYXJlIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiB7IH07
CisgICAgfQorCiAgICAgY2FzZSBHcm93TWVtb3J5OgogICAgIGNhc2UgQ3VycmVudE1lbW9yeTog
ewogICAgICAgICB1aW50OF90IHJlc2VydmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21WYWxpZGF0ZS5jcHAKaW5kZXggYmNkNDc3YmMyMGVmN2M4YWE3M2JlYjFhODZhM2FhYjkx
ZDBiZjA4YS4uZmQ1NDE2MjAwODQwOWRhMzZmOTY5NGQzODkxMmM4ZWZjOTE0MjhiNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwCkBAIC0xMDAsNiArMTAw
LDggQEAgcHVibGljOgogICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkTG9jYWwoVHlw
ZSwgdWludDMyX3QpOwogICAgIEV4cHJlc3Npb25UeXBlIGFkZENvbnN0YW50KFR5cGUgdHlwZSwg
dWludDY0X3QpIHsgcmV0dXJuIHR5cGU7IH0KIAorICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRV
Uk4gYWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJl
c3VsdCk7CisKICAgICAvLyBMb2NhbHMKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdl
dExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBSZXN1
bHQgV0FSTl9VTlVTRURfUkVUVVJOIHNldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9u
VHlwZSB2YWx1ZSk7CkBAIC0xNjksNiArMTcxLDE0IEBAIGF1dG8gVmFsaWRhdGU6OmFkZEFyZ3Vt
ZW50cyhjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gUmVzdWx0CiAgICAgcmV0dXJuIHsg
fTsKIH0KIAorYXV0byBWYWxpZGF0ZTo6YWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1
ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUmVzdWx0Cit7CisgICAgcmVzdWx0ID0gVHlw
ZTo6STMyOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoVHlwZTo6QW55cmVmICE9IHZhbHVl
LCAicmVmLmlzX251bGwgdG8gdHlwZSAiLCB2YWx1ZSwgIiBleHBlY3RlZCAiLCBUeXBlOjpBbnly
ZWYpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwogYXV0byBWYWxpZGF0ZTo6YWRkTG9jYWwoVHlw
ZSB0eXBlLCB1aW50MzJfdCBjb3VudCkgLT4gUmVzdWx0CiB7CiAgICAgc2l6ZV90IHNpemUgPSBt
X2xvY2Fscy5zaXplKCkgKyBjb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weQppbmRleCAwYjhkN2IwMjY0NDgwYWYzMmQ5Yjgx
YzBlMjIyMmRiN2UwN2I4NzE1Li40ZTlhNjY1NjYzMTk3OWQyYzkzNzhiNjM3ZTFiODhmMDY5MmI3
NTFjIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21P
cHNIZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNt
T3BzSGVhZGVyLnB5CkBAIC05NSw3ICs5NSw3IEBAIGRlZiBjZWlsRGl2KGEsIGIpOgogCiBkZWYg
Yml0U2V0KCk6CiAgICAgdiA9ICIiCi0gICAgZm9yIGkgaW4gcmFuZ2UoY2VpbERpdihtYXhPcFZh
bHVlLCA4KSk6CisgICAgZm9yIGkgaW4gcmFuZ2UoY2VpbERpdihtYXhPcFZhbHVlICsgMSwgOCkp
OgogICAgICAgICBlbnRyeSA9IDAKICAgICAgICAgZm9yIGogaW4gcmFuZ2UoOCk6CiAgICAgICAg
ICAgICBpZiBpICogOCArIGogaW4gb3BWYWx1ZVNldDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTVG9XYXNtLmNwcAppbmRleCBlMDM2Y2VmNmRhNDFiMWI4Y2ZiZjE4ZTQ2YjFkZTNh
ZWNiN2E3MGUxLi5lYzJkYmIzMzM2YWM1MjQxYjA3ZjUxNTJkYWIyNmEwMGE2ZWNmNzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCkBAIC04Miw2ICs4Miw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBw
ZXIoQ29tcGlsYXRpb25Db250ZXh0JiBjb21wCiAgICAgICAgICAgICBhcmd1bWVudHNJbmNsdWRl
STY0ID0gdHJ1ZTsKICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICBjYXNlIFdhc206
OkkzMjoKKyAgICAgICAgY2FzZSBXYXNtOjpBbnlyZWY6CiAgICAgICAgICAgICBpZiAobnVtR1BS
cyA+PSB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5tX2dwckFyZ3Muc2l6ZSgpKQogICAgICAgICAg
ICAgICAgIHRvdGFsRnJhbWVTaXplICs9IHNpemVvZih2b2lkKik7CiAgICAgICAgICAgICArK251
bUdQUnM7CkBAIC0xNjQsNiArMTY1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rp
b24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDb21waWxhdGlvbkNvbnRleHQmIGNvbXAKICAgICAg
ICAgICAgIHN3aXRjaCAoc2lnbmF0dXJlLmFyZ3VtZW50KGkpKSB7CiAgICAgICAgICAgICBjYXNl
IFdhc206OkkzMjoKICAgICAgICAgICAgIGNhc2UgV2FzbTo6STY0OgorICAgICAgICAgICAgY2Fz
ZSBXYXNtOjpBbnlyZWY6CiAgICAgICAgICAgICAgICAgaWYgKG51bUdQUnMgPj0gd2FzbUNhbGxp
bmdDb252ZW50aW9uKCkubV9ncHJBcmdzLnNpemUoKSkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGkpID09IFdhc206OkkzMikgewogICAgICAgICAgICAgICAg
ICAgICAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIGpzT2Zmc2V0KSwgc2NyYXRjaFJlZyk7CkBAIC0yNTIsNiArMjU0LDkgQEAg
c3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihD
b21waWxhdGlvbkNvbnRleHQmIGNvbXAKICAgICBjYXNlIFdhc206OlZvaWQ6CiAgICAgICAgIGpp
dC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIgfSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6QW55cmVm
OgorICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBib3ggd2FzbSBGdW5jcmVmcyBvbmNlIHRo
ZXkgYXJlIHN1cHBvcnRlZCBoZXJlLgorICAgICAgICBicmVhazsKICAgICBjYXNlIFdhc206Okkz
MjoKICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgIGppdC5ib3hJbnQzMihHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgSlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9
LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2FzbVRvSlMuY3BwCmluZGV4IDU3MmIwMzA3ZDAzMmM0MGI1OTIzNTNlNmI2ZDQyM2JkNmZjZGJi
M2MuLjViZmY5Y2M2ZDA0NDFmMGVmY2YyMWI5ZGNmOTg4MTA3ZmI1Njg4YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTE2NSw2ICsxNjUsNyBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNKiB2bQogICAgICAgICAgICAgY2FzZSBBbnlmdW5jOgogICAgICAg
ICAgICAgY2FzZSBJNjQ6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIGNhc2UgQW55cmVmOgogICAgICAgICAgICAgY2FzZSBJMzI6IHsK
ICAgICAgICAgICAgICAgICBHUFJSZWcgZ3ByUmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJz
aGFsbGVkR1BScyA8IHdhc21DQy5tX2dwckFyZ3Muc2l6ZSgpKQpAQCAtMTc1LDcgKzE3Niw4IEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQo
SklUOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJl
Zyk7CiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1B0cihn
cHJSZWcsIGdwclJlZyk7CisgICAgICAgICAgICAgICAgaWYgKGFyZ1R5cGUgPT0gSTMyKQorICAg
ICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9QdHIoZ3ByUmVnLCBncHJSZWcpOwog
ICAgICAgICAgICAgICAgIGppdC5zdG9yZTY0KGdwclJlZywgYnVmZmVyICsgYnVmZmVyT2Zmc2V0
KTsKICAgICAgICAgICAgICAgICArK21hcnNoYWxsZWRHUFJzOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMjQxLDYgKzI0MywxMCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNKiB2bQogICAgICAg
ICAgICAgICAgICAgICBjYXNlIEkzMjoKICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGpz
TnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KGJ1ZmZlclthcmdOdW1dKSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBbnlyZWY6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBib3ggd2FzbSBGdW5j
cmVmcyBvbmNlIHRoZXkgYXJlIHN1cHBvcnRlZCBoZXJlLgorICAgICAgICAgICAgICAgICAgICAg
ICAgYXJnID0gSlNWYWx1ZTo6ZGVjb2RlKGJ1ZmZlclthcmdOdW1dKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlIEYzMjoKICAgICAgICAg
ICAgICAgICAgICAgY2FzZSBGNjQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBqc051
bWJlcihwdXJpZnlOYU4oYml0d2lzZV9jYXN0PGRvdWJsZT4oYnVmZmVyW2FyZ051bV0pKSk7CkBA
IC0yNzIsNiArMjc4LDEwIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50
cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAgICAgICAg
ICAgICAgIHJlYWxSZXN1bHQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KHJlc3VsdC50b0ludDMyKGV4ZWMpKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIEFueXJlZjogeworICAg
ICAgICAgICAgICAgICAgICByZWFsUmVzdWx0ID0gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBjYXNlIEY2NDoKICAgICAgICAgICAgICAgICBjYXNlIEYzMjogewogICAgICAgICAgICAg
ICAgICAgICByZWFsUmVzdWx0ID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihyZXN1bHQudG9OdW1i
ZXIoZXhlYykpOwpAQCAtMzY0LDYgKzM3NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAg
ICAgICAgICAgICBjYXNlIEFueWZ1bmM6CiAgICAgICAgICAgICBjYXNlIEk2NDoKICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5kbGVkIGFib3ZlLgor
ICAgICAgICAgICAgY2FzZSBBbnlyZWY6CiAgICAgICAgICAgICBjYXNlIEkzMjogewogICAgICAg
ICAgICAgICAgIEdQUlJlZyBncHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRH
UFJzIDwgd2FzbUNDLm1fZ3ByQXJncy5zaXplKCkpCkBAIC0zNzUsOCArMzg2LDExIEBAIEV4cGVj
dGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVy
ZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVv
ZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hh
bGxlZEdQUnM7Ci0gICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvUHRyKGdwclJlZywg
Z3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCi0gICAgICAgICAg
ICAgICAgaml0LmJveEludDMyKGdwclJlZywgSlNWYWx1ZVJlZ3MoZ3ByUmVnKSwgRG9Ob3RIYXZl
VGFnUmVnaXN0ZXJzKTsKKyAgICAgICAgICAgICAgICBpZiAoYXJnVHlwZSA9PSBJMzIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvUHRyKGdwclJlZywgZ3ByUmVnKTsg
Ly8gQ2xlYXIgbm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCisgICAgICAgICAgICAgICAgICAg
IGppdC5ib3hJbnQzMihncHJSZWcsIEpTVmFsdWVSZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1Jl
Z2lzdGVycyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBX
ZSBuZWVkIHRvIGJveCB3YXNtIEZ1bmNyZWZzIG9uY2UgdGhleSBhcmUgc3VwcG9ydGVkIGhlcmUu
CiAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoZ3ByUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zm
c2V0KGNhbGxlZUZyYW1lT2Zmc2V0KSk7CiAgICAgICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZz
ZXQgKz0gc2l6ZW9mKFJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQzMCw2
ICs0NDQsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFn
PiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNKiB2bQogICAgICAgICAgICAgY2FzZSBBbnlm
dW5jOgogICAgICAgICAgICAgY2FzZSBJNjQ6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgLy8gSGFuZGxlZCBhYm92ZS4KKyAgICAgICAgICAgIGNhc2UgQW55
cmVmOgogICAgICAgICAgICAgY2FzZSBJMzI6CiAgICAgICAgICAgICAgICAgLy8gU2tpcHBlZDog
aGFuZGxlZCBhYm92ZS4KICAgICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2Fz
bUNDLm1fZ3ByQXJncy5zaXplKCkpCkBAIC01MzgsNiArNTUzLDggQEAgRXhwZWN0ZWQ8TWFjcm9B
c3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9K
UyhWTSogdm0KICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogICAgICAgICBicmVhazsKICAgICB9
CisgICAgY2FzZSBBbnlyZWY6CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRjMyOiB7CiAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAppbmRleCBiMzQ0YzY1
ZmI2Y2EzOGMzOGM0OGI0ZmMwYzZkODc3ODFmMjZkNzc2Li5jNDU5NmQ5NTBjODFhM2ZhZjM2N2Iz
OGVhODViMzEwNTFhMGIxNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtODQsNiArODQsOCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2ViQXNzZW1ibHlGdW5jdGlvbihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgIGNhc2UgV2FzbTo6STMyOgogICAgICAgICAgICAgYXJnID0g
SlNWYWx1ZTo6ZGVjb2RlKGFyZy50b0ludDMyKGV4ZWMpKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdhc206OkFueXJlZjoKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFdhc206Okk2NDoKICAgICAgICAgICAgIGFyZyA9IEpTVmFsdWUoKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMjI1LDYgKzIyNyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5
UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAg
ICAgIGNhc2UgV2FzbTo6STY0OgogICAgICAgICAgICAgYXJndW1lbnRzSW5jbHVkZUk2NCA9IHRy
dWU7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXYXNtOjpBbnlyZWY6CiAgICAg
ICAgIGNhc2UgV2FzbTo6STMyOgogICAgICAgICAgICAgaWYgKG51bUdQUnMgPj0gV2FzbTo6d2Fz
bUNhbGxpbmdDb252ZW50aW9uKCkubV9ncHJBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICB0
b3RhbEZyYW1lU2l6ZSArPSBzaXplb2YoQ1BVUmVnaXN0ZXIpOwpAQCAtMzAwLDYgKzMwMywxOCBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlv
bjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICAgICAgICAgICAgICArK251bUdQUnM7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBXYXNtOjpBbnlyZWY6IHsKKyAgICAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVs
cGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNPZmZzZXQpLCBzY3Jh
dGNoR1BSKTsKKworICAgICAgICAgICAgICAgIGlmIChudW1HUFJzID49IFdhc206Ondhc21DYWxs
aW5nQ29udmVudGlvbigpLm1fZ3ByQXJncy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
aml0LnN0b3JlNjQoc2NyYXRjaEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtT2Zmc2V0
KSk7CisgICAgICAgICAgICAgICAgICAgIHdhc21PZmZzZXQgKz0gc2l6ZW9mKENQVVJlZ2lzdGVy
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBqaXQubW92
ZShzY3JhdGNoR1BSLCBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5tX2dwckFyZ3NbbnVt
R1BSc10uZ3ByKCkpOworICAgICAgICAgICAgICAgICAgICArK251bUdQUnM7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAg
ICAgY2FzZSBXYXNtOjpGMzI6CiAgICAgICAgICAgICBjYXNlIFdhc206OkY2NDoKICAgICAgICAg
ICAgICAgICBpZiAobnVtRlBScyA+PSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5tX2Zw
ckFyZ3Muc2l6ZSgpKSB7CkBAIC00NTMsNiArNDY4LDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xv
dygpCiAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAg
ICBjYXNlIFdhc206OkFueXJlZjogeworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBib3gg
d2FzbSBGdW5jcmVmcyBvbmNlIHRoZXkgYXJlIHN1cHBvcnRlZCBoZXJlLgorICAgICAgICBicmVh
azsKKyAgICB9CiAgICAgY2FzZSBXYXNtOjpJNjQ6CiAgICAgY2FzZSBXYXNtOjpGdW5jOgogICAg
IGNhc2UgV2FzbTo6QW55ZnVuYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL3dhc20uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgppbmRl
eCAzMWQxMDNmOWM4YTIwMjJhNzE0NDAzMjY4NmU3NjBjNDBjYWYzYTQ1Li5lNjFhYTc0YzMzODY2
MGU0YjVmMTZhMzU0ZDUyZDE1MTA2MDA5MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS93YXNtLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2Fz
bS5qc29uCkBAIC0xMiwxMSArMTIsMTIgQEAKICAgICAgICAgImYzMiI6ICAgICB7ICJ0eXBlIjog
InZhcmludDciLCAidmFsdWUiOiAgLTMsICJiM3R5cGUiOiAiQjM6OkZsb2F0IiB9LAogICAgICAg
ICAiZjY0IjogICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNCwgImIzdHlwZSI6
ICJCMzo6RG91YmxlIiB9LAogICAgICAgICAiYW55ZnVuYyI6IHsgInR5cGUiOiAidmFyaW50NyIs
ICJ2YWx1ZSI6IC0xNiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKKyAgICAgICAgImFueXJlZiI6
ICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtMTcsICJiM3R5cGUiOiAiQjM6OkludDY0
IiB9LAogICAgICAgICAiZnVuYyI6ICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0z
MiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKICAgICAgICAgInZvaWQiOiAgICB7ICJ0eXBlIjog
InZhcmludDciLCAidmFsdWUiOiAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAot
ICAgICJ2YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiXSwKLSAgICAiYmxv
Y2tfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiXSwKKyAgICAidmFs
dWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImFueXJlZiJdLAorICAgICJi
bG9ja190eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJhbnlyZWYi
XSwKICAgICAiZWxlbV90eXBlIjogWyJhbnlmdW5jIl0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7
CiAgICAgICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAwIH0sCkBA
IC01OCw2ICs1OSw4IEBACiAgICAgICAgICJpNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdv
cnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAg
InBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5h
bWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJ2YXJpbnQ2NCJ9XSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFu
dCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBpNjQiIH0sCiAgICAgICAgICJmNjQuY29uc3QiOiAgICAg
ICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2OCwgInJldHVybiI6
IFsiZjY0Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImlt
bWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJkb3VibGUifV0s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmNjQiIH0sCiAgICAgICAgICJm
MzIuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6
ICA2NywgInJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAg
ICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlw
ZSI6ICJmbG9hdCJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmMzIi
IH0sCisgICAgICAgICJyZWYubnVsbCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lh
bCIsICAgICJ2YWx1ZSI6IDIwOCwgInJldHVybiI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6
IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCBudWxsIHJlZmVy
ZW5jZSIgfSwKKyAgICAgICAgInJlZi5pc19udWxsIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJz
cGVjaWFsIiwgICAgInZhbHVlIjogMjA5LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1l
dGVyIjogWyJhbnlyZWYiXSwgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJkZXRlcm1pbmUgaWYgYSBy
ZWZlcmVuY2UgaXMgbnVsbCIgfSwKICAgICAgICAgImdldF9sb2NhbCI6ICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDMyLCAicmV0dXJuIjogWyJhbnkiXSwg
ICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjog
W3sibmFtZSI6ICJsb2NhbF9pbmRleCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJyZWFk
IGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAic2V0X2xvY2FsIjog
ICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzMsICJyZXR1
cm4iOiBbXSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAg
ICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWlu
dDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAg
ICAidGVlX2xvY2FsIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFs
dWUiOiAgMzQsICJyZXR1cm4iOiBbImFueSJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAg
ICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAg
InR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1l
dGVyIGFuZCByZXR1cm4gdGhlIHNhbWUgdmFsdWUiIH0sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTdkNmNhMDIzZTIzYWI2MGY4NWI2ZDBiNTRi
MTBiOGMyMTcxNjMxMS4uNTYyMDI3MGM0ODBjZjUyNzZkM2M0YjFmZmJkYTAxZGExY2FhZDJmNSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE5LTA1LTE3ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFw
cGxlLmNvbT4KKworICAgICAgICBbV0FTTS1SZWZlcmVuY2VzXSBBZGQgc3VwcG9ydCBmb3IgQW55
cmVmIGluIHBhcmFtZXRlcnMgYW5kIHJldHVybiB0eXBlcywgUmVmLm51bGwgYW5kIFJlZi5pc19u
dWxsIGZvciBBbnlyZWYgdmFsdWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3OTY5CisKKyAgICAgICAgUnVuIHdhc20gdGVzdHMgYWRkaXRpb25h
bGx5IHdpdGggd2FzbUJCUVVzZXNBaXI9MC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIw
MTktMDUtMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBDb21wcmVzcyBXYXRjaHBvaW50IHNpemUgYnkgdXNpbmcgZW51bSB0eXBlIGFuZCBQYWNr
ZWQ8PiBkYXRhIHN0cnVjdHVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggYTdi
ZTM2ODU4OGE1ZGYyNmRkZWZlMmE1NTU0MTI2NTllOWZiZWVlYy4uMjcwM2M0MDUzYTIzYWEzZGNj
ZTFhYjAzMTcyZDhjNmQyYTIxMTg2MSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBA
IC0xMDgwLDYgKzEwODAsNyBAQCBkZWYgcnVuV2ViQXNzZW1ibHkKICAgICAgICAgcnVuKCJ3YXNt
LW5vLWNhbGwtaWMiLCAiLW0iLCAiLS11c2VDYWxsSUNzRm9yV2ViQXNzZW1ibHlUb0pTQ2FsbHM9
ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIs
ICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykK
ICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1ibHlG
YXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBydW4oIndhc20tbm8tYWly
IiwgIi1tIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgZW5k
CiBlbmQKIApAQCAtMTA5Niw2ICsxMDk3LDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5U3VpdGUKICAg
ICAgICAgcnVuKCJ3YXNtLW5vLWNhbGwtaWMiLCAiLW0iLCAiLS11c2VDYWxsSUNzRm9yV2ViQXNz
ZW1ibHlUb0pTQ2FsbHM9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1u
by10bHMtY29udGV4dCIsICItbSIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIs
ICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi1tIiwgIi0t
dXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5PWZhbHNlIiwgKkZUTF9PUFRJT05TKQorICAgICAgICBy
dW4oIndhc20tbm8tYWlyIiwgIi1tIiwgIi0td2FzbUJCUVVzZXNBaXI9ZmFsc2UiLCAqRlRMX09Q
VElPTlMpCiAgICAgZW5kCiBlbmQKIApAQCAtMTExNCw2ICsxMTE2LDcgQEAgZGVmIHJ1bldlYkFz
c2VtYmx5RW1zY3JpcHRlbihtb2RlKQogICAgICAgICBydW4oIndhc20tZWFnZXItamV0dGlzb24i
LCAiLS1mb3JjZUNvZGVCbG9ja1RvSmV0dGlzb25EdWVUb09sZEFnZT10cnVlIiwgKkZUTF9PUFRJ
T05TKQogICAgICAgICBydW4oIndhc20tbm8tY2FsbC1pYyIsICItLXVzZUNhbGxJQ3NGb3JXZWJB
c3NlbWJseVRvSlNDYWxscz1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICAgICAgcnVuKCJ3YXNt
LW5vLXRscy1jb250ZXh0IiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0PWZhbHNlIiwgKkZU
TF9PUFRJT05TKQorICAgICAgICBydW4oIndhc20tbm8tYWlyIiwgIi0td2FzbUJCUVVzZXNBaXI9
ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgZW5kCiBlbmQKIApAQCAtMTEzOCw2ICsxMTQxLDcg
QEAgZGVmIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3QobW9kZSkKICAgICAgIHJ1bldpdGhPdXRwdXRI
YW5kbGVyKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgbm9pc3lPdXRwdXRIYW5kbGVyLCAiLi4vc3Bl
Yy1oYXJuZXNzLmpzIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1
ZSIsICpGVExfT1BUSU9OUykKICAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNtLW5vLWNh
bGwtaWMiLCBub2lzeU91dHB1dEhhbmRsZXIsICIuLi9zcGVjLWhhcm5lc3MuanMiLCAiLS11c2VD
YWxsSUNzRm9yV2ViQXNzZW1ibHlUb0pTQ2FsbHM9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAg
ICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby10bHMtY29udGV4dCIsIG5vaXN5T3V0cHV0
SGFuZGxlciwgIi4uL3NwZWMtaGFybmVzcy5qcyIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4
dD1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgIHJ1bldpdGhPdXRwdXRIYW5kbGVyKCJ3YXNt
LW5vLWFpciIsIG5vaXN5T3V0cHV0SGFuZGxlciwgIi4uL3NwZWMtaGFybmVzcy5qcyIsICItLXdh
c21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgIGVuZAogZW5kCiAKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmM4M2Nm
Y2RmZjBiYmE5NzkwYWUwMDY2MTVhMmY2NzNhNzE3YmExZi4uZTMxMzU3Mjk4Y2VkYjYyNzI5Zjdm
YjgyYmExZTMyNTA3MDBmZGRjMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wNS0xNyAgSnVzdGluIE1p
Y2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJl
bmNlc10gQWRkIHN1cHBvcnQgZm9yIEFueXJlZiBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlw
ZXMsIFJlZi5udWxsIGFuZCBSZWYuaXNfbnVsbCBmb3IgQW55cmVmIHZhbHVlcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzk2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgdGhlIGFueXJl
ZiB0eXBlIGluIEJ1aWxkZXIuanMsIHBsdXMgYWRkIHNvbWUgZXh0cmEgZXJyb3IgbG9nZ2luZy4K
KyAgICAgICAgQWRkIG5ldyBmb2xkZXIgZm9yIHdhc20gcmVmZXJlbmNlcyB0ZXN0cy4KKworICAg
ICAgICAqIHdhc20ueWFtbDoKKyAgICAgICAgKiB3YXNtL0J1aWxkZXIuanM6CisgICAgICAgIChj
b25zdC5faXNWYWxpZFZhbHVlKToKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMvYW55cmVmX21v
ZHVsZXMuanM6IEFkZGVkLgorICAgICAgICAoQ2FsbC4zLlJlZklzTnVsbC5FbmQuRW5kLldlYkFz
c2VtYmx5LmpzLmlkZW50KToKKyAgICAgICAgKENhbGwuMy5SZWZJc051bGwuRW5kLkVuZC5XZWJB
c3NlbWJseS5qcy5tYWtlX251bGwpOgorICAgICAgICAoQ2FsbC4zLlJlZklzTnVsbC5FbmQuRW5k
LldlYkFzc2VtYmx5KToKKyAgICAgICAgKHVuZGVmaW5lZCk6CisgICAgICAgICogd2FzbS9yZWZl
cmVuY2VzL2lzX251bGwuanM6IEFkZGVkLgorICAgICAgICAqIHdhc20vcmVmZXJlbmNlcy9pc19u
dWxsX2Vycm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL3NwZWMtaGFybmVzcy9pbmRleC5q
czoKKyAgICAgICAgKiB3YXNtL3dhc20uanNvbjoKKwogMjAxOS0wNS0xMCAgU2FhbSBiYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxsIHRvIEpTVG9XYXNtSUNDYWxsZWU6
OmNyZWF0ZVN0cnVjdHVyZSBwYXNzZXMgaW4gd3JvbmcgcHJvdG90eXBlIHZhbHVlCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3dhc20ueWFtbCBiL0pTVGVzdHMvd2FzbS55YW1sCmluZGV4IDNjMWE1ZmNm
MWZkOGJhMTk0Zjc4NmVlYTI0M2U2ZjVjYTQxYmYyM2YuLjQ1ZGJkMWFjYjcwOTNkZjI2NzA0MTI5
YzZiNDJmNGNhYzM5ZDYzZTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS55YW1sCisrKyBiL0pT
VGVzdHMvd2FzbS55YW1sCkBAIC0yOSw2ICsyOSw4IEBACiAgIGNtZDogcnVuTm9KSVQgdW5sZXNz
IHBhcnNlUnVuQ29tbWFuZHMKIC0gcGF0aDogd2FzbS9mdW5jdGlvbi10ZXN0cwogICBjbWQ6IHJ1
bldlYkFzc2VtYmx5U3VpdGUgdW5sZXNzIHBhcnNlUnVuQ29tbWFuZHMKKy0gcGF0aDogd2FzbS9y
ZWZlcmVuY2VzCisgIGNtZDogcnVuV2ViQXNzZW1ibHlTdWl0ZSB1bmxlc3MgcGFyc2VSdW5Db21t
YW5kcwogLSBwYXRoOiB3YXNtL2Z1enoKICAgY21kOiBydW5XZWJBc3NlbWJseVN1aXRlIHVubGVz
cyBwYXJzZVJ1bkNvbW1hbmRzCiAtIHBhdGg6IHdhc20vc3RyZXNzCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vQnVpbGRlci5qcyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCmluZGV4IGU5NGYw
YTMxYTQxNmY4NjMxNzkzNTUxZGMxMTYwM2RlNmRjNGQxM2MuLmYyMmRlMWI4MWM4NDA5ZGEwNDRi
YjA1MTEyYTQ1Y2QyOWZkNzI4OTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpz
CisrKyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCkBAIC0zMyw2ICszMyw3IEBAIGNvbnN0IF9p
c1ZhbGlkVmFsdWUgPSAodmFsdWUsIHR5cGUpID0+IHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICAvLyBXZSBhbGxvdyBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQgbnVtYmVycy4KICAgICBjYXNl
ICJpMzIiOiByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSkgPT09IHZhbHVlICYmIExMQi52YXJpbnQz
Mk1pbiA8PSB2YWx1ZSAmJiB2YWx1ZSA8PSBMTEIudmFydWludDMyTWF4OworICAgIGNhc2UgImFu
eXJlZiI6IHJldHVybiB0cnVlOwogICAgIGNhc2UgImk2NCI6IHJldHVybiB0cnVlOyAvLyBGSVhN
RSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDIwIDY0LWJpdCB2
YWx1ZXMKICAgICBjYXNlICJmMzIiOiByZXR1cm4gdHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIg
JiYgaXNGaW5pdGUodmFsdWUpOwogICAgIGNhc2UgImY2NCI6IHJldHVybiB0eXBlb2YodmFsdWUp
ID09PSAibnVtYmVyIiAmJiBpc0Zpbml0ZSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dh
c20vcmVmZXJlbmNlcy9hbnlyZWZfbW9kdWxlcy5qcyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2Vz
L2FueXJlZl9tb2R1bGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMTAwOTZkN2I1Y2U2YTFjNmVhOTg2NTNj
NThmZDI1MDQyMjNmYzMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNl
cy9hbnlyZWZfbW9kdWxlcy5qcwpAQCAtMCwwICsxLDEzMiBAQAoraW1wb3J0ICogYXMgYXNzZXJ0
IGZyb20gJy4uL2Fzc2VydC5qcyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWlsZGVyLmpz
JzsKKworY29uc3QgJDEgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5
Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5j
dGlvbigpLkVuZCgpCisgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAuRnVuY3Rpb24oImgiKQor
ICAgICAgICAgIC5GdW5jdGlvbigiaSIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJqIikKKyAgICAg
ICAgICAuRnVuY3Rpb24oImsiKQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAg
IC5GdW5jdGlvbigiaCIsIHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJhbnlyZWYiIH0pCisg
ICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlv
bigiaSIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgICAgLlJlZk51
bGwoKQorICAgICAgICAgICAgLkNhbGwoMCkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1
bmN0aW9uKCJqIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJldDogImkzMiIgfSkKKyAgICAgICAg
ICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAgIC5FbmQo
KQorCisgICAgICAgIC5GdW5jdGlvbigiayIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQor
ICAgICAgICAgICAgLlJlZk51bGwoKQorICAgICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAg
IC5FbmQoKQorICAgICAgLkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkpKTsKKworY29uc3QgJDIg
PSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1
aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5JbXBvcnQoKQorICAgICAgICAg
IC5GdW5jdGlvbigibTEiLCAiaCIsIHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJhbnlyZWYi
IH0pCisgICAgICAgICAgLkZ1bmN0aW9uKCJtMSIsICJqIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0s
IHJldDogImkzMiIgfSkKKyAgICAgICAgICAuRnVuY3Rpb24oImpzIiwgImlkZW50IiwgeyBwYXJh
bXM6IFsiYW55cmVmIl0sIHJldDogImFueXJlZiIgfSkKKyAgICAgICAgICAuRnVuY3Rpb24oImpz
IiwgIm1ha2VfbnVsbCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgLkVu
ZCgpCisgICAgICAuRnVuY3Rpb24oKS5FbmQoKQorICAgICAgLkV4cG9ydCgpCisgICAgICAgICAg
LkZ1bmN0aW9uKCJjYWxsX2giKQorICAgICAgICAgIC5GdW5jdGlvbigiY2FsbF9qIikKKyAgICAg
ICAgICAuRnVuY3Rpb24oImNhbGxfaF9udWxsIikKKyAgICAgICAgICAuRnVuY3Rpb24oImNhbGxf
al9udWxsIikKKyAgICAgICAgICAuRnVuY3Rpb24oImNhbGxfaWRlbnQiKQorICAgICAgICAgIC5G
dW5jdGlvbigiY2FsbF9pZGVudF9udWxsIikKKyAgICAgICAgICAuRnVuY3Rpb24oImlzX21ha2Vu
dWxsX251bGwiKQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlv
bigiY2FsbF9oIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJldDogImFueXJlZiIgfSkKKyAgICAg
ICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAuQ2FsbCgwKQorICAgICAgICAuRW5kKCkKKwor
ICAgICAgICAuRnVuY3Rpb24oImNhbGxfaiIsIHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJp
MzIiIH0pCisgICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgLkNhbGwoMSkKKyAgICAg
ICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJjYWxsX2hfbnVsbCIsIHsgcGFyYW1zOiBb
XSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgIC5SZWZOdWxsKCkKKyAgICAgICAgICAuQ2Fs
bCgwKQorICAgICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rpb24oImNhbGxfal9udWxsIiwg
eyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgLlJlZk51bGwoKQorICAgICAg
ICAgIC5DYWxsKDEpCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlvbigiY2FsbF9p
ZGVudCIsIHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAg
LkkzMkNvbnN0KDEpCisgICAgICAgICAgLklmKCJhbnlyZWYiKQorICAgICAgICAgIC5CbG9jaygi
YW55cmVmIiwgKGIpID0+CisgICAgICAgICAgICBiLkdldExvY2FsKDApCisgICAgICAgICAgKQor
ICAgICAgICAgIC5FbHNlKCkKKyAgICAgICAgICAuQmxvY2soImFueXJlZiIsIChiKSA9PgorICAg
ICAgICAgICAgYi5HZXRMb2NhbCgwKQorICAgICAgICAgICkKKyAgICAgICAgICAuRW5kKCkKKyAg
ICAgICAgICAuQ2FsbCgyKQorICAgICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rpb24oImNh
bGxfaWRlbnRfbnVsbCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAg
IC5SZWZOdWxsKCkKKyAgICAgICAgICAuQ2FsbCgyKQorICAgICAgICAuRW5kKCkKKworICAgICAg
ICAuRnVuY3Rpb24oImlzX21ha2VudWxsX251bGwiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIg
fSkKKyAgICAgICAgICAuQ2FsbCgzKQorICAgICAgICAgIC5SZWZJc051bGwoKQorICAgICAgICAu
RW5kKCkKKyAgICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgeyBtMTogJDEuZXhwb3J0
cywganM6IHsKKyAgICAgICAgaWRlbnQ6IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHg7IH0sCisgICAg
ICAgIG1ha2VfbnVsbDogZnVuY3Rpb24oKSB7IHJldHVybiBudWxsOyB9LAorICAgICAgfSB9KTsK
KworYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9oKG51bGwpLCBudWxsKQorCitjb25zdCBvYmog
PSB7IHRlc3Q6ICJoaSIgfQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9oKG9iaiksIG9iaikK
K2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaCg1KSwgNSkKK2Fzc2VydC5lcSgkMi5leHBvcnRz
LmNhbGxfaCgiaGkiKSwgImhpIikKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaCh1bmRlZmlu
ZWQpLCB1bmRlZmluZWQpCisKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaihvYmopLCAwKQor
YXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qKDUpLCAwKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMu
Y2FsbF9qKCJoaSIpLCAwKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qKG51bGwpLCAxKQor
YXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qKHVuZGVmaW5lZCksIDApCisKK2Fzc2VydC5lcSgk
Mi5leHBvcnRzLmNhbGxfaF9udWxsKCksIG51bGwpCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxs
X2pfbnVsbCgpLCAxKQorCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50KG51bGwpLCBu
dWxsKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9pZGVudChvYmopLCBvYmopCithc3NlcnQu
ZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50KDUpLCA1KQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2Fs
bF9pZGVudCgiaGkiKSwgImhpIikKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaWRlbnQodW5k
ZWZpbmVkKSwgdW5kZWZpbmVkKQorCitmb3IgKGxldCBpPTA7IGk8MTAwMDsgKytpKSB7CisgICAg
Ly8gVHJpZ2dlciB0aGUgaWMgcGF0aAorICAgIGFzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaWRl
bnQobnVsbCksIG51bGwpCisgICAgYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9pZGVudCg3KSwg
NykKKyAgICBhc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50KCJieWUiKSwgImJ5ZSIpCit9
CisKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaWRlbnRfbnVsbCgpLCBudWxsKQorYXNzZXJ0
LmVxKCQyLmV4cG9ydHMuaXNfbWFrZW51bGxfbnVsbCgpLCAxKQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL3JlZmVyZW5jZXMvaXNfbnVsbC5qcyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2lz
X251bGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJiY2JmMzZhNzgyNTllMWJhOGZlNGI1MGIxOGNlODhjMzAy
NGRmYgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2lzX251bGwu
anMKQEAgLTAsMCArMSw2MCBAQAoraW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5q
cyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWlsZGVyLmpzJzsKKworY29uc3QgYnVpbGRl
ciA9IChuZXcgQnVpbGRlcigpKQorICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgLkZ1bmN0aW9u
KCkuRW5kKCkKKyAgICAgIC5FeHBvcnQoKQorICAgICAgICAgIC5GdW5jdGlvbigiaCIpCisgICAg
ICAgICAgLkZ1bmN0aW9uKCJpIikKKyAgICAgICAgICAuRnVuY3Rpb24oImoiKQorICAgICAgICAg
IC5GdW5jdGlvbigiayIpCisgICAgICAuRW5kKCkKKyAgICAgIC5Db2RlKCkKKyAgICAgICAgLkZ1
bmN0aW9uKCJoIiwgeyBwYXJhbXM6IFsiYW55cmVmIl0sIHJldDogImFueXJlZiIgfSkKKyAgICAg
ICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJp
IiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgICAuUmVmTnVsbCgp
CisgICAgICAgICAgICAuQ2FsbCgwKQorICAgICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rp
b24oImoiLCB7IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAg
LkdldExvY2FsKDApCisgICAgICAgICAgICAuUmVmSXNOdWxsKCkKKyAgICAgICAgLkVuZCgpCisK
KyAgICAgICAgLkZ1bmN0aW9uKCJrIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAg
ICAgICAgICAuUmVmTnVsbCgpCisgICAgICAgICAgICAuUmVmSXNOdWxsKCkKKyAgICAgICAgLkVu
ZCgpCisgICAgICAuRW5kKCk7CisKK2NvbnN0IGJpbiA9IGJ1aWxkZXIuV2ViQXNzZW1ibHkoKS5n
ZXQoKTsKK2NvbnN0IG1vZHVsZSA9IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluKTsKK2NvbnN0
IGluc3RhbmNlID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG1vZHVsZSk7Cithc3NlcnQuZXEo
aW5zdGFuY2UuZXhwb3J0cy5oKG51bGwpLCBudWxsKQorCitjb25zdCBvYmogPSB7IHRlc3Q6ICJo
aSIgfQorYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaChvYmopLCBvYmopCithc3NlcnQuZXEo
aW5zdGFuY2UuZXhwb3J0cy5oKDUpLCA1KQorYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaCgi
aGkiKSwgImhpIikKK2Fzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmgodW5kZWZpbmVkKSwgdW5k
ZWZpbmVkKQorCithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5pKCksIG51bGwpCisKK2Fzc2Vy
dC5lcShpbnN0YW5jZS5leHBvcnRzLmoob2JqKSwgMCkKK2Fzc2VydC5lcShpbnN0YW5jZS5leHBv
cnRzLmooNSksIDApCithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5qKCJoaSIpLCAwKQorYXNz
ZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaihudWxsKSwgMSkKK2Fzc2VydC5lcShpbnN0YW5jZS5l
eHBvcnRzLmoodW5kZWZpbmVkKSwgMCkKKworYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaygp
LCAxKQorCithc3NlcnQuZXEob2JqLnRlc3QsICJoaSIpCitjb25zdCBvYmoyID0gaW5zdGFuY2Uu
ZXhwb3J0cy5oKG9iaikKK29iajIudGVzdCA9ICJieWUiCithc3NlcnQuZXEob2JqLnRlc3QsICJi
eWUiKQorCitmb3IgKGxldCBpPTA7IGk8MTAwMDsgKytpKSBhc3NlcnQuZXEoaW5zdGFuY2UuZXhw
b3J0cy5oKG51bGwpLCBudWxsKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMv
aXNfbnVsbF9lcnJvci5qcyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2lzX251bGxfZXJyb3Iu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTE1YjM2YWQ5OTYxNGYwZjBmNWI4N2M5NDIzNTcyNGQxNjk1NWM4Ygot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2lzX251bGxfZXJyb3Iu
anMKQEAgLTAsMCArMSwyMiBAQAoraW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5q
cyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWlsZGVyLmpzJzsKKworeworICAgIGNvbnN0
IGJ1aWxkZXIgPSAobmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5G
dW5jdGlvbigpLkVuZCgpCisgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAuRnVuY3Rpb24oImoi
KQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlvbigiaiIsIHsg
cGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgLkkzMkNvbnN0KDApCisgICAg
ICAgICAgICAuUmVmSXNOdWxsKCkKKyAgICAgICAgLkVuZCgpCisgICAgICAuRW5kKCk7CisKKyAg
ICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCk7CisgICAgYmluLnRyaW0oKTsKKwor
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkp
LCBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2
YWxpZGF0ZTogcmVmLmlzX251bGwgdG8gdHlwZSBJMzIgZXhwZWN0ZWQgQW55cmVmLCBpbiBmdW5j
dGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbi5n
ZXQoKSknKSIpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3NwZWMtaGFybmVzcy9pbmRl
eC5qcyBiL0pTVGVzdHMvd2FzbS9zcGVjLWhhcm5lc3MvaW5kZXguanMKaW5kZXggYmMyOThkMjAw
YTA3YjFkNTY5NzA4YWRmODBlMDRiM2FiOTZhMTRjYy4uZWIwMGM2ZDg3OGZjOTBkNTExZjYwNmI0
YjQzNDg0NTY4NjczNWFlNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3NwZWMtaGFybmVzcy9p
bmRleC5qcworKysgYi9KU1Rlc3RzL3dhc20vc3BlYy1oYXJuZXNzL2luZGV4LmpzCkBAIC0xOTAs
NiArMTkwLDcgQEAgZnVuY3Rpb24gaW5zdGFuY2UoYnl0ZXMsIGltcG9ydHMgPSByZWdpc3RyeSwg
dmFsaWQgPSB0cnVlKSB7CiAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgIHVuaXF1ZVRlc3QoKCkg
PT4gewogICAgICAgICAgICAgbGV0IGluc3RhbnRpYXRlZCA9IGVyciA9PT0gbnVsbDsKKyAgICAg
ICAgICAgIGlmICghaW5zdGFudGlhdGVkKSBwcmludChlcnIpOwogICAgICAgICAgICAgYXNzZXJ0
X3RydWUoaW5zdGFudGlhdGVkLCBlcnIpOwogICAgICAgICB9LCAibW9kdWxlIHN1Y2Nlc3NmdWxs
eSBpbnN0YW50aWF0ZWQiKTsKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vd2FzbS5q
c29uIGIvSlNUZXN0cy93YXNtL3dhc20uanNvbgppbmRleCAzMWQxMDNmOWM4YTIwMjJhNzE0NDAz
MjY4NmU3NjBjNDBjYWYzYTQ1Li5lNjFhYTc0YzMzODY2MGU0YjVmMTZhMzU0ZDUyZDE1MTA2MDA5
MmIwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCisrKyBiL0pTVGVzdHMvd2Fz
bS93YXNtLmpzb24KQEAgLTEyLDExICsxMiwxMiBAQAogICAgICAgICAiZjMyIjogICAgIHsgInR5
cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMywgImIzdHlwZSI6ICJCMzo6RmxvYXQiIH0sCiAg
ICAgICAgICJmNjQiOiAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC00LCAiYjN0
eXBlIjogIkIzOjpEb3VibGUiIH0sCiAgICAgICAgICJhbnlmdW5jIjogeyAidHlwZSI6ICJ2YXJp
bnQ3IiwgInZhbHVlIjogLTE2LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAorICAgICAgICAiYW55
cmVmIjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0xNywgImIzdHlwZSI6ICJCMzo6
SW50NjQiIH0sCiAgICAgICAgICJmdW5jIjogICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVl
IjogLTMyLCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAogICAgICAgICAidm9pZCI6ICAgIHsgInR5
cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC02NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfQogICAg
IH0sCi0gICAgInZhbHVlX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMyIiwgImY2NCJdLAotICAg
ICJibG9ja190eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCJdLAorICAg
ICJ2YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAiYW55cmVmIl0sCisg
ICAgImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMyIiwgImY2NCIsICJ2b2lkIiwgImFu
eXJlZiJdLAogICAgICJlbGVtX3R5cGUiOiBbImFueWZ1bmMiXSwKICAgICAiZXh0ZXJuYWxfa2lu
ZCI6IHsKICAgICAgICAgIkZ1bmN0aW9uIjogeyAidHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDAg
fSwKQEAgLTU4LDYgKzU5LDggQEAKICAgICAgICAgImk2NC5jb25zdCI6ICAgICAgICAgICB7ICJj
YXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDY2LCAicmV0dXJuIjogWyJpNjQiXSwg
ICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjog
W3sibmFtZSI6ICJ2YWx1ZSIsICAgICAgICAgICJ0eXBlIjogInZhcmludDY0In1dLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJhIGNv
bnN0YW50IHZhbHVlIGludGVycHJldGVkIGFzIGk2NCIgfSwKICAgICAgICAgImY2NC5jb25zdCI6
ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDY4LCAicmV0
dXJuIjogWyJmNjQiXSwgICAgICAicGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAg
ICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ2YWx1ZSIsICAgICAgICAgICJ0eXBlIjogImRvdWJs
ZSJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJhIGNvbnN0YW50IHZhbHVlIGludGVycHJldGVkIGFzIGY2NCIgfSwKICAgICAg
ICAgImYzMi5jb25zdCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZh
bHVlIjogIDY3LCAicmV0dXJuIjogWyJmMzIiXSwgICAgICAicGFyYW1ldGVyIjogW10sICAgICAg
ICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJ2YWx1ZSIsICAgICAgICAg
ICJ0eXBlIjogImZsb2F0In1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJhIGNvbnN0YW50IHZhbHVlIGludGVycHJldGVkIGFz
IGYzMiIgfSwKKyAgICAgICAgInJlZi5udWxsIjogICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJz
cGVjaWFsIiwgICAgInZhbHVlIjogMjA4LCAicmV0dXJuIjogWyJhbnlyZWYiXSwgICAicGFyYW1l
dGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJhIGNvbnN0YW50IG51bGwg
cmVmZXJlbmNlIiB9LAorICAgICAgICAicmVmLmlzX251bGwiOiAgICAgICAgIHsgImNhdGVnb3J5
IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAyMDksICJyZXR1cm4iOiBbImkzMiJdLCAgICAgICJw
YXJhbWV0ZXIiOiBbImFueXJlZiJdLCAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbXSwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogImRldGVybWluZSBp
ZiBhIHJlZmVyZW5jZSBpcyBudWxsIiB9LAogICAgICAgICAiZ2V0X2xvY2FsIjogICAgICAgICAg
IHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzIsICJyZXR1cm4iOiBbImFu
eSJdLCAgICAgICJwYXJhbWV0ZXIiOiBbXSwgICAgICAgICAgICAgICAgICAgICAgICJpbW1lZGlh
dGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1dLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
InJlYWQgYSBsb2NhbCB2YXJpYWJsZSBvciBwYXJhbWV0ZXIiIH0sCiAgICAgICAgICJzZXRfbG9j
YWwiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICAzMywg
InJldHVybiI6IFtdLCAgICAgICAgICAgInBhcmFtZXRlciI6IFsiYW55Il0sICAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAibG9jYWxfaW5kZXgiLCAgICAidHlwZSI6ICJ2
YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAid3JpdGUgYSBsb2NhbCB2YXJpYWJsZSBvciBwYXJhbWV0ZXIiIH0sCiAg
ICAgICAgICJ0ZWVfbG9jYWwiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAg
ICJ2YWx1ZSI6ICAzNCwgInJldHVybiI6IFsiYW55Il0sICAgICAgInBhcmFtZXRlciI6IFsiYW55
Il0sICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAibG9jYWxfaW5kZXgi
LCAgICAidHlwZSI6ICJ2YXJ1aW50MzIifV0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAid3JpdGUgYSBsb2NhbCB2YXJpYWJsZSBvciBw
YXJhbWV0ZXIgYW5kIHJldHVybiB0aGUgc2FtZSB2YWx1ZSIgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370159</attachid>
            <date>2019-05-17 15:16:44 -0700</date>
            <delta_ts>2019-05-17 21:58:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197969-20190517151643.patch</filename>
            <type>text/plain</type>
            <size>41182</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MmQ1Y2ZlMTY0OWQ0OGFkNDEzN2U4NDM0MzJjZjEyYzkxY2Y0NTE0Li4wNzA5NDc1Mzg3ZTM3Yjg0
ODQxMGY1YWM0NDY1NTBmZTQ2NTZkYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxOS0wNS0xNyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dBU00tUmVmZXJlbmNlc10gQWRkIHN1cHBvcnQgZm9yIEFu
eXJlZiBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlwZXMsIFJlZi5udWxsIGFuZCBSZWYuaXNf
bnVsbCBmb3IgQW55cmVmIHZhbHVlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5Nzk2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBydW50aW1lIG9wdGlvbiBmb3Igd2FzbSByZWZlcmVu
Y2VzLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQW55cmVmIGFzIGEgdmFsdWUgdHlwZS4KKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIEFueXJlZiBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlw
ZXMgb2YgV2FzbSBmdW5jdGlvbnMuIEpTVmFsdWVzIGFyZSBtYXJzaGFsbGVkIGludG8vb3V0IG9m
IHdhc20gQW55cmVmcworICAgICAgICAgICAgICAgIGFzIGEgYmxhY2sgYm94LCBleGNlcHQgbnVs
bCB3aGljaCBiZWNvbWVzIGEgTnVsbHJlZiB2YWx1ZS4gTnVsbHJlZiBpcyBub3QgZXhwcmVzc2li
bGUgaW4gdGhlIGJ5dGVjb2RlIG9yIGluIHRoZSBqcyBBUEkuCisgICAgICAgIEFkZCBSZWYubnVs
bCBhbmQgUmVmLmlzX251bGwgZm9yIEFueXJlZiB2YWx1ZXMuIFN1cHBvcnQgZm9yIHRoZXNlIGZ1
bmN0aW9ucyB3aXRoIGZ1bmNyZWZzIGlzIG91dCBvZiBzY29wZS4KKworICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OnRtcEZvclR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6YWRkQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpXYXNt
OjpBaXJJUkdlbmVyYXRvcjo6YWRkUmVmSXNOdWxsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZFJldHVybik6CisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkIzSVJHZW5lcmF0b3I6OmFkZFJlZklzTnVsbCk6
CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6Q2FsbGluZ0NvbnZlbnRpb25BaXI6Om1hcnNoYWxsQXJndW1lbnQgY29uc3QpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpDYWxsaW5nQ29udmVudGlvbkFpcjo6c2V0dXBDYWxsIGNvbnN0KToK
KyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNWYWx1
ZVR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChK
U0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpGdW5jdGlvblBhcnNlcik6CisgICAg
ICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUV4cHJlc3Npb24p
OgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJl
YWNoYWJsZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vV2FzbVZhbGlkYXRlLmNwcDoKKyAg
ICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFJlZklzTnVsbCk6CisgICAgICAgICogd2Fz
bS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIucHk6CisgICAgICAgIChiaXRTZXQpOgorICAgICAgICAq
IHdhc20vanMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpjcmVhdGVKU1RvV2Fz
bVdyYXBwZXIpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24pOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdyk6CisgICAgICAg
ICogd2FzbS93YXNtLmpzb246CisKIDIwMTktMDUtMTcgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlLWVuYWJsZSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDZiYzE1MDAyMWEzYTUwMDNl
OGJiMTRhNDgyY2UxOTMwNTYyZmM1ZDguLmYzMmZhNmVhOGU4YjBlNWZmZDFkMDkyOTUzY2Q5ZjZk
NWViYzg0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTUw
Miw2ICs1MDIsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0Fw
aSA9IGZhbHNlOwogICAgIHYoYm9vbCwgdXNlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGksIGVuYWJs
ZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpLCBOb3JtYWwsICJBbGxvdyB0byBydW4gV2ViQXNzZW1i
bHkncyBTdHJlYW1pbmcgQVBJIikgXAogICAgIHYoYm9vbCwgdXNlQ2FsbElDc0ZvcldlYkFzc2Vt
Ymx5VG9KU0NhbGxzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxsIHVzZSBDYWxsTGlu
a0luZm8gdG8gaW5saW5lIGNhY2hlIFdhc20gdG8gSlMgY2FsbHMuIikgXAogICAgIHYoYm9vbCwg
dXNlRWFnZXJXZWJBc3NlbWJseU1vZHVsZUhhc2hpbmcsIGZhbHNlLCBOb3JtYWwsICJVbm5hbWVk
IFdlYkFzc2VtYmx5IG1vZHVsZXMgYXJlIGlkZW50aWZpZWQgaW4gYmFja3RyYWNlcyB0aHJvdWdo
IHRoZWlyIGhhc2gsIGlmIGF2YWlsYWJsZS4iKSBcCisgICAgdihib29sLCB1c2VXZWJBc3NlbWJs
eVJlZmVyZW5jZXMsIHRydWUsIE5vcm1hbCwgIkFsbG93IHR5cGVzIGZyb20gdGhlIHdhc20gcmVm
ZXJlbmNlcyBzcGVjLiIpIFwKICAgICB2KGJvb2wsIHVzZUJpZ0ludCwgZmFsc2UsIE5vcm1hbCwg
IklmIHRydWUsIHdlIHdpbGwgZW5hYmxlIEJpZ0ludCBzdXBwb3J0LiIpIFwKICAgICB2KGJvb2ws
IHVzZUludGxOdW1iZXJGb3JtYXRUb1BhcnRzLCBlbmFibGVJbnRsTnVtYmVyRm9ybWF0VG9QYXJ0
cywgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCBlbmFibGUgSW50bC5OdW1iZXJGb3JtYXQucHJv
dG90eXBlLmZvcm1hdFRvUGFydHMiKSBcCiAgICAgdihib29sLCB1c2VJbnRsUGx1cmFsUnVsZXMs
IGVuYWJsZUludGxQbHVyYWxSdWxlcywgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCBlbmFibGUg
SW50bC5QbHVyYWxSdWxlcy4iKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCA0NzVlOTI2ODg0OWU4MmI1MGVjNDI2NTM2OThh
MDQ4MmJkNmZlOTIxLi5mNzk2MDczMTgwNmFiN2M2OTM5Zjc1MzA3NWI3MDYyYzQzY2Y2OGNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNp
bmNsdWRlICJCaW5hcnlTd2l0Y2guaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJl
Z2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCkBAIC0yMzAsNiArMjMxLDggQEAgcHVibGlj
OgogICAgIEV4cHJlc3Npb25UeXBlIGFkZENvbnN0YW50KFR5cGUsIHVpbnQ2NF90KTsKICAgICBF
eHByZXNzaW9uVHlwZSBhZGRDb25zdGFudChCYXNpY0Jsb2NrKiwgVHlwZSwgdWludDY0X3QpOwog
CisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkUmVmSXNOdWxsKEV4cHJl
c3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisKICAgICAvLyBMb2Nh
bHMKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBnZXRMb2NhbCh1aW50MzJf
dCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUGFydGlhbFJlc3VsdCBXQVJO
X1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZh
bHVlKTsKQEAgLTM2MCw2ICszNjMsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGU6Okkz
MjoKICAgICAgICAgICAgIHJldHVybiBnMzIoKTsKICAgICAgICAgY2FzZSBUeXBlOjpJNjQ6Cisg
ICAgICAgIGNhc2UgVHlwZTo6QW55cmVmOgogICAgICAgICAgICAgcmV0dXJuIGc2NCgpOwogICAg
ICAgICBjYXNlIFR5cGU6OkYzMjoKICAgICAgICAgICAgIHJldHVybiBmMzIoKTsKQEAgLTc4Niw2
ICs3OTAsNyBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9kdWxlSW5m
b3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAgICAgICAgICAgYXBwZW5kKE1v
dmUzMiwgYXJnLCBtX2xvY2Fsc1tpXSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBUeXBlOjpJNjQ6CisgICAgICAgIGNhc2UgVHlwZTo6QW55cmVmOgogICAgICAgICAgICAgYXBw
ZW5kKE1vdmUsIGFyZywgbV9sb2NhbHNbaV0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgVHlwZTo6RjMyOgpAQCAtOTAyLDYgKzkwNyw3IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6
OmFkZENvbnN0YW50KEJhc2ljQmxvY2sqIGJsb2NrLCBUeXBlIHR5cGUsIHVpbnQ2NF90IHZhbHVl
KSAtCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBUeXBlOjpJMzI6CiAgICAgY2FzZSBU
eXBlOjpJNjQ6CisgICAgY2FzZSBUeXBlOjpBbnlyZWY6CiAgICAgICAgIGFwcGVuZChibG9jaywg
TW92ZSwgQXJnOjpiaWdJbW0odmFsdWUpLCByZXN1bHQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFR5cGU6OkYzMjoKQEAgLTkyNSw2ICs5MzEsMTggQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6
YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkUmVmSXNOdWxs
KEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlh
bFJlc3VsdAoreworICAgIEFTU0VSVCh2YWx1ZS50bXAoKSk7CisgICAgcmVzdWx0ID0gdG1wRm9y
VHlwZShUeXBlOjpJMzIpOworICAgIGF1dG8gdG1wID0gZzY0KCk7CisKKyAgICBhcHBlbmQoTW92
ZSwgQXJnOjpiaWdJbW0oSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSksIHRtcCk7CisgICAgYXBw
ZW5kKENvbXBhcmU2NCwgQXJnOjpyZWxDb25kKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCksIHZhbHVl
LCB0bXAsIHJlc3VsdCk7CisKKyAgICByZXR1cm4geyB9OworfQorCiBhdXRvIEFpcklSR2VuZXJh
dG9yOjpnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4g
UGFydGlhbFJlc3VsdAogewogICAgIEFTU0VSVChtX2xvY2Fsc1tpbmRleF0udG1wKCkpOwpAQCAt
MTUwOSw2ICsxNTI3LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkUmV0dXJuKGNvbnN0IENv
bnRyb2xEYXRhJiBkYXRhLCBjb25zdCBFeHByZXNzaW9uTGlzdCYgcmUKICAgICAgICAgICAgIGFw
cGVuZChSZXQzMiwgcmV0dXJuVmFsdWVHUFIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgVHlwZTo6STY0OgorICAgICAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgICAg
IGFwcGVuZChNb3ZlLCByZXR1cm5WYWx1ZXNbMF0sIHJldHVyblZhbHVlR1BSKTsKICAgICAgICAg
ICAgIGFwcGVuZChSZXQ2NCwgcmV0dXJuVmFsdWVHUFIpOwogICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5k
ZXggMTVmNDY0ZjAyY2UzNjlmMzVlNGNjYjE1ZTFiZTI1ZTBkYjBlNzAzYy4uYmIyNDcxZjhkYTc2
MDM4MDhiNTY0MjAzZjAwNzhiYTNjNjY4MWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcApAQCAtMTg0LDYgKzE4NCw4IEBAIHB1Ymxp
YzoKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRMb2NhbChUeXBlLCB1
aW50MzJfdCk7CiAgICAgRXhwcmVzc2lvblR5cGUgYWRkQ29uc3RhbnQoVHlwZSwgdWludDY0X3Qp
OwogCisgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkUmVmSXNOdWxsKEV4
cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisKICAgICAvLyBM
b2NhbHMKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBnZXRMb2NhbCh1aW50
MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CiAgICAgUGFydGlhbFJlc3VsdCBX
QVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBl
IHZhbHVlKTsKQEAgLTU1MCw2ICs1NTIsMTIgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjphZGRBcmd1
bWVudHMoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAgICBy
ZXR1cm4geyB9OwogfQogCithdXRvIEIzSVJHZW5lcmF0b3I6OmFkZFJlZklzTnVsbChFeHByZXNz
aW9uVHlwZSYgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQK
K3sKKyAgICByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2Ms
IEIzOjpFcXVhbCwgb3JpZ2luKCksIHZhbHVlLCBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSkp
OworICAgIHJldHVybiB7IH07Cit9CisKIGF1dG8gQjNJUkdlbmVyYXRvcjo6Z2V0TG9jYWwodWlu
dDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKIHsK
ICAgICBBU1NFUlQobV9sb2NhbHNbaW5kZXhdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXggMzE4NjZjMjBkY2JmZDA5ZmFk
ZGNmOTg3Mjg5Mzc5OGU1OTllMDI3My4uMTBlYjhjZDRlNzMzNmUwZWYyNGRjOWJlNTA0Yjc1MDdj
ZTgzYzc1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxp
bmdDb252ZW50aW9uLmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgICAgICBzd2l0
Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBUeXBlOjpJMzI6CiAgICAgICAgIGNhc2UgVHlwZTo6
STY0OgorICAgICAgICBjYXNlIFR5cGU6OkFueXJlZjoKICAgICAgICAgICAgIG1hcnNoYWxsQXJn
dW1lbnRJbXBsKG1fZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCwgcmVnRnVu
Yywgc3RhY2tGdW5jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGU6OkYz
MjoKQEAgLTI5OSw2ICszMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBUeXBlOjpJMzI6CiAgICAgICAgIGNhc2UgVHlwZTo6STY0OgorICAgICAgICBjYXNl
IFR5cGU6OkFueXJlZjoKICAgICAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENvbnN0cmFpbnQg
PSBCMzo6VmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaAppbmRleCBmYzY5ZWU1YzU4YTRmYWMzMWFjOTdiNGUxNmFjNjA0ZjJhMTRhZThkLi5i
NzYyMjY0NDE2M2JmNzhmNWVkMzgwNTE5ZDQzODM2YjUxNDgzZTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC02Miw2ICs2Miw4IEBAIGlubGluZSBib29sIGlz
VmFsdWVUeXBlKFR5cGUgdHlwZSkKICAgICBjYXNlIEYzMjoKICAgICBjYXNlIEY2NDoKICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBBbnlyZWY6CisgICAgICAgIHJldHVybiBPcHRpb25z
Ojp1c2VXZWJBc3NlbWJseVJlZmVyZW5jZXMoKTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVh
azsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVu
Y3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBh
cnNlci5oCmluZGV4IDJlMDI4ZTM2NjYyNjUzZWNlYzM5ZTAyZWRiOGEyMGJmZDQ0Y2RhOTEuLjE3
NTA1NmI1OGU3MjFmNzQ0MmQ0OGM3Mzk2NmRlMzMwMTE5NTgwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCkBAIC0xMDUsNyArMTA1LDcg
QEAgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OkZ1bmN0aW9uUGFyc2VyKENvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IHVpbnQ4X3QqIGZ1bmN0aW8KICAgICAsIG1faW5mbyhpbmZvKQogewogICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICBkYXRhTG9nTG4oIlBhcnNpbmcgZnVuY3Rpb24gc3RhcnRpbmcg
YXQ6ICIsICh1aW50cHRyX3QpZnVuY3Rpb25TdGFydCwgIiBvZiBsZW5ndGg6ICIsIGZ1bmN0aW9u
TGVuZ3RoKTsKKyAgICAgICAgZGF0YUxvZ0xuKCJQYXJzaW5nIGZ1bmN0aW9uIHN0YXJ0aW5nIGF0
OiAiLCAodWludHB0cl90KWZ1bmN0aW9uU3RhcnQsICIgb2YgbGVuZ3RoOiAiLCBmdW5jdGlvbkxl
bmd0aCwgIiB3aXRoIHNpZ25hdHVyZTogIiwgc2lnbmF0dXJlKTsKICAgICBtX2NvbnRleHQuc2V0
UGFyc2VyKHRoaXMpOwogfQogCkBAIC0yODEsNiArMjgxLDIxIEBAIGF1dG8gRnVuY3Rpb25QYXJz
ZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbigpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKKyAgICBjYXNlIFJlZk51bGw6IHsKKyAgICAgICAgV0FTTV9Q
QVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlSZWZlcmVuY2VzKCksICJyZWZl
cmVuY2VzIGFyZSBub3QgZW5hYmxlZCIpOworICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5hcHBl
bmQobV9jb250ZXh0LmFkZENvbnN0YW50KEFueXJlZiwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgp
KSkpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGNhc2UgUmVmSXNOdWxsOiB7
CisgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5UmVm
ZXJlbmNlcygpLCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgRXhwcmVz
c2lvblR5cGUgcmVzdWx0LCB2YWx1ZTsKKyAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05f
U1RBQ0tfSU5UTyh2YWx1ZSwgInJlZi5pc19udWxsIik7CisgICAgICAgIFdBU01fVFJZX0FERF9U
T19DT05URVhUKGFkZFJlZklzTnVsbCh2YWx1ZSwgcmVzdWx0KSk7CisgICAgICAgIG1fZXhwcmVz
c2lvblN0YWNrLmFwcGVuZChyZXN1bHQpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwog
ICAgIGNhc2UgR2V0TG9jYWw6IHsKICAgICAgICAgdWludDMyX3QgaW5kZXg7CiAgICAgICAgIEV4
cHJlc3Npb25UeXBlIHJlc3VsdDsKQEAgLTYzOSw2ICs2NTQsMTYgQEAgYXV0byBGdW5jdGlvblBh
cnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24oKSAtPiBQYXJ0aWFsUmVz
dWx0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCisgICAgY2FzZSBSZWZOdWxsOiB7Cisg
ICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5UmVmZXJl
bmNlcygpLCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICB9CisKKyAgICBjYXNlIFJlZklzTnVsbDogeworICAgICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVJlZmVyZW5jZXMoKSwgInJlZmVyZW5jZXMg
YXJlIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCiAgICAgY2Fz
ZSBHcm93TWVtb3J5OgogICAgIGNhc2UgQ3VycmVudE1lbW9yeTogewogICAgICAgICB1aW50OF90
IHJlc2VydmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZh
bGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5jcHAK
aW5kZXggYmNkNDc3YmMyMGVmN2M4YWE3M2JlYjFhODZhM2FhYjkxZDBiZjA4YS4uZmQ1NDE2MjAw
ODQwOWRhMzZmOTY5NGQzODkxMmM4ZWZjOTE0MjhiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwCkBAIC0xMDAsNiArMTAwLDggQEAgcHVibGljOgogICAg
IFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkTG9jYWwoVHlwZSwgdWludDMyX3QpOwogICAg
IEV4cHJlc3Npb25UeXBlIGFkZENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0X3QpIHsgcmV0dXJu
IHR5cGU7IH0KIAorICAgIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkUmVmSXNOdWxsKEV4
cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisKICAgICAvLyBM
b2NhbHMKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGdldExvY2FsKHVpbnQzMl90IGlu
ZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBSZXN1bHQgV0FSTl9VTlVTRURfUkVU
VVJOIHNldExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2YWx1ZSk7CkBAIC0x
NjksNiArMTcxLDE0IEBAIGF1dG8gVmFsaWRhdGU6OmFkZEFyZ3VtZW50cyhjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSkgLT4gUmVzdWx0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYXV0byBWYWxp
ZGF0ZTo6YWRkUmVmSXNOdWxsKEV4cHJlc3Npb25UeXBlJiB2YWx1ZSwgRXhwcmVzc2lvblR5cGUm
IHJlc3VsdCkgLT4gUmVzdWx0Cit7CisgICAgcmVzdWx0ID0gVHlwZTo6STMyOworICAgIFdBU01f
VkFMSURBVE9SX0ZBSUxfSUYoVHlwZTo6QW55cmVmICE9IHZhbHVlLCAicmVmLmlzX251bGwgdG8g
dHlwZSAiLCB2YWx1ZSwgIiBleHBlY3RlZCAiLCBUeXBlOjpBbnlyZWYpOworCisgICAgcmV0dXJu
IHsgfTsKK30KKwogYXV0byBWYWxpZGF0ZTo6YWRkTG9jYWwoVHlwZSB0eXBlLCB1aW50MzJfdCBj
b3VudCkgLT4gUmVzdWx0CiB7CiAgICAgc2l6ZV90IHNpemUgPSBtX2xvY2Fscy5zaXplKCkgKyBj
b3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2Fz
bU9wc0hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbU9w
c0hlYWRlci5weQppbmRleCAwYjhkN2IwMjY0NDgwYWYzMmQ5YjgxYzBlMjIyMmRiN2UwN2I4NzE1
Li40ZTlhNjY1NjYzMTk3OWQyYzkzNzhiNjM3ZTFiODhmMDY5MmI3NTFjIDEwMDc1NQotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21PcHNIZWFkZXIucHkKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5CkBAIC05
NSw3ICs5NSw3IEBAIGRlZiBjZWlsRGl2KGEsIGIpOgogCiBkZWYgYml0U2V0KCk6CiAgICAgdiA9
ICIiCi0gICAgZm9yIGkgaW4gcmFuZ2UoY2VpbERpdihtYXhPcFZhbHVlLCA4KSk6CisgICAgZm9y
IGkgaW4gcmFuZ2UoY2VpbERpdihtYXhPcFZhbHVlICsgMSwgOCkpOgogICAgICAgICBlbnRyeSA9
IDAKICAgICAgICAgZm9yIGogaW4gcmFuZ2UoOCk6CiAgICAgICAgICAgICBpZiBpICogOCArIGog
aW4gb3BWYWx1ZVNldDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTVG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNw
cAppbmRleCA3NzRiY2UwZDczODYzMjcwZDI5Y2Q3ODdkZTU1MzVlNjdlMGI1NDRhLi42NTdkYTU3
YWViN2NlM2RhZWFmM2MyNTc0NzgxOGI2MjBkY2UxNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNUb1dhc20uY3BwCkBAIC04Miw2ICs4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxJbnRlcm5hbEZ1bmN0aW9uPiBjcmVhdGVKU1RvV2FzbVdyYXBwZXIoQ29tcGlsYXRpb25Db250
ZXh0JiBjb21wCiAgICAgICAgICAgICBhcmd1bWVudHNJbmNsdWRlSTY0ID0gdHJ1ZTsKICAgICAg
ICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICBjYXNlIFdhc206OkkzMjoKKyAgICAgICAgY2Fz
ZSBXYXNtOjpBbnlyZWY6CiAgICAgICAgICAgICBpZiAobnVtR1BScyA+PSB3YXNtQ2FsbGluZ0Nv
bnZlbnRpb24oKS5tX2dwckFyZ3Muc2l6ZSgpKQogICAgICAgICAgICAgICAgIHRvdGFsRnJhbWVT
aXplICs9IHNpemVvZih2b2lkKik7CiAgICAgICAgICAgICArK251bUdQUnM7CkBAIC0xNjQsNiAr
MTY1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNt
V3JhcHBlcihDb21waWxhdGlvbkNvbnRleHQmIGNvbXAKICAgICAgICAgICAgIHN3aXRjaCAoc2ln
bmF0dXJlLmFyZ3VtZW50KGkpKSB7CiAgICAgICAgICAgICBjYXNlIFdhc206OkkzMjoKICAgICAg
ICAgICAgIGNhc2UgV2FzbTo6STY0OgorICAgICAgICAgICAgY2FzZSBXYXNtOjpBbnlyZWY6CiAg
ICAgICAgICAgICAgICAgaWYgKG51bUdQUnMgPj0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkubV9n
cHJBcmdzLnNpemUoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3Vt
ZW50KGkpID09IFdhc206OkkzMikgewogICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQz
MihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGpzT2Zm
c2V0KSwgc2NyYXRjaFJlZyk7CkBAIC0yNDcsNiArMjQ5LDkgQEAgc3RkOjp1bmlxdWVfcHRyPElu
dGVybmFsRnVuY3Rpb24+IGNyZWF0ZUpTVG9XYXNtV3JhcHBlcihDb21waWxhdGlvbkNvbnRleHQm
IGNvbXAKICAgICBjYXNlIFdhc206OlZvaWQ6CiAgICAgICAgIGppdC5tb3ZlVHJ1c3RlZFZhbHVl
KGpzVW5kZWZpbmVkKCksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FzbTo6QW55cmVmOgorICAgICAgICAvLyBGSVhN
RTogV2UgbmVlZCB0byBib3ggd2FzbSBGdW5jcmVmcyBvbmNlIHRoZXkgYXJlIHN1cHBvcnRlZCBo
ZXJlLgorICAgICAgICBicmVhazsKICAgICBjYXNlIFdhc206OkkzMjoKICAgICAgICAgaml0Lnpl
cm9FeHRlbmQzMlRvUHRyKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5W
YWx1ZUdQUik7CiAgICAgICAgIGppdC5ib3hJbnQzMihHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwg
SlNWYWx1ZVJlZ3MgeyBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9LCBEb05vdEhhdmVUYWdSZWdp
c3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRv
SlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCmluZGV4
IDU3MmIwMzA3ZDAzMmM0MGI1OTIzNTNlNmI2ZDQyM2JkNmZjZGJiM2MuLjViZmY5Y2M2ZDA0NDFm
MGVmY2YyMWI5ZGNmOTg4MTA3ZmI1Njg4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XYXNtVG9KUy5jcHAKQEAgLTE2NSw2ICsxNjUsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZN
KiB2bQogICAgICAgICAgICAgY2FzZSBBbnlmdW5jOgogICAgICAgICAgICAgY2FzZSBJNjQ6CiAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IGNhc2UgQW55cmVmOgogICAgICAgICAgICAgY2FzZSBJMzI6IHsKICAgICAgICAgICAgICAgICBH
UFJSZWcgZ3ByUmVnOwogICAgICAgICAgICAgICAgIGlmIChtYXJzaGFsbGVkR1BScyA8IHdhc21D
Qy5tX2dwckFyZ3Muc2l6ZSgpKQpAQCAtMTc1LDcgKzE3Niw4IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMo
Vk0qIHZtCiAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoSklUOjpBZGRyZXNzKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBmck9mZnNldCksIGdwclJlZyk7CiAgICAgICAgICAgICAg
ICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1B0cihncHJSZWcsIGdwclJlZyk7Cisg
ICAgICAgICAgICAgICAgaWYgKGFyZ1R5cGUgPT0gSTMyKQorICAgICAgICAgICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9QdHIoZ3ByUmVnLCBncHJSZWcpOwogICAgICAgICAgICAgICAgIGpp
dC5zdG9yZTY0KGdwclJlZywgYnVmZmVyICsgYnVmZmVyT2Zmc2V0KTsKICAgICAgICAgICAgICAg
ICArK21hcnNoYWxsZWRHUFJzOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjQxLDYgKzI0
MywxMCBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwg
QmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNKiB2bQogICAgICAgICAgICAgICAgICAgICBjYXNl
IEkzMjoKICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGpzTnVtYmVyKHN0YXRpY19jYXN0
PGludDMyX3Q+KGJ1ZmZlclthcmdOdW1dKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBbnlyZWY6CisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBib3ggd2FzbSBGdW5jcmVmcyBvbmNlIHRoZXkgYXJl
IHN1cHBvcnRlZCBoZXJlLgorICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gSlNWYWx1ZTo6
ZGVjb2RlKGJ1ZmZlclthcmdOdW1dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICBjYXNlIEYzMjoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBG
NjQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBqc051bWJlcihwdXJpZnlOYU4oYml0
d2lzZV9jYXN0PGRvdWJsZT4oYnVmZmVyW2FyZ051bV0pKSk7CkBAIC0yNzIsNiArMjc4LDEwIEBA
IEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5n
RmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAgICAgICAgICAgICAgIHJlYWxSZXN1bHQg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJlc3VsdC50b0lu
dDMyKGV4ZWMpKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBjYXNlIEFueXJlZjogeworICAgICAgICAgICAgICAgICAgICBy
ZWFsUmVzdWx0ID0gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBjYXNlIEY2NDoKICAg
ICAgICAgICAgICAgICBjYXNlIEYzMjogewogICAgICAgICAgICAgICAgICAgICByZWFsUmVzdWx0
ID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihyZXN1bHQudG9OdW1iZXIoZXhlYykpOwpAQCAtMzY0
LDYgKzM3NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZtCiAgICAgICAgICAgICBjYXNlIEFu
eWZ1bmM6CiAgICAgICAgICAgICBjYXNlIEk2NDoKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5kbGVkIGFib3ZlLgorICAgICAgICAgICAgY2FzZSBB
bnlyZWY6CiAgICAgICAgICAgICBjYXNlIEkzMjogewogICAgICAgICAgICAgICAgIEdQUlJlZyBn
cHJSZWc7CiAgICAgICAgICAgICAgICAgaWYgKG1hcnNoYWxsZWRHUFJzIDwgd2FzbUNDLm1fZ3By
QXJncy5zaXplKCkpCkBAIC0zNzUsOCArMzg2LDExIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0qIHZt
CiAgICAgICAgICAgICAgICAgICAgIGZyT2Zmc2V0ICs9IHNpemVvZihSZWdpc3Rlcik7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICsrbWFyc2hhbGxlZEdQUnM7Ci0gICAgICAg
ICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvUHRyKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIg
bm9uLWludDMyIGFuZCBub24tdGFnIGJpdHMuCi0gICAgICAgICAgICAgICAgaml0LmJveEludDMy
KGdwclJlZywgSlNWYWx1ZVJlZ3MoZ3ByUmVnKSwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKKyAg
ICAgICAgICAgICAgICBpZiAoYXJnVHlwZSA9PSBJMzIpIHsKKyAgICAgICAgICAgICAgICAgICAg
aml0Lnplcm9FeHRlbmQzMlRvUHRyKGdwclJlZywgZ3ByUmVnKTsgLy8gQ2xlYXIgbm9uLWludDMy
IGFuZCBub24tdGFnIGJpdHMuCisgICAgICAgICAgICAgICAgICAgIGppdC5ib3hJbnQzMihncHJS
ZWcsIEpTVmFsdWVSZWdzKGdwclJlZyksIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGJveCB3YXNt
IEZ1bmNyZWZzIG9uY2UgdGhleSBhcmUgc3VwcG9ydGVkIGhlcmUuCiAgICAgICAgICAgICAgICAg
aml0LnN0b3JlNjQoZ3ByUmVnLCBjYWxsZWVGcmFtZS53aXRoT2Zmc2V0KGNhbGxlZUZyYW1lT2Zm
c2V0KSk7CiAgICAgICAgICAgICAgICAgY2FsbGVlRnJhbWVPZmZzZXQgKz0gc2l6ZW9mKFJlZ2lz
dGVyKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQzMCw2ICs0NDQsNyBAQCBFeHBlY3Rl
ZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+
IHdhc21Ub0pTKFZNKiB2bQogICAgICAgICAgICAgY2FzZSBBbnlmdW5jOgogICAgICAgICAgICAg
Y2FzZSBJNjQ6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
Ly8gSGFuZGxlZCBhYm92ZS4KKyAgICAgICAgICAgIGNhc2UgQW55cmVmOgogICAgICAgICAgICAg
Y2FzZSBJMzI6CiAgICAgICAgICAgICAgICAgLy8gU2tpcHBlZDogaGFuZGxlZCBhYm92ZS4KICAg
ICAgICAgICAgICAgICBpZiAobWFyc2hhbGxlZEdQUnMgPj0gd2FzbUNDLm1fZ3ByQXJncy5zaXpl
KCkpCkBAIC01MzgsNiArNTUzLDggQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdh
c21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSogdm0KICAgICAgICAg
ZG9uZS5saW5rKCZqaXQpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBBbnlyZWY6
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRjMyOiB7CiAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZG9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAppbmRleCA2ZGNlYzgwZGQ4NGUxNGMwMmFjYjU4N2Y3
YzA5OWQwMjI4ZTE2Mzc5Li4yZmYwZTc4ZTU4MmY2NTYxYTI4ZjNjNTk1Mzc4MjFjMDM5ODBiODkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUZ1bmN0aW9uLmNwcApAQCAtODQsNiArODQsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsV2ViQXNzZW1ibHlGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
ICAgIGNhc2UgV2FzbTo6STMyOgogICAgICAgICAgICAgYXJnID0gSlNWYWx1ZTo6ZGVjb2RlKGFy
Zy50b0ludDMyKGV4ZWMpKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdhc206
OkFueXJlZjoKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdhc206Okk2NDoKICAg
ICAgICAgICAgIGFyZyA9IEpTVmFsdWUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjI1LDYg
KzIyNyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJs
eUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGNhc2UgV2FzbTo6STY0
OgogICAgICAgICAgICAgYXJndW1lbnRzSW5jbHVkZUk2NCA9IHRydWU7CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXYXNtOjpBbnlyZWY6CiAgICAgICAgIGNhc2UgV2FzbTo6STMy
OgogICAgICAgICAgICAgaWYgKG51bUdQUnMgPj0gV2FzbTo6d2FzbUNhbGxpbmdDb252ZW50aW9u
KCkubV9ncHJBcmdzLnNpemUoKSkKICAgICAgICAgICAgICAgICB0b3RhbEZyYW1lU2l6ZSArPSBz
aXplb2YoQ1BVUmVnaXN0ZXIpOwpAQCAtMzAwLDYgKzMwMywxOCBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2lu
dFNsb3coKQogICAgICAgICAgICAgICAgICAgICArK251bUdQUnM7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXYXNtOjpBbnlyZWY6
IHsKKyAgICAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwganNPZmZzZXQpLCBzY3JhdGNoR1BSKTsKKworICAgICAg
ICAgICAgICAgIGlmIChudW1HUFJzID49IFdhc206Ondhc21DYWxsaW5nQ29udmVudGlvbigpLm1f
Z3ByQXJncy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaml0LnN0b3JlNjQoc2NyYXRj
aEdQUiwgY2FsbGVlRnJhbWUud2l0aE9mZnNldCh3YXNtT2Zmc2V0KSk7CisgICAgICAgICAgICAg
ICAgICAgIHdhc21PZmZzZXQgKz0gc2l6ZW9mKENQVVJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCBXYXNt
Ojp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5tX2dwckFyZ3NbbnVtR1BSc10uZ3ByKCkpOworICAg
ICAgICAgICAgICAgICAgICArK251bUdQUnM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBXYXNtOjpGMzI6
CiAgICAgICAgICAgICBjYXNlIFdhc206OkY2NDoKICAgICAgICAgICAgICAgICBpZiAobnVtRlBS
cyA+PSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5tX2ZwckFyZ3Muc2l6ZSgpKSB7CkBA
IC00NTEsNiArNDY2LDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgIGlzTmFO
LmxpbmsoJmppdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFdhc206OkFueXJl
ZjogeworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBib3ggd2FzbSBGdW5jcmVmcyBvbmNl
IHRoZXkgYXJlIHN1cHBvcnRlZCBoZXJlLgorICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2Fz
ZSBXYXNtOjpJNjQ6CiAgICAgY2FzZSBXYXNtOjpGdW5jOgogICAgIGNhc2UgV2FzbTo6QW55ZnVu
YzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgppbmRleCAzMWQxMDNmOWM4YTIwMjJh
NzE0NDAzMjY4NmU3NjBjNDBjYWYzYTQ1Li5lNjFhYTc0YzMzODY2MGU0YjVmMTZhMzU0ZDUyZDE1
MTA2MDA5MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCkBAIC0xMiwxMSAr
MTIsMTIgQEAKICAgICAgICAgImYzMiI6ICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUi
OiAgLTMsICJiM3R5cGUiOiAiQjM6OkZsb2F0IiB9LAogICAgICAgICAiZjY0IjogICAgIHsgInR5
cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNCwgImIzdHlwZSI6ICJCMzo6RG91YmxlIiB9LAog
ICAgICAgICAiYW55ZnVuYyI6IHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0xNiwgImIz
dHlwZSI6ICJCMzo6Vm9pZCIgfSwKKyAgICAgICAgImFueXJlZiI6ICB7ICJ0eXBlIjogInZhcmlu
dDciLCAidmFsdWUiOiAtMTcsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVu
YyI6ICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0zMiwgImIzdHlwZSI6ICJCMzo6
Vm9pZCIgfSwKICAgICAgICAgInZvaWQiOiAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUi
OiAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAotICAgICJ2YWx1ZV90eXBlIjog
WyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiXSwKLSAgICAiYmxvY2tfdHlwZSI6IFsiaTMyIiwg
Imk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiXSwKKyAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwg
Imk2NCIsICJmMzIiLCAiZjY0IiwgImFueXJlZiJdLAorICAgICJibG9ja190eXBlIjogWyJpMzIi
LCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJhbnlyZWYiXSwKICAgICAiZWxlbV90eXBl
IjogWyJhbnlmdW5jIl0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlv
biI6IHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAwIH0sCkBAIC01OCw2ICs1OSw4IEBACiAg
ICAgICAgICJpNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAg
ICJ2YWx1ZSI6ICA2NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAg
ICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAg
ICAgICAidHlwZSI6ICJ2YXJpbnQ2NCJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRl
ZCBhcyBpNjQiIH0sCiAgICAgICAgICJmNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnki
OiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2OCwgInJldHVybiI6IFsiZjY0Il0sICAgICAgInBh
cmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUi
OiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJkb3VibGUifV0sICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2
YWx1ZSBpbnRlcnByZXRlZCBhcyBmNjQiIH0sCiAgICAgICAgICJmMzIuY29uc3QiOiAgICAgICAg
ICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2NywgInJldHVybiI6IFsi
ZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVk
aWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJmbG9hdCJ9XSwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmMzIiIH0sCisgICAgICAgICJyZWYu
bnVsbCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6IDIw
OCwgInJldHVybiI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAg
ICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCBudWxsIHJlZmVyZW5jZSIgfSwKKyAgICAgICAg
InJlZi5pc19udWxsIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFsIiwgICAgInZhbHVl
IjogMjA5LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjogWyJhbnlyZWYiXSwg
ICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJkZXRlcm1pbmUgaWYgYSByZWZlcmVuY2UgaXMgbnVsbCIg
fSwKICAgICAgICAgImdldF9sb2NhbCI6ICAgICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFs
IiwgICAgInZhbHVlIjogIDMyLCAicmV0dXJuIjogWyJhbnkiXSwgICAgICAicGFyYW1ldGVyIjog
W10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFtZSI6ICJsb2NhbF9p
bmRleCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJyZWFkIGEgbG9jYWwgdmFyaWFibGUg
b3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAic2V0X2xvY2FsIjogICAgICAgICAgIHsgImNhdGVn
b3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzMsICJyZXR1cm4iOiBbXSwgICAgICAgICAg
ICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJu
YW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1dLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEg
bG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAidGVlX2xvY2FsIjogICAg
ICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzQsICJyZXR1cm4i
OiBbImFueSJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJp
bW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMy
In1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIGFuZCByZXR1cm4gdGhl
IHNhbWUgdmFsdWUiIH0sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggOGYzMmVmOWEyMGExYTZlNjIyNWExMjIyMjU0MTkzYzQyOTg2Y2ZhNC4uZjdh
ZmJlN2M4M2ZkMTY5MDdiN2Y2YTIyZDc3NTFiMTc2MzI5NWM4ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA1
LTE3ICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV0FTTS1SZWZlcmVuY2VzXSBBZGQgc3VwcG9ydCBmb3IgQW55cmVmIGluIHBhcmFtZXRlcnMg
YW5kIHJldHVybiB0eXBlcywgUmVmLm51bGwgYW5kIFJlZi5pc19udWxsIGZvciBBbnlyZWYgdmFs
dWVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
OTY5CisKKyAgICAgICAgUnVuIHdhc20gdGVzdHMgYWRkaXRpb25hbGx5IHdpdGggd2FzbUJCUVVz
ZXNBaXI9MC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMTktMDUtMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU1BJIHRv
IHNldCBhIGxpc3Qgb2YgaG9zdHMgdG8gd2hpY2ggdG8gc2VuZCBjdXN0b20gaGVhZGVyIGZpZWxk
cyBjcm9zcy1vcmlnaW4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGE3YmUzNjg1
ODhhNWRmMjZkZGVmZTJhNTU1NDEyNjU5ZTlmYmVlZWMuLjI3MDNjNDA1M2EyM2FhM2RjY2UxYWIw
MzE3MmQ4YzZkMmEyMTE4NjEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTA4
MCw2ICsxMDgwLDcgQEAgZGVmIHJ1bldlYkFzc2VtYmx5CiAgICAgICAgIHJ1bigid2FzbS1uby1j
YWxsLWljIiwgIi1tIiwgIi0tdXNlQ2FsbElDc0ZvcldlYkFzc2VtYmx5VG9KU0NhbGxzPWZhbHNl
IiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxzLWNvbnRleHQiLCAiLW0i
LCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAg
ICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItbSIsICItLXVzZVdlYkFzc2VtYmx5RmFzdE1l
bW9yeT1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgcnVuKCJ3YXNtLW5vLWFpciIsICIt
bSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgIGVuZAogZW5k
CiAKQEAgLTEwOTYsNiArMTA5Nyw3IEBAIGRlZiBydW5XZWJBc3NlbWJseVN1aXRlCiAgICAgICAg
IHJ1bigid2FzbS1uby1jYWxsLWljIiwgIi1tIiwgIi0tdXNlQ2FsbElDc0ZvcldlYkFzc2VtYmx5
VG9KU0NhbGxzPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgICBydW4oIndhc20tbm8tdGxz
LWNvbnRleHQiLCAiLW0iLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFsc2UiLCAqRlRM
X09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1zbG93LW1lbW9yeSIsICItbSIsICItLXVzZVdl
YkFzc2VtYmx5RmFzdE1lbW9yeT1mYWxzZSIsICpGVExfT1BUSU9OUykKKyAgICAgICAgcnVuKCJ3
YXNtLW5vLWFpciIsICItbSIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNlIiwgKkZUTF9PUFRJT05T
KQogICAgIGVuZAogZW5kCiAKQEAgLTExMTQsNiArMTExNiw3IEBAIGRlZiBydW5XZWJBc3NlbWJs
eUVtc2NyaXB0ZW4obW9kZSkKICAgICAgICAgcnVuKCJ3YXNtLWVhZ2VyLWpldHRpc29uIiwgIi0t
Zm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVlVG9PbGRBZ2U9dHJ1ZSIsICpGVExfT1BUSU9OUykK
ICAgICAgICAgcnVuKCJ3YXNtLW5vLWNhbGwtaWMiLCAiLS11c2VDYWxsSUNzRm9yV2ViQXNzZW1i
bHlUb0pTQ2FsbHM9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiAgICAgICAgIHJ1bigid2FzbS1uby10
bHMtY29udGV4dCIsICItLXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BU
SU9OUykKKyAgICAgICAgcnVuKCJ3YXNtLW5vLWFpciIsICItLXdhc21CQlFVc2VzQWlyPWZhbHNl
IiwgKkZUTF9PUFRJT05TKQogICAgIGVuZAogZW5kCiAKQEAgLTExMzgsNiArMTE0MSw3IEBAIGRl
ZiBydW5XZWJBc3NlbWJseVNwZWNUZXN0KG1vZGUpCiAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxl
cigid2FzbS1lYWdlci1qZXR0aXNvbiIsIG5vaXN5T3V0cHV0SGFuZGxlciwgIi4uL3NwZWMtaGFy
bmVzcy5qcyIsICItLWZvcmNlQ29kZUJsb2NrVG9KZXR0aXNvbkR1ZVRvT2xkQWdlPXRydWUiLCAq
RlRMX09QVElPTlMpCiAgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby1jYWxsLWlj
Iiwgbm9pc3lPdXRwdXRIYW5kbGVyLCAiLi4vc3BlYy1oYXJuZXNzLmpzIiwgIi0tdXNlQ2FsbElD
c0ZvcldlYkFzc2VtYmx5VG9KU0NhbGxzPWZhbHNlIiwgKkZUTF9PUFRJT05TKQogICAgICAgcnVu
V2l0aE91dHB1dEhhbmRsZXIoIndhc20tbm8tdGxzLWNvbnRleHQiLCBub2lzeU91dHB1dEhhbmRs
ZXIsICIuLi9zcGVjLWhhcm5lc3MuanMiLCAiLS11c2VGYXN0VExTRm9yV2FzbUNvbnRleHQ9ZmFs
c2UiLCAqRlRMX09QVElPTlMpCisgICAgICBydW5XaXRoT3V0cHV0SGFuZGxlcigid2FzbS1uby1h
aXIiLCBub2lzeU91dHB1dEhhbmRsZXIsICIuLi9zcGVjLWhhcm5lc3MuanMiLCAiLS13YXNtQkJR
VXNlc0Fpcj1mYWxzZSIsICpGVExfT1BUSU9OUykKICAgICBlbmQKIGVuZAogCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU2OGM4MjY3MmU1
MjNlOGUyNDlhMDIyZThiZjYwMWIxMjJjM2ZhMzEuLjFhZmNmZTdhNzVjZDM0M2FmOTljNTEwMTQw
OTRkYWZkNWNjYTM4ZTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDUtMTcgIEp1c3RpbiBNaWNoYXVk
ICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNd
IEFkZCBzdXBwb3J0IGZvciBBbnlyZWYgaW4gcGFyYW1ldGVycyBhbmQgcmV0dXJuIHR5cGVzLCBS
ZWYubnVsbCBhbmQgUmVmLmlzX251bGwgZm9yIEFueXJlZiB2YWx1ZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5NjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHRoZSBhbnlyZWYgdHlw
ZSBpbiBCdWlsZGVyLmpzLCBwbHVzIGFkZCBzb21lIGV4dHJhIGVycm9yIGxvZ2dpbmcuCisgICAg
ICAgIEFkZCBuZXcgZm9sZGVyIGZvciB3YXNtIHJlZmVyZW5jZXMgdGVzdHMuCisKKyAgICAgICAg
KiB3YXNtLnlhbWw6CisgICAgICAgICogd2FzbS9CdWlsZGVyLmpzOgorICAgICAgICAoY29uc3Qu
X2lzVmFsaWRWYWx1ZSk6CisgICAgICAgICogd2FzbS9yZWZlcmVuY2VzL2FueXJlZl9tb2R1bGVz
LmpzOiBBZGRlZC4KKyAgICAgICAgKENhbGwuMy5SZWZJc051bGwuRW5kLkVuZC5XZWJBc3NlbWJs
eS5qcy5pZGVudCk6CisgICAgICAgIChDYWxsLjMuUmVmSXNOdWxsLkVuZC5FbmQuV2ViQXNzZW1i
bHkuanMubWFrZV9udWxsKToKKyAgICAgICAgKENhbGwuMy5SZWZJc051bGwuRW5kLkVuZC5XZWJB
c3NlbWJseSk6CisgICAgICAgICh1bmRlZmluZWQpOgorICAgICAgICAqIHdhc20vcmVmZXJlbmNl
cy9pc19udWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMvaXNfbnVsbF9l
cnJvci5qczogQWRkZWQuCisgICAgICAgICogd2FzbS9zcGVjLWhhcm5lc3MvaW5kZXguanM6Cisg
ICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMTktMDUtMTYgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIEludmFsaWQgQXNzaWdubWVu
dFRhcmdldFR5cGUgc2hvdWxkIGJlIGFuIGVhcmx5IGVycm9yLgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtLnlhbWwgYi9KU1Rlc3RzL3dhc20ueWFtbAppbmRleCAzYzFhNWZjZjFmZDhiYTE5NGY3
ODZlZWEyNDNlNmY1Y2E0MWJmMjNmLi40NWRiZDFhY2I3MDkzZGYyNjcwNDEyOWM2YjQyZjRjYWMz
OWQ2M2U1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20ueWFtbAorKysgYi9KU1Rlc3RzL3dhc20u
eWFtbApAQCAtMjksNiArMjksOCBAQAogICBjbWQ6IHJ1bk5vSklUIHVubGVzcyBwYXJzZVJ1bkNv
bW1hbmRzCiAtIHBhdGg6IHdhc20vZnVuY3Rpb24tdGVzdHMKICAgY21kOiBydW5XZWJBc3NlbWJs
eVN1aXRlIHVubGVzcyBwYXJzZVJ1bkNvbW1hbmRzCistIHBhdGg6IHdhc20vcmVmZXJlbmNlcwor
ICBjbWQ6IHJ1bldlYkFzc2VtYmx5U3VpdGUgdW5sZXNzIHBhcnNlUnVuQ29tbWFuZHMKIC0gcGF0
aDogd2FzbS9mdXp6CiAgIGNtZDogcnVuV2ViQXNzZW1ibHlTdWl0ZSB1bmxlc3MgcGFyc2VSdW5D
b21tYW5kcwogLSBwYXRoOiB3YXNtL3N0cmVzcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL0J1
aWxkZXIuanMgYi9KU1Rlc3RzL3dhc20vQnVpbGRlci5qcwppbmRleCBlOTRmMGEzMWE0MTZmODYz
MTc5MzU1MWRjMTE2MDNkZTZkYzRkMTNjLi5mMjJkZTFiODFjODQwOWRhMDQ0YmIwNTExMmE0NWNk
MjlmZDcyODk2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vQnVpbGRlci5qcworKysgYi9KU1Rl
c3RzL3dhc20vQnVpbGRlci5qcwpAQCAtMzMsNiArMzMsNyBAQCBjb25zdCBfaXNWYWxpZFZhbHVl
ID0gKHZhbHVlLCB0eXBlKSA9PiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgLy8gV2UgYWxs
b3cgYm90aCBzaWduZWQgYW5kIHVuc2lnbmVkIG51bWJlcnMuCiAgICAgY2FzZSAiaTMyIjogcmV0
dXJuIE1hdGgucm91bmQodmFsdWUpID09PSB2YWx1ZSAmJiBMTEIudmFyaW50MzJNaW4gPD0gdmFs
dWUgJiYgdmFsdWUgPD0gTExCLnZhcnVpbnQzMk1heDsKKyAgICBjYXNlICJhbnlyZWYiOiByZXR1
cm4gdHJ1ZTsKICAgICBjYXNlICJpNjQiOiByZXR1cm4gdHJ1ZTsgLy8gRklYTUUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQyMCA2NC1iaXQgdmFsdWVzCiAgICAg
Y2FzZSAiZjMyIjogcmV0dXJuIHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiICYmIGlzRmluaXRl
KHZhbHVlKTsKICAgICBjYXNlICJmNjQiOiByZXR1cm4gdHlwZW9mKHZhbHVlKSA9PT0gIm51bWJl
ciIgJiYgaXNGaW5pdGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZmVyZW5j
ZXMvYW55cmVmX21vZHVsZXMuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9hbnlyZWZfbW9k
dWxlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZDEwMDk2ZDdiNWNlNmExYzZlYTk4NjUzYzU4ZmQyNTA0MjIz
ZmMzCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvYW55cmVmX21v
ZHVsZXMuanMKQEAgLTAsMCArMSwxMzIgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9h
c3NlcnQuanMnOworaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CisKK2NvbnN0
ICQxID0gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5l
dyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAuRnVuY3Rpb24oKS5FbmQo
KQorICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCJoIikKKyAgICAgICAgICAu
RnVuY3Rpb24oImkiKQorICAgICAgICAgIC5GdW5jdGlvbigiaiIpCisgICAgICAgICAgLkZ1bmN0
aW9uKCJrIikKKyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24o
ImgiLCB7IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgIC5H
ZXRMb2NhbCgwKQorICAgICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rpb24oImkiLCB7IHBh
cmFtczogW10sIHJldDogImFueXJlZiIgfSkKKyAgICAgICAgICAgIC5SZWZOdWxsKCkKKyAgICAg
ICAgICAgIC5DYWxsKDApCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlvbigiaiIs
IHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJpMzIiIH0pCisgICAgICAgICAgICAuR2V0TG9j
YWwoMCkKKyAgICAgICAgICAgIC5SZWZJc051bGwoKQorICAgICAgICAuRW5kKCkKKworICAgICAg
ICAuRnVuY3Rpb24oImsiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAg
IC5SZWZOdWxsKCkKKyAgICAgICAgICAgIC5SZWZJc051bGwoKQorICAgICAgICAuRW5kKCkKKyAg
ICAgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSk7CisKK2NvbnN0ICQyID0gbmV3IFdlYkFz
c2VtYmx5Lkluc3RhbmNlKG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCisg
ICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAuSW1wb3J0KCkKKyAgICAgICAgICAuRnVuY3Rpb24o
Im0xIiwgImgiLCB7IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAg
ICAgIC5GdW5jdGlvbigibTEiLCAiaiIsIHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJpMzIi
IH0pCisgICAgICAgICAgLkZ1bmN0aW9uKCJqcyIsICJpZGVudCIsIHsgcGFyYW1zOiBbImFueXJl
ZiJdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgLkZ1bmN0aW9uKCJqcyIsICJtYWtlX251
bGwiLCB7IHBhcmFtczogW10sIHJldDogImFueXJlZiIgfSkKKyAgICAgIC5FbmQoKQorICAgICAg
LkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgIC5FeHBvcnQoKQorICAgICAgICAgIC5GdW5jdGlvbigi
Y2FsbF9oIikKKyAgICAgICAgICAuRnVuY3Rpb24oImNhbGxfaiIpCisgICAgICAgICAgLkZ1bmN0
aW9uKCJjYWxsX2hfbnVsbCIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJjYWxsX2pfbnVsbCIpCisg
ICAgICAgICAgLkZ1bmN0aW9uKCJjYWxsX2lkZW50IikKKyAgICAgICAgICAuRnVuY3Rpb24oImNh
bGxfaWRlbnRfbnVsbCIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJpc19tYWtlbnVsbF9udWxsIikK
KyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oImNhbGxfaCIs
IHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgLkdldExv
Y2FsKDApCisgICAgICAgICAgLkNhbGwoMCkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1
bmN0aW9uKCJjYWxsX2oiLCB7IHBhcmFtczogWyJhbnlyZWYiXSwgcmV0OiAiaTMyIiB9KQorICAg
ICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgIC5DYWxsKDEpCisgICAgICAgIC5FbmQoKQor
CisgICAgICAgIC5GdW5jdGlvbigiY2FsbF9oX251bGwiLCB7IHBhcmFtczogW10sIHJldDogImFu
eXJlZiIgfSkKKyAgICAgICAgICAuUmVmTnVsbCgpCisgICAgICAgICAgLkNhbGwoMCkKKyAgICAg
ICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJjYWxsX2pfbnVsbCIsIHsgcGFyYW1zOiBb
XSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgIC5SZWZOdWxsKCkKKyAgICAgICAgICAuQ2FsbCgx
KQorICAgICAgICAuRW5kKCkKKworICAgICAgICAuRnVuY3Rpb24oImNhbGxfaWRlbnQiLCB7IHBh
cmFtczogWyJhbnlyZWYiXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgIC5JMzJDb25zdCgx
KQorICAgICAgICAgIC5JZigiYW55cmVmIikKKyAgICAgICAgICAuQmxvY2soImFueXJlZiIsIChi
KSA9PgorICAgICAgICAgICAgYi5HZXRMb2NhbCgwKQorICAgICAgICAgICkKKyAgICAgICAgICAu
RWxzZSgpCisgICAgICAgICAgLkJsb2NrKCJhbnlyZWYiLCAoYikgPT4KKyAgICAgICAgICAgIGIu
R2V0TG9jYWwoMCkKKyAgICAgICAgICApCisgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkNh
bGwoMikKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJjYWxsX2lkZW50X251
bGwiLCB7IHBhcmFtczogW10sIHJldDogImFueXJlZiIgfSkKKyAgICAgICAgICAuUmVmTnVsbCgp
CisgICAgICAgICAgLkNhbGwoMikKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9u
KCJpc19tYWtlbnVsbF9udWxsIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJpMzIiIH0pCisgICAgICAg
ICAgLkNhbGwoMykKKyAgICAgICAgICAuUmVmSXNOdWxsKCkKKyAgICAgICAgLkVuZCgpCisgICAg
ICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSksIHsgbTE6ICQxLmV4cG9ydHMsIGpzOiB7Cisg
ICAgICAgIGlkZW50OiBmdW5jdGlvbih4KSB7IHJldHVybiB4OyB9LAorICAgICAgICBtYWtlX251
bGw6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSwKKyAgICAgIH0gfSk7CisKK2Fzc2VydC5l
cSgkMi5leHBvcnRzLmNhbGxfaChudWxsKSwgbnVsbCkKKworY29uc3Qgb2JqID0geyB0ZXN0OiAi
aGkiIH0KK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaChvYmopLCBvYmopCithc3NlcnQuZXEo
JDIuZXhwb3J0cy5jYWxsX2goNSksIDUpCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2goImhp
IiksICJoaSIpCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2godW5kZWZpbmVkKSwgdW5kZWZp
bmVkKQorCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2oob2JqKSwgMCkKK2Fzc2VydC5lcSgk
Mi5leHBvcnRzLmNhbGxfaig1KSwgMCkKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaigiaGki
KSwgMCkKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaihudWxsKSwgMSkKK2Fzc2VydC5lcSgk
Mi5leHBvcnRzLmNhbGxfaih1bmRlZmluZWQpLCAwKQorCithc3NlcnQuZXEoJDIuZXhwb3J0cy5j
YWxsX2hfbnVsbCgpLCBudWxsKQorYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9qX251bGwoKSwg
MSkKKworYXNzZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9pZGVudChudWxsKSwgbnVsbCkKK2Fzc2Vy
dC5lcSgkMi5leHBvcnRzLmNhbGxfaWRlbnQob2JqKSwgb2JqKQorYXNzZXJ0LmVxKCQyLmV4cG9y
dHMuY2FsbF9pZGVudCg1KSwgNSkKK2Fzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaWRlbnQoImhp
IiksICJoaSIpCithc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50KHVuZGVmaW5lZCksIHVu
ZGVmaW5lZCkKKworZm9yIChsZXQgaT0wOyBpPDEwMDA7ICsraSkgeworICAgIC8vIFRyaWdnZXIg
dGhlIGljIHBhdGgKKyAgICBhc3NlcnQuZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50KG51bGwpLCBu
dWxsKQorICAgIGFzc2VydC5lcSgkMi5leHBvcnRzLmNhbGxfaWRlbnQoNyksIDcpCisgICAgYXNz
ZXJ0LmVxKCQyLmV4cG9ydHMuY2FsbF9pZGVudCgiYnllIiksICJieWUiKQorfQorCithc3NlcnQu
ZXEoJDIuZXhwb3J0cy5jYWxsX2lkZW50X251bGwoKSwgbnVsbCkKK2Fzc2VydC5lcSgkMi5leHBv
cnRzLmlzX21ha2VudWxsX251bGwoKSwgMSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9yZWZl
cmVuY2VzL2lzX251bGwuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9pc19udWxsLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUyYmNiZjM2YTc4MjU5ZTFiYThmZTRiNTBiMThjZTg4YzMwMjRkZmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9pc19udWxsLmpzCkBAIC0wLDAg
KzEsNjAgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOworaW1wb3J0
IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CisKK2NvbnN0IGJ1aWxkZXIgPSAobmV3IEJ1
aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisg
ICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAuRnVuY3Rpb24oImgiKQorICAgICAgICAgIC5GdW5j
dGlvbigiaSIpCisgICAgICAgICAgLkZ1bmN0aW9uKCJqIikKKyAgICAgICAgICAuRnVuY3Rpb24o
ImsiKQorICAgICAgLkVuZCgpCisgICAgICAuQ29kZSgpCisgICAgICAgIC5GdW5jdGlvbigiaCIs
IHsgcGFyYW1zOiBbImFueXJlZiJdLCByZXQ6ICJhbnlyZWYiIH0pCisgICAgICAgICAgLkdldExv
Y2FsKDApCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5GdW5jdGlvbigiaSIsIHsgcGFyYW1z
OiBbXSwgcmV0OiAiYW55cmVmIiB9KQorICAgICAgICAgICAgLlJlZk51bGwoKQorICAgICAgICAg
ICAgLkNhbGwoMCkKKyAgICAgICAgLkVuZCgpCisKKyAgICAgICAgLkZ1bmN0aW9uKCJqIiwgeyBw
YXJhbXM6IFsiYW55cmVmIl0sIHJldDogImkzMiIgfSkKKyAgICAgICAgICAgIC5HZXRMb2NhbCgw
KQorICAgICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAgIC5FbmQoKQorCisgICAgICAgIC5G
dW5jdGlvbigiayIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9KQorICAgICAgICAgICAgLlJl
Zk51bGwoKQorICAgICAgICAgICAgLlJlZklzTnVsbCgpCisgICAgICAgIC5FbmQoKQorICAgICAg
LkVuZCgpOworCitjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCkuZ2V0KCk7Citjb25z
dCBtb2R1bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbik7Citjb25zdCBpbnN0YW5jZSA9
IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUpOworYXNzZXJ0LmVxKGluc3RhbmNlLmV4
cG9ydHMuaChudWxsKSwgbnVsbCkKKworY29uc3Qgb2JqID0geyB0ZXN0OiAiaGkiIH0KK2Fzc2Vy
dC5lcShpbnN0YW5jZS5leHBvcnRzLmgob2JqKSwgb2JqKQorYXNzZXJ0LmVxKGluc3RhbmNlLmV4
cG9ydHMuaCg1KSwgNSkKK2Fzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmgoImhpIiksICJoaSIp
Cithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5oKHVuZGVmaW5lZCksIHVuZGVmaW5lZCkKKwor
YXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaSgpLCBudWxsKQorCithc3NlcnQuZXEoaW5zdGFu
Y2UuZXhwb3J0cy5qKG9iaiksIDApCithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5qKDUpLCAw
KQorYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaigiaGkiKSwgMCkKK2Fzc2VydC5lcShpbnN0
YW5jZS5leHBvcnRzLmoobnVsbCksIDEpCithc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5qKHVu
ZGVmaW5lZCksIDApCisKK2Fzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmsoKSwgMSkKKworYXNz
ZXJ0LmVxKG9iai50ZXN0LCAiaGkiKQorY29uc3Qgb2JqMiA9IGluc3RhbmNlLmV4cG9ydHMuaChv
YmopCitvYmoyLnRlc3QgPSAiYnllIgorYXNzZXJ0LmVxKG9iai50ZXN0LCAiYnllIikKKworZm9y
IChsZXQgaT0wOyBpPDEwMDA7ICsraSkgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaChudWxs
KSwgbnVsbCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2lzX251bGxfZXJy
b3IuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9pc19udWxsX2Vycm9yLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkxNWIzNmFkOTk2MTRmMGYwZjViODdjOTQyMzU3MjRkMTY5NTVjOGIKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9pc19udWxsX2Vycm9yLmpzCkBAIC0wLDAg
KzEsMjIgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOworaW1wb3J0
IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CisKK3sKKyAgICBjb25zdCBidWlsZGVyID0g
KG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAuRnVuY3Rpb24oKS5F
bmQoKQorICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCJqIikKKyAgICAgIC5F
bmQoKQorICAgICAgLkNvZGUoKQorICAgICAgICAuRnVuY3Rpb24oImoiLCB7IHBhcmFtczogW10s
IHJldDogImkzMiIgfSkKKyAgICAgICAgICAgIC5JMzJDb25zdCgwKQorICAgICAgICAgICAgLlJl
ZklzTnVsbCgpCisgICAgICAgIC5FbmQoKQorICAgICAgLkVuZCgpOworCisgICAgY29uc3QgYmlu
ID0gYnVpbGRlci5XZWJBc3NlbWJseSgpOworICAgIGJpbi50cmltKCk7CisKKyAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKSwgV2ViQXNzZW1i
bHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHJl
Zi5pc19udWxsIHRvIHR5cGUgSTMyIGV4cGVjdGVkIEFueXJlZiwgaW4gZnVuY3Rpb24gYXQgaW5k
ZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpJykiKTsK
K30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zcGVjLWhhcm5lc3MvaW5kZXguanMgYi9KU1Rl
c3RzL3dhc20vc3BlYy1oYXJuZXNzL2luZGV4LmpzCmluZGV4IGJjMjk4ZDIwMGEwN2IxZDU2OTcw
OGFkZjgwZTA0YjNhYjk2YTE0Y2MuLmViMDBjNmQ4NzhmYzkwZDUxMWY2MDZiNGI0MzQ4NDU2ODY3
MzVhZTQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9zcGVjLWhhcm5lc3MvaW5kZXguanMKKysr
IGIvSlNUZXN0cy93YXNtL3NwZWMtaGFybmVzcy9pbmRleC5qcwpAQCAtMTkwLDYgKzE5MCw3IEBA
IGZ1bmN0aW9uIGluc3RhbmNlKGJ5dGVzLCBpbXBvcnRzID0gcmVnaXN0cnksIHZhbGlkID0gdHJ1
ZSkgewogICAgIGlmICh2YWxpZCkgewogICAgICAgICB1bmlxdWVUZXN0KCgpID0+IHsKICAgICAg
ICAgICAgIGxldCBpbnN0YW50aWF0ZWQgPSBlcnIgPT09IG51bGw7CisgICAgICAgICAgICBpZiAo
IWluc3RhbnRpYXRlZCkgcHJpbnQoZXJyKTsKICAgICAgICAgICAgIGFzc2VydF90cnVlKGluc3Rh
bnRpYXRlZCwgZXJyKTsKICAgICAgICAgfSwgIm1vZHVsZSBzdWNjZXNzZnVsbHkgaW5zdGFudGlh
dGVkIik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVz
dHMvd2FzbS93YXNtLmpzb24KaW5kZXggMzFkMTAzZjljOGEyMDIyYTcxNDQwMzI2ODZlNzYwYzQw
Y2FmM2E0NS4uZTYxYWE3NGMzMzg2NjBlNGI1ZjE2YTM1NGQ1MmQxNTEwNjAwOTJiMCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy93YXNtL3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29u
CkBAIC0xMiwxMSArMTIsMTIgQEAKICAgICAgICAgImYzMiI6ICAgICB7ICJ0eXBlIjogInZhcmlu
dDciLCAidmFsdWUiOiAgLTMsICJiM3R5cGUiOiAiQjM6OkZsb2F0IiB9LAogICAgICAgICAiZjY0
IjogICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNCwgImIzdHlwZSI6ICJCMzo6
RG91YmxlIiB9LAogICAgICAgICAiYW55ZnVuYyI6IHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6IC0xNiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKKyAgICAgICAgImFueXJlZiI6ICB7ICJ0
eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtMTcsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAog
ICAgICAgICAiZnVuYyI6ICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0zMiwgImIz
dHlwZSI6ICJCMzo6Vm9pZCIgfSwKICAgICAgICAgInZvaWQiOiAgICB7ICJ0eXBlIjogInZhcmlu
dDciLCAidmFsdWUiOiAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAotICAgICJ2
YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiXSwKLSAgICAiYmxvY2tfdHlw
ZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiXSwKKyAgICAidmFsdWVfdHlw
ZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImFueXJlZiJdLAorICAgICJibG9ja190
eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJhbnlyZWYiXSwKICAg
ICAiZWxlbV90eXBlIjogWyJhbnlmdW5jIl0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7CiAgICAg
ICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAwIH0sCkBAIC01OCw2
ICs1OSw4IEBACiAgICAgICAgICJpNjQuY29uc3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAi
c3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2NiwgInJldHVybiI6IFsiaTY0Il0sICAgICAgInBhcmFt
ZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAi
dmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJ2YXJpbnQ2NCJ9XSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1
ZSBpbnRlcnByZXRlZCBhcyBpNjQiIH0sCiAgICAgICAgICJmNjQuY29uc3QiOiAgICAgICAgICAg
eyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2OCwgInJldHVybiI6IFsiZjY0
Il0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0
ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJkb3VibGUifV0sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
YSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmNjQiIH0sCiAgICAgICAgICJmMzIuY29u
c3QiOiAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAgICJ2YWx1ZSI6ICA2Nywg
InJldHVybiI6IFsiZjMyIl0sICAgICAgInBhcmFtZXRlciI6IFtdLCAgICAgICAgICAgICAgICAg
ICAgICAgImltbWVkaWF0ZSI6IFt7Im5hbWUiOiAidmFsdWUiLCAgICAgICAgICAidHlwZSI6ICJm
bG9hdCJ9XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCB2YWx1ZSBpbnRlcnByZXRlZCBhcyBmMzIiIH0sCisg
ICAgICAgICJyZWYubnVsbCI6ICAgICAgICAgICAgeyAiY2F0ZWdvcnkiOiAic3BlY2lhbCIsICAg
ICJ2YWx1ZSI6IDIwOCwgInJldHVybiI6IFsiYW55cmVmIl0sICAgInBhcmFtZXRlciI6IFtdLCAg
ICAgICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZSI6IFtdLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiYSBjb25zdGFudCBudWxsIHJlZmVyZW5jZSIg
fSwKKyAgICAgICAgInJlZi5pc19udWxsIjogICAgICAgICB7ICJjYXRlZ29yeSI6ICJzcGVjaWFs
IiwgICAgInZhbHVlIjogMjA5LCAicmV0dXJuIjogWyJpMzIiXSwgICAgICAicGFyYW1ldGVyIjog
WyJhbnlyZWYiXSwgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW10sICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJkZXRlcm1pbmUgaWYgYSByZWZlcmVu
Y2UgaXMgbnVsbCIgfSwKICAgICAgICAgImdldF9sb2NhbCI6ICAgICAgICAgICB7ICJjYXRlZ29y
eSI6ICJzcGVjaWFsIiwgICAgInZhbHVlIjogIDMyLCAicmV0dXJuIjogWyJhbnkiXSwgICAgICAi
cGFyYW1ldGVyIjogW10sICAgICAgICAgICAgICAgICAgICAgICAiaW1tZWRpYXRlIjogW3sibmFt
ZSI6ICJsb2NhbF9pbmRleCIsICAgICJ0eXBlIjogInZhcnVpbnQzMiJ9XSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJyZWFkIGEgbG9j
YWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAic2V0X2xvY2FsIjogICAgICAg
ICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAgMzMsICJyZXR1cm4iOiBb
XSwgICAgICAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAgICAgICAgICAgICJpbW1l
ZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUiOiAidmFydWludDMyIn1d
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIiB9LAogICAgICAgICAidGVl
X2xvY2FsIjogICAgICAgICAgIHsgImNhdGVnb3J5IjogInNwZWNpYWwiLCAgICAidmFsdWUiOiAg
MzQsICJyZXR1cm4iOiBbImFueSJdLCAgICAgICJwYXJhbWV0ZXIiOiBbImFueSJdLCAgICAgICAg
ICAgICAgICAgICJpbW1lZGlhdGUiOiBbeyJuYW1lIjogImxvY2FsX2luZGV4IiwgICAgInR5cGUi
OiAidmFydWludDMyIn1dLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIndyaXRlIGEgbG9jYWwgdmFyaWFibGUgb3IgcGFyYW1ldGVyIGFu
ZCByZXR1cm4gdGhlIHNhbWUgdmFsdWUiIH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>