<?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>161707</bug_id>
          
          <creation_ts>2016-09-07 13:16:49 -0700</creation_ts>
          <short_desc>Add a WASM function validator.</short_desc>
          <delta_ts>2016-11-01 13:43:42 -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>
          
          <blocked>159775</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jfbastien</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1227314</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-09-07 13:16:49 -0700</bug_when>
    <thetext>We should add a validator that uses the WASM::FunctionParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244308</commentid>
    <comment_count>1</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-25 11:18:49 -0700</bug_when>
    <thetext>It begins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246640</commentid>
    <comment_count>2</comment_count>
      <attachid>293479</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-31 15:47:00 -0700</bug_when>
    <thetext>Created attachment 293479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246642</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-31 15:49:45 -0700</bug_when>
    <thetext>Attachment 293479 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:37:  Undefined variable &apos;Wasm&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:125:  Undefined variable &apos;isUnary&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:126:  Undefined variable &apos;isBinary&apos;  [pylint/E0602] [5]
Total errors found: 3 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246657</commentid>
    <comment_count>4</comment_count>
      <attachid>293479</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-31 16:02:38 -0700</bug_when>
    <thetext>Comment on attachment 293479
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmFormat.cpp:45
&gt; +        return &quot;f64&quot;;

Autogen?

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:122
&gt; +{

reserveCapacity here? Actually I&apos;ve been moving a bunch of the parser to tryAllocate / tryReserve so that we can gracefully fail when OOM because of busted inputs, that&apos;s probably better here.

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:131
&gt; +        m_locals.append(type);

Can be unchecked.

&gt; Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:1
&gt; +#! /usr/bin/python

Isn&apos;t this better: #!/usr/bin/env python

&gt; Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:63
&gt; +    case UnaryOpType::&quot;&quot;&quot; + toCpp(name) + &quot;&quot;&quot;: {

Can you use string interpolation instead? It&apos;s easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246688</commentid>
    <comment_count>5</comment_count>
      <attachid>293479</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-31 16:25:15 -0700</bug_when>
    <thetext>Comment on attachment 293479
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        1) We need to handle result types from basic blocks.
&gt; +        2) We need to handle popping things from stacks when they don&apos;t exist.

Do you have bugs open for these? If so, it&apos;s worth linking to them.

&gt; Source/JavaScriptCore/testWasm.cpp:475
&gt; +        if (plan.failed()) {
&gt; +            dataLogLn(&quot;Module failed to compile with error: &quot;, plan.errorMessage());
&gt; +            CRASH();
&gt; +        }
&gt; +
&gt; +        if (plan.resultSize() != 2 || !plan.result(0) || !plan.result(1)) {

Can you add a helper function for this type of pattern? Maybe like validatePlan(size_t expectedSize) or something?

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:245
&gt; +        m_errorMessage = makeString(&quot;Arity mismatch in call&quot;);

Suggestion: Maybe it&apos;s worth providing the two arity values in the error message?

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:264
&gt; +        return true;

Do we care about what the last value&apos;s type here is? Or do we just ignore it?

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:288
&gt; +        // FIXME: add better location information here.

Can you link to a bugzilla for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246914</commentid>
    <comment_count>6</comment_count>
      <attachid>293479</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-01 09:52:45 -0700</bug_when>
    <thetext>Comment on attachment 293479
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:17
&gt;&gt; +        2) We need to handle popping things from stacks when they don&apos;t exist.
&gt; 
&gt; Do you have bugs open for these? If so, it&apos;s worth linking to them.

Yep, changed.

&gt;&gt; Source/JavaScriptCore/testWasm.cpp:475
&gt;&gt; +        if (plan.resultSize() != 2 || !plan.result(0) || !plan.result(1)) {
&gt; 
&gt; Can you add a helper function for this type of pattern? Maybe like validatePlan(size_t expectedSize) or something?

Done.

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.cpp:45
&gt;&gt; +        return &quot;f64&quot;;
&gt; 
&gt; Autogen?

I&apos;m not sure how that would help. Maybe if we had more types. The code to autogen this would be roughly as long as this function.

&gt;&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:122
&gt;&gt; +{
&gt; 
&gt; reserveCapacity here? Actually I&apos;ve been moving a bunch of the parser to tryAllocate / tryReserve so that we can gracefully fail when OOM because of busted inputs, that&apos;s probably better here.

makes sense. I changed this function and addLocal to return a bool and use tryReserveCapacity().

&gt;&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:131
&gt;&gt; +        m_locals.append(type);
&gt; 
&gt; Can be unchecked.

Fixed.

&gt;&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:245
&gt;&gt; +        m_errorMessage = makeString(&quot;Arity mismatch in call&quot;);
&gt; 
&gt; Suggestion: Maybe it&apos;s worth providing the two arity values in the error message?

Done.

&gt;&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:264
&gt;&gt; +        return true;
&gt; 
&gt; Do we care about what the last value&apos;s type here is? Or do we just ignore it?

Yes but I plan on fixing that when I fix how the stack layout works with control flow in https://bugs.webkit.org/show_bug.cgi?id=164100.

&gt;&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:288
&gt;&gt; +        // FIXME: add better location information here.
&gt; 
&gt; Can you link to a bugzilla for this?

Done.

&gt;&gt; Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:1
&gt;&gt; +#! /usr/bin/python
&gt; 
&gt; Isn&apos;t this better: #!/usr/bin/env python

Fixed.

&gt;&gt; Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py:63
&gt;&gt; +    case UnaryOpType::&quot;&quot;&quot; + toCpp(name) + &quot;&quot;&quot;: {
&gt; 
&gt; Can you use string interpolation instead? It&apos;s easier to read.

Alas, no. We don&apos;t have python 3.6 only 2.6 :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246997</commentid>
    <comment_count>7</comment_count>
      <attachid>293576</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-01 13:06:06 -0700</bug_when>
    <thetext>Created attachment 293576
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247002</commentid>
    <comment_count>8</comment_count>
      <attachid>293579</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-01 13:08:20 -0700</bug_when>
    <thetext>Created attachment 293579
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247018</commentid>
    <comment_count>9</comment_count>
      <attachid>293579</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-01 13:43:37 -0700</bug_when>
    <thetext>Comment on attachment 293579
Patch for landing

Clearing flags on attachment: 293579

Committed r208238: &lt;http://trac.webkit.org/changeset/208238&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247019</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-01 13:43:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293479</attachid>
            <date>2016-10-31 15:47:00 -0700</date>
            <delta_ts>2016-11-01 13:06:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161707-20161031154304.patch</filename>
            <type>text/plain</type>
            <size>62011</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
Mjg3YjczYTM4MjBlY2YxYmIyYzY5YjNjN2YzMGU4MGU4YWEzOGU1Li5hOGU2NzkzMzAzMmNlZmY0
NGViOWE3ZDViYjk0MjA0M2YwODlmNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw3MCBAQAogMjAxNi0xMC0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KIAorICAgICAgICBBZGQgYSBXQVNNIGZ1bmN0aW9uIHZhbGlkYXRvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTcwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBuZXcgdGVt
cGxhdGUgc3BlY2lhbGl6YXRpb24gb2YgdGhlIFdhc20gRnVuY3Rpb25QYXJzZXIgY2xhc3MuICBJ
bnN0ZWFkIG9mIGhhdmluZworICAgICAgICB0aGUgRnVuY3Rpb25QYXJzZXIgdHJhY2sgd2hhdCBC
MyB2YWx1ZXMgZWFjaCBzdGFjayBlbnRyeSByZWZlcnMgdG8gdGhlIHZhbGlkYXRvciBoYXMgZWFj
aAorICAgICAgICBlbnRyeSByZWZlciB0byB0aGUgdHlwZSBvZiB0aGUgc3RhY2sgZW50cnkuIEFk
ZGl0aW9uYWxseSwgdGhlIGNvbnRyb2wgc3RhY2sgdHJhY2tzIHdoYXQgdHlwZQorICAgICAgICBv
ZiBibG9jayB0aGUgb2JqZWN0IGlzIGFuZCB3aGF0IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgYmxv
Y2sgaXMuIFRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9ucworICAgICAgICBmb3IgdW5hcnksIGJpbmFy
eSwgYW5kIG1lbW9yeSBvcGVyYXRpb25zIGFyZSBhdXRvZ2VuZXJhdGVkIGJ5IHRoZQorICAgICAg
ICBnZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkgc2NyaXB0LgorCisgICAgICAg
IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBpc3N1ZSB3aXRoIHZhbGlkYXRpbmcgdGhhdCB3aWxs
IGJlIGFkZHJlc3NlZCBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4KKyAgICAgICAgMSkgV2UgbmVlZCB0
byBoYW5kbGUgcmVzdWx0IHR5cGVzIGZyb20gYmFzaWMgYmxvY2tzLgorICAgICAgICAyKSBXZSBu
ZWVkIHRvIGhhbmRsZSBwb3BwaW5nIHRoaW5ncyBmcm9tIHN0YWNrcyB3aGVuIHRoZXkgZG9uJ3Qg
ZXhpc3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogdGVzdFdhc20uY3BwOgorICAgICAgICAocnVuV2FzbVRlc3RzKToK
KyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKiB3YXNtL1dh
c21Gb3JtYXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V2FzbTo6dG9TdHJpbmcpOgorICAg
ICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAqIHdhc20vV2FzbUZ1bmN0aW9uUGFy
c2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJz
ZUV4cHJlc3Npb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0
Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vV2FzbVBsYW4u
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpQbGFuKToKKyAgICAgICAgKiB3YXNtL1dh
c21WYWxpZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6Q29u
dHJvbERhdGE6OkNvbnRyb2xEYXRhKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OkNv
bnRyb2xEYXRhOjpkdW1wKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OkNvbnRyb2xE
YXRhOjp0eXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OkNvbnRyb2xEYXRhOjpz
aWduYXR1cmUpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkQ29uc3RhbnQpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6aXNDb250aW51YXRpb25SZWFjaGFibGUpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6ZXJyb3JNZXNzYWdlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6VmFsaWRhdGU6OlZhbGlkYXRlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRh
dGU6OmFkZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRMb2Nh
bCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpnZXRMb2NhbCk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbGlkYXRlOjpzZXRMb2NhbCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlk
YXRlOjphZGRCbG9jayk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRMb29wKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZElmKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6VmFsaWRhdGU6OmFkZEVsc2UpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRk
UmV0dXJuKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZEJyYW5jaCk6CisgICAg
ICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjplbmRCbG9jayk6CisgICAgICAgIChKU0M6Oldhc206
OlZhbGlkYXRlOjphZGRDYWxsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OnVuaWZ5
KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmR1bXApOgorICAgICAgICAoSlNDOjpX
YXNtOjp2YWxpZGF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21WYWxpZGF0ZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5w
eTogQWRkZWQuCisgICAgICAgIChjcHBUeXBlKToKKyAgICAgICAgKHRvQ3BwKToKKyAgICAgICAg
KHVuYXJ5TWFjcm8pOgorICAgICAgICAoYmluYXJ5TWFjcm8pOgorICAgICAgICAobG9hZE1hY3Jv
KToKKyAgICAgICAgKHN0b3JlTWFjcm8pOgorCisyMDE2LTEwLTMxICBLZWl0aCBNaWxsZXIgIDxr
ZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCiAgICAgICAgIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZnJv
bSB3YXNtLmpzb24gc2hvdWxkIGJlIGluIGRlcml2ZWQgc291cmNlcy4KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDE1MgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjYwOGYyYzRhZjM4OTAxYjJiODEwODBmMjRjOWMwZDFm
YjVlOWI3MC4uYTE4N2VmOGU2ZmRhYTkxZjBlOGNhZDlhZWM3ZDkyYjI4NmM0ODMwMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODc4LDkgKzg3OCwxMSBAQCBzZXQoSmF2
YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHdhc20vSlNXZWJBc3NlbWJseS5jcHAKICAgICB3YXNt
L1dhc21CM0lSR2VuZXJhdG9yLmNwcAogICAgIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmNw
cAorICAgIHdhc20vV2FzbUZvcm1hdC5jcHAKICAgICB3YXNtL1dhc21NZW1vcnkuY3BwCiAgICAg
d2FzbS9XYXNtTW9kdWxlUGFyc2VyLmNwcAogICAgIHdhc20vV2FzbVBsYW4uY3BwCisgICAgd2Fz
bS9XYXNtVmFsaWRhdGUuY3BwCiAKICAgICB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwCiAgICAgd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDczOGMxMzY4MjM2YTVkYWUyMzVl
OTZlOWNjNzA4NmQxMzQyMzg2YmMuLmIzMGMzMDVhY2UzNWJhYmNhOGNlYzE4Yzc2Y2Y5ZGM3MWZm
OTYwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02
NCw2ICs2NCw3IEBAIGFsbCA6IFwKICAgICBBaXJPcGNvZGUuaCBcCiAgICAgWWFyckNhbm9uaWNh
bGl6ZVVuaWNvZGUuY3BwIFwKICAgICBXYXNtT3BzLmggXAorICAgIFdhc21WYWxpZGF0ZUlubGlu
ZXMuaCBcCiAjCiAKICMgSmF2YVNjcmlwdCBidWlsdGlucy4KQEAgLTMwMSw2ICszMDIsOSBAQCBZ
YXJyQ2Fub25pY2FsaXplVW5pY29kZS5jcHA6ICQoSmF2YVNjcmlwdENvcmUpL2dlbmVyYXRlWWFy
ckNhbm9uaWNhbGl6ZVVuaWNvZGUgJAogV2FzbU9wcy5oOiAkKEphdmFTY3JpcHRDb3JlKS93YXNt
L2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weSAkKEphdmFTY3JpcHRDb3JlKS93YXNtL2dlbmVyYXRl
V2FzbS5weSAkKEphdmFTY3JpcHRDb3JlKS93YXNtL3dhc20uanNvbgogCSQoUFlUSE9OKSAkKEph
dmFTY3JpcHRDb3JlKS93YXNtL2dlbmVyYXRlV2FzbU9wc0hlYWRlci5weSAkKEphdmFTY3JpcHRD
b3JlKS93YXNtL3dhc20uanNvbiAuL1dhc21PcHMuaAogCitXYXNtVmFsaWRhdGVJbmxpbmVzLmg6
ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVy
LnB5ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJhdGVXYXNtLnB5ICQoSmF2YVNjcmlwdENv
cmUpL3dhc20vd2FzbS5qc29uCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2Vu
ZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5ICQoSmF2YVNjcmlwdENvcmUpL3dhc20v
d2FzbS5qc29uIC4vV2FzbVZhbGlkYXRlSW5saW5lcy5oCisKICMgRHluYW1pY2FsbHktZGVmaW5l
ZCB0YXJnZXRzIGFyZSBsaXN0ZWQgYmVsb3cuIFN0YXRpYyB0YXJnZXRzIGJlbG9uZyB1cCB0b3Au
CiAKIGFsbCA6IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDM1NWJkYjI1Yjg2
MmMyNzQ3YTQyZDlhMDhlODE3NjVhMzNjZGQ0YS4uNzY1Y2E1ODU3YjU0ZWM5MTY2MTE2MzJmODRm
NmYzNDhhNjg2MDFjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMjcsNiAr
MTIyNyw3IEBACiAJCTUyQzk1MkI5MTlBMjhBMUMwMDY5QjM4NiAvKiBUeXBlUHJvZmlsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDOTUyQjgx
OUEyOEExQzAwNjlCMzg2IC8qIFR5cGVQcm9maWxlci5jcHAgKi87IH07CiAJCTUzMTM3NEJEMUQ1
Q0U2NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTMxMzc0QkMxRDVDRTY3NjAwQUY3QTBCIC8qIFdhc21QbGFuLmgg
Ki87IH07CiAJCTUzMTM3NEJGMUQ1Q0U5NTAwMEFGN0EwQiAvKiBXYXNtUGxhbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzEzNzRCRTFENUNFOTUw
MDBBRjdBMEIgLyogV2FzbVBsYW4uY3BwICovOyB9OworCQk1MzNCMTVERjFEQzdGNDYzMDA0RDUw
MEEgLyogV2FzbU9wcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTMzQjE1REUxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21PcHMuaCAqLzsgfTsKIAkJNTM0
MUZDNzAxREFDMzNFNTAwRTdFNEQ3IC8qIEIzV2FzbUJvdW5kc0NoZWNrVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0MUZDNkYxREFDMzNF
NTAwRTdFNEQ3IC8qIEIzV2FzbUJvdW5kc0NoZWNrVmFsdWUuY3BwICovOyB9OwogCQk1MzQxRkM3
MjFEQUMzNDNDMDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0MUZDNzExREFDMzQzQzAwRTdF
NEQ3IC8qIEIzV2FzbUJvdW5kc0NoZWNrVmFsdWUuaCAqLzsgfTsKIAkJNTM0ODZCQjcxQzE3OTVD
MzAwRjZGM0FGIC8qIEpTVHlwZWRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTM0ODZCQjYxQzE3OTVDMzAwRjZGM0FGIC8qIEpTVHlwZWRBcnJh
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKQEAgLTEy
NTAsNyArMTI1MSw2IEBACiAJCTUzRjQwRThCMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rp
b25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rpb25QYXJzZXIuaCAqLzsgfTsK
IAkJNTNGNDBFOEQxRDU5MDFGMjAwOTlBMUI2IC8qIFdhc21QYXJzZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRThDMUQ1OTAxRjIwMDk5QTFC
NiAvKiBXYXNtUGFyc2VyLmggKi87IH07CiAJCTUzRjQwRThGMUQ1OTAyODIwMDk5QTFCNiAvKiBX
YXNtQjNJUkdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1M0Y0MEU4RTFENTkwMjgyMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3Iu
Y3BwICovOyB9OwotCQk1M0Y0MEU5MTFENTkwMzAyMDA5OUExQjYgLyogV2FzbU9wcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNDBFOTAxRDU5MDMw
MjAwOTlBMUI2IC8qIFdhc21PcHMuaCAqLzsgfTsKIAkJNTNGNDBFOTMxRDVBNEFCMzAwOTlBMUI2
IC8qIFdhc21CM0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1M0Y0MEU5MjFENUE0QUIzMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0
b3IuaCAqLzsgfTsKIAkJNTNGNDBFOTUxRDVBN0FFRjAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJz
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQw
RTk0MUQ1QTdBRUYwMDk5QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmggKi87IH07CiAJCTUzRjQw
RTk3MUQ1QTdCRUMwMDk5QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRTk2MUQ1QTdCRUMwMDk5QTFC
NiAvKiBXYXNtTW9kdWxlUGFyc2VyLmNwcCAqLzsgfTsKQEAgLTEyNTksMTMgKzEyNTksMTYgQEAK
IAkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1M0ZBMkFFMjFDRjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCAqLzsgfTsKIAkJNTNGRDA0RDMxRDdB
QjI3NzAwMzI4N0QzIC8qIFdhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZEMDREMTFEN0FCMTg3MDAzMjg3RDMg
LyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcCAqLzsgfTsKIAkJNTNGRDA0RDQxRDdBQjI5MTAw
MzI4N0QzIC8qIFdhc21DYWxsaW5nQ29udmVudGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGRDA0RDIxRDdBQjE4NzAwMzI4N0QzIC8qIFdhc21D
YWxsaW5nQ29udmVudGlvbi5oICovOyB9OwotCQk1QzRFOEU5NjFEQkVCRTYyMDAzNkYxRkMgLyog
SlNPTlBhcnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1QzRFOEU5NDFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVzdC5jcHAgKi87
IH07CisJCTUzRkY3Rjk5MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkY3Rjk4MURCRkNEOTAw
MEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCAqLzsgfTsKKwkJNTNGRjdGOUIxREJGRDJCOTAwQTI2
Q0NDIC8qIFdhc21WYWxpZGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1M0ZGN0Y5QTFEQkZEMkI5MDBBMjZDQ0MgLyogV2FzbVZhbGlkYXRlLmNw
cCAqLzsgfTsKKwkJNTNGRjdGOUQxREMwMERCMTAwQTI2Q0NDIC8qIFdhc21Gb3JtYXQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGRjdGOUMxREMw
MERCMTAwQTI2Q0NDIC8qIFdhc21Gb3JtYXQuY3BwICovOyB9OwogCQk1QjcwQ0ZERTFEQjY5RTY2
MDBFQzIzRjkgLyogSlNBc3luY0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QjcwQ0ZEODFEQjY5RTVDMDBFQzIzRjkgLyogSlNBc3luY0Z1
bmN0aW9uLmggKi87IH07CiAJCTVCNzBDRkRGMURCNjlFNjYwMEVDMjNGOSAvKiBKU0FzeW5jRnVu
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUI3MENGRDkxREI2OUU1QzAwRUMyM0Y5IC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgKi87IH07CiAJ
CTVCNzBDRkUwMURCNjlFNjYwMEVDMjNGOSAvKiBBc3luY0Z1bmN0aW9uUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjcwQ0ZEQTFEQjY5
RTVDMDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlwZS5oICovOyB9OwogCQk1QjcwQ0ZF
MTFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjcwQ0ZEQjFEQjY5RTVDMDBF
QzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlwZS5jcHAgKi87IH07CiAJCTVCNzBDRkUyMURC
NjlFNjYwMEVDMjNGOSAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNzBDRkRDMURCNjlFNUMwMEVDMjNG
OSAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaCAqLzsgfTsKIAkJNUI3MENGRTMxREI2OUU2
NjAwRUMyM0Y5IC8qIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjcwQ0ZERDFEQjY5RTVDMDBFQzIzRjkg
LyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKKwkJNUM0RThFOTYxREJFQkU2
MjAwMzZGMUZDIC8qIEpTT05QYXJzZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0RThFOTQxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJz
ZVRlc3QuY3BwICovOyB9OwogCQk1RDVEOEFEMTBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5k
eWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVE
NUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliICovOyB9OwogCQk1REJCMTUx
QjEzMUQwQjMxMDA1NkFEMzYgLyogdGVzdGFwaS5qcyBpbiBDb3B5IFN1cHBvcnQgU2NyaXB0ICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RDg1Nzc0MEE0Njk2QzgwMDMyMTQ2
QyAvKiB0ZXN0YXBpLmpzICovOyB9OwogCQk1REJCMTUyNTEzMUQwQkQ3MDA1NkFEMzYgLyogbWlu
aWRvbS5qcyBpbiBDb3B5IFN1cHBvcnQgU2NyaXB0ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0MTIxMTBEMEE0ODc4ODcwMDQ4MDI1NSAvKiBtaW5pZG9tLmpzICovOyB9OwpA
QCAtMzU1Miw2ICszNTU1LDcgQEAKIAkJNTJDOTUyQjgxOUEyOEExQzAwNjlCMzg2IC8qIFR5cGVQ
cm9maWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBlUHJvZmlsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MzEzNzRCQzFENUNFNjc2MDBBRjdBMEIgLyogV2FzbVBs
YW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVBsYW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMxMzc0QkUxRDVDRTk1MDAwQUY3QTBCIC8qIFdhc21Q
bGFuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21QbGFuLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTMzQjE1REUxREM3RjQ2MzAwNEQ1MDBB
IC8qIFdhc21PcHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbU9wcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzQxRkM2RjFEQUMzM0U1MDBFN0U0RDcg
LyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzV2FzbUJv
dW5kc0NoZWNrVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzQxRkM3
MTFEQUMzNDNDMDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmg7IHBhdGggPSBi
My9CM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUzNDg2QkI2MUMxNzk1QzMwMEY2RjNBRiAvKiBKU1R5cGVkQXJyYXkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUeXBlZEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zNTc5LDcgKzM1ODMsNiBAQAogCQk1M0Y0MEU4QTFENTkwMUJCMDA5OUExQjYg
LyogV2FzbUZ1bmN0aW9uUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdhc21GdW5jdGlvblBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0Y0
MEU4QzFENTkwMUYyMDA5OUExQjYgLyogV2FzbVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXYXNtUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUzRjQwRThFMUQ1OTAyODIwMDk5QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtQjNJUkdlbmVyYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUzRjQwRTkwMUQ1OTAzMDIwMDk5QTFCNiAvKiBX
YXNtT3BzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21PcHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOTIxRDVBNEFCMzAwOTlBMUI2IC8qIFdh
c21CM0lSR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21C
M0lSR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjQwRTk0MUQ1
QTdBRUYwMDk5QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdhc21Nb2R1bGVQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTNGNDBFOTYxRDVBN0JFQzAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1vZHVsZVBhcnNlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTg4LDggKzM1OTEsOSBAQAogCQk1M0ZB
MkFFMjFDRjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1
cmVXYXRjaHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExM
SW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRkQwNEQxMUQ3QUIxODcwMDMyODdEMyAvKiBXYXNtQ2Fs
bGluZ0NvbnZlbnRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2FzbUNhbGxpbmdDb252ZW50aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTNGRDA0RDIxRDdBQjE4NzAwMzI4N0QzIC8qIFdhc21DYWxsaW5nQ29udmVudGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0RThFOTQxREJFQkRBMjAwMzZGMUZDIC8qIEpT
T05QYXJzZVRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNP
TlBhcnNlVGVzdC5jcHA7IHBhdGggPSBBUEkvdGVzdHMvSlNPTlBhcnNlVGVzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNEU4RTk1MURCRUJEQTIwMDM2RjFGQyAvKiBKU09O
UGFyc2VUZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTT05QYXJzZVRl
c3QuaDsgcGF0aCA9IEFQSS90ZXN0cy9KU09OUGFyc2VUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUzRkY3Rjk4MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVZhbGlkYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkY3RjlBMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFs
aWRhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbVZhbGlk
YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNGRjdGOUMxREMwMERCMTAw
QTI2Q0NDIC8qIFdhc21Gb3JtYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2FzbUZvcm1hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVCNzBD
RkQ4MURCNjlFNUMwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNBc3luY0Z1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVCNzBDRkQ5MURCNjlFNUMwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBc3luY0Z1bmN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUI3MENGREExREI2OUU1QzAwRUMyM0Y5
IC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXN5bmNGdW5jdGlvblByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzU5Nyw2ICszNjAxLDggQEAKIAkJNUI3MENGREMxREI2OUU1QzAwRUMyM0Y5IC8qIEFz
eW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUI3MENGREQxREI2OUU1QzAwRUMyM0Y5IC8qIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QjgyNDMwNDFEQjdB
QTQ5MDBFQTYzODQgLyogQXN5bmNGdW5jdGlvblByb3RvdHlwZS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNEU4RTk0MURCRUJEQTIwMDM2RjFGQyAvKiBKU09O
UGFyc2VUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTT05Q
YXJzZVRlc3QuY3BwOyBwYXRoID0gQVBJL3Rlc3RzL0pTT05QYXJzZVRlc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1QzRFOEU5NTFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBh
cnNlVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU09OUGFyc2VUZXN0
Lmg7IHBhdGggPSBBUEkvdGVzdHMvSlNPTlBhcnNlVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5t
YWNoLW8uZHlsaWIiOyBuYW1lID0gbGliZWRpdC5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xpYmVk
aXQuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTVEQUZENkNCMTQ2QjY4
NjMwMEZCRUZCNCAvKiBKU0MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gSlNDLnhjY29uZmlnOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RERERjQ0NjE0RkVFNzIyMDBCNEZCNEQgLyog
TExJbnREZXNpcmVkT2Zmc2V0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
TEludERlc2lyZWRPZmZzZXRzLmg7IHBhdGggPSBMTEludE9mZnNldHMvTExJbnREZXNpcmVkT2Zm
c2V0cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNTgzOSw2ICs1
ODQ1LDcgQEAKIAkJCQk5OTZCNzMxMzFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0
b3IubHV0LmggKi8sCiAJCQkJOTk2QjczMTQxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbFByb3Rv
dHlwZS5sdXQuaCAqLywKIAkJCQk2NUE5NDYxNDFDOEU5RjZGMDBBNzIwOUEgLyogWWFyckNhbm9u
aWNhbGl6ZVVuaWNvZGUuY3BwICovLAorCQkJCTUzM0IxNURFMURDN0Y0NjMwMDRENTAwQSAvKiBX
YXNtT3BzLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOwogCQkJcGF0
aCA9IERlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlOwpAQCAtNTg3NSw3ICs1ODgyLDcgQEAK
IAkJCQk1M0Y0MEU5MjFENUE0QUIzMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3IuaCAqLywK
IAkJCQk1M0ZEMDREMTFEN0FCMTg3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmNw
cCAqLywKIAkJCQk1M0ZEMDREMjFEN0FCMTg3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50
aW9uLmggKi8sCi0JCQkJNTNGNDBFOTAxRDU5MDMwMjAwOTlBMUI2IC8qIFdhc21PcHMuaCAqLywK
KwkJCQk1M0ZGN0Y5QzFEQzAwREIxMDBBMjZDQ0MgLyogV2FzbUZvcm1hdC5jcHAgKi8sCiAJCQkJ
N0JDNTQ3RDIxQjY5NTk5QjAwOTU5QjU4IC8qIFdhc21Gb3JtYXQuaCAqLywKIAkJCQk1M0Y0MEU4
QTFENTkwMUJCMDA5OUExQjYgLyogV2FzbUZ1bmN0aW9uUGFyc2VyLmggKi8sCiAJCQkJNTM1NTU3
MTUxRDlERkEzMjAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuY3BwICovLApAQCAtNTg4Niw2ICs1ODkz
LDggQEAKIAkJCQk1MzEzNzRCQzFENUNFNjc2MDBBRjdBMEIgLyogV2FzbVBsYW4uaCAqLywKIAkJ
CQk1M0Y0MEU4QzFENTkwMUYyMDA5OUExQjYgLyogV2FzbVBhcnNlci5oICovLAogCQkJCTUzRjQw
RTg0MUQ1OEY5NzcwMDk5QTFCNiAvKiBXYXNtU2VjdGlvbnMuaCAqLywKKwkJCQk1M0ZGN0Y5QTFE
QkZEMkI5MDBBMjZDQ0MgLyogV2FzbVZhbGlkYXRlLmNwcCAqLywKKwkJCQk1M0ZGN0Y5ODFEQkZD
RDkwMDBBMjZDQ0MgLyogV2FzbVZhbGlkYXRlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdhc207
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzk4Niw2ICs3OTk1LDcgQEAKIAkJCQkw
RjJCREM0OTE1MjI4MDk2MDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYyQkRDNEIxNTIyODA5RDAwQ0Q4OTEwIC8qIERGR1ZhcmlhYmxlRXZlbnRTdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZDOTYwMTRFRjkwQkQwMEM3MjUzMiAvKiBERkdW
aXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRkY3
Rjk5MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzk3RjQyMTgyMDIxMTkwMDJDOUIyNiAvKiBERkdXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCMkNFODE3NDgzMEEyMDA3QjNDMUIgLyogREZHV29y
a2xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NzM0MURBMURDMDMwMDEwMEFBMjlCQSAvKiBX
ZWJBc3NlbWJseUV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLApAQCAtODM4OSw3ICs4Mzk5LDYg
QEAKIAkJCQlBN0MwQzRBQzE2ODEwMzAyMDAxNzAxMUQgLyogSlNTY3JpcHRSZWZQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTEyMjAyNzFCRTdGNThDMDAzOUU2RjIgLyogSklUQWRkR2Vu
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkxOUQxMTE1N0YzMzJDMDA0QTRFN0QgLyog
SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTNGNDBFOTEx
RDU5MDMwMjAwOTlBMUI2IC8qIFdhc21PcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Mjk5RDlF
MTdEMTI4MzcwMDVGNUZGOSAvKiBKU1NldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5MERENzAx
ODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDVFMEUxNkY1Q0QwMEIzNDQ2MCAvKiBDTG9vcFN0YWNrLmggaW4gSGVhZGVycyAqLywKQEAg
LTg3NjksNiArODc3OCw3IEBACiAJCQkJMTRGNzI1NjYxNEVFMjY1RTAwQjE2NTJCIC8qIFdlYWtI
YW5kbGVPd25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRFODRGQTIxNEVFMUFDQzAwRDZENUQ0
IC8qIFdlYWtJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEJFN0QzMzE3MTM1Q0Y0MDBEMTgw
N0EgLyogV2Vha0lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzM0IxNURGMURDN0Y0NjMw
MDRENTAwQSAvKiBXYXNtT3BzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0NBM0FFNDE3REE0MUFF
MDA2NTM4QUYgLyogV2Vha01hcENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0NB
M0FFQzE3REE1MTY4MDA2NTM4QUYgLyogV2Vha01hcERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3Q0EzQUU2MTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFrTWFwUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTk5MzAsNiArOTk0MCw3IEBACiAJCQkJMEZGNDI3NTcxNTkxNEEyMDAwNENCOUZG
IC8qIExpbmtCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFMkVBNkMwRkI0NjBDRjAw
NjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBMUEwOTUx
RDhDQjM0MTAwNEMyRUI4IC8qIERlYnVnZ2VyUGFyc2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTUzRkY3RjlEMURDMDBEQjEwMEEyNkNDQyAvKiBXYXNtRm9ybWF0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZFMzkxMzU0MUI3OTRGNkUwMEVEQUY3MSAvKiBMaXZlT2JqZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRTIwQ0U5RDE1RjA0QTk1MDBERjM0MzAgLyogTExJbnRDTG9v
cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2ODBEMjE0QkJEMTY1MDBCRkUyNzIgLyogTExJ
bnREYXRhLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTAwODgsNiArMTAwOTksNyBAQAogCQkJCTE0
NDY5REVCMTA3RUM3RTcwMDY1MDQ0NiAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MEVDMEVDNjFBQTBEN0RBMDBCNkFBRkEgLyogU3RyaW5nSXRlcmF0b3JQcm90
b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUMxMDdFQzdFNzAwNjUwNDQ2IC8q
IFN0cmluZ09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1M0ZGN0Y5QjFEQkZEMkI5MDBB
MjZDQ0MgLyogV2FzbVZhbGlkYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVEMTA3
RUM3RTcwMDY1MDQ0NiAvKiBTdHJpbmdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTMzNUYyNEQxMkU2NzY1QjAwMkI1NTUzIC8qIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNERTNCNDMwRTZDODMyRDAwMTQ1M0E3IC8qIFN0cnVjdHVyZS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
V2FzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFdhc20uY3BwCmluZGV4IDM0YWVh
ODU2NmQzNjlmZjFhZGE0MDYxNWViZDY1Zjk4NTY5MzNjYWIuLjgyNjFhYzM5NGExYTc0ZTZhOTFh
YjUwNjQ3M2UyN2I5MzY5ZDg5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0V2FzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RXYXNtLmNwcApAQCAt
MjkwLDcgKzI5MCwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9Owog
CiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxl
ZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFu
LnJlc3VsdCgxKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAg
ZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5l
cnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFu
LnJlc3VsdCgxKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNv
bXBpbGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAt
MzE5LDcgKzMyNCwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9Owog
CiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxl
ZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFu
LnJlc3VsdCgxKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAg
ZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5l
cnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFu
LnJlc3VsdCgxKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNv
bXBpbGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAt
MzUzLDcgKzM2MywxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9Owog
CiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxl
ZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFu
LnJlc3VsdCgxKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAg
ZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5l
cnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFu
LnJlc3VsdCgxKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNv
bXBpbGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAt
Mzg3LDcgKzQwMiwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9Owog
CiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxl
ZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CisgICAg
ICAgIGlmIChwbGFuLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBm
YWlsZWQgdG8gY29tcGlsZSB3aXRoIGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAg
ICAgICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGxhbi5yZXN1bHRT
aXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbigi
TW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KQEAgLTQ0Nyw3ICs0NjcsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRl
c3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAg
ICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAyIHx8ICFwbGFu
LnJlc3VsdCgwKSB8fCAhcGxhbi5yZXN1bHQoMSkpIHsKKyAgICAgICAgaWYgKHBsYW4uZmFpbGVk
KCkpIHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIHdp
dGggZXJyb3I6ICIsIHBsYW4uZXJyb3JNZXNzYWdlKCkpOworICAgICAgICAgICAgQ1JBU0goKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChwbGFuLnJlc3VsdFNpemUoKSAhPSAyIHx8ICFwbGFu
LnJlc3VsdCgwKSB8fCAhcGxhbi5yZXN1bHQoMSkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbigi
TW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKICAgICAgICAgICAgIENSQVNI
KCk7CiAgICAgICAgIH0KQEAgLTQ2MywyNCArNDg4LDI4IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21U
ZXN0cygpCiAKICAgICB7CiAgICAgICAgIC8vIEdlbmVyYXRlZCBmcm9tOgotICAgICAgICAvLyAo
bW9kdWxlCi0gICAgICAgIC8vICAobWVtb3J5IDEpCi0gICAgICAgIC8vICAoZnVuYyAoZXhwb3J0
ICJpMzJfbG9hZDhfcyIpIChwYXJhbSAkaSBpMzIpIChwYXJhbSAkcHRyIGkzMikgKHJlc3VsdCBp
MzIpCi0gICAgICAgIC8vICAgKGk2NC5zdG9yZSAoZ2V0X2xvY2FsICRwdHIpIChnZXRfbG9jYWwg
JGkpKQotICAgICAgICAvLyAgIChyZXR1cm4gKGk2NC5sb2FkIChnZXRfbG9jYWwgJHB0cikpKQot
ICAgICAgICAvLyAgICkKLSAgICAgICAgLy8gICkKKyAgICAgICAgLy8gICAgKG1vZHVsZQorICAg
ICAgICAvLyAgICAgKG1lbW9yeSAxKQorICAgICAgICAvLyAgICAgKGZ1bmMgKGV4cG9ydCAiaTY0
IikgKHBhcmFtICRpIGk2NCkgKHBhcmFtICRwdHIgaTMyKSAocmVzdWx0IGk2NCkKKyAgICAgICAg
Ly8gICAgICAoaTY0LnN0b3JlIChnZXRfbG9jYWwgJHB0cikgKGdldF9sb2NhbCAkaSkpCisgICAg
ICAgIC8vICAgICAgKHJldHVybiAoaTY0LmxvYWQgKGdldF9sb2NhbCAkcHRyKSkpCisgICAgICAg
IC8vICAgICAgKQorICAgICAgICAvLyAgICAgKQogICAgICAgICBWZWN0b3I8dWludDhfdD4gdmVj
dG9yID0gewogICAgICAgICAgICAgMHgwMCwgMHg2MSwgMHg3MywgMHg2ZCwgMHgwYywgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMSwgMHg4NywgMHg4MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHg0
MCwKICAgICAgICAgICAgIDB4MDIsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDIsIDB4MDMsIDB4ODIs
IDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDUsIDB4ODMsIDB4ODAsCi0g
ICAgICAgICAgICAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDAxLCAweDAxLCAweDA3LCAweDhm
LCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDBiLCAweDY5LCAweDMzLAotICAgICAg
ICAgICAgMHgzMiwgMHg1ZiwgMHg2YywgMHg2ZiwgMHg2MSwgMHg2NCwgMHgzOCwgMHg1ZiwgMHg3
MywgMHgwMCwgMHgwMCwgMHgwYSwgMHg5NSwgMHg4MCwgMHg4MCwgMHg4MCwKLSAgICAgICAgICAg
IDB4MDAsIDB4MDEsIDB4OGYsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MTQsIDB4
MDEsIDB4MTQsIDB4MDAsIDB4MzQsIDB4MDMsIDB4MDAsIDB4MTQsCi0gICAgICAgICAgICAweDAx
LCAweDJiLCAweDAzLCAweDAwLCAweDA5LCAweDBmCisgICAgICAgICAgICAweDgwLCAweDgwLCAw
eDAwLCAweDAxLCAweDAxLCAweDAxLCAweDA3LCAweDg3LCAweDgwLCAweDgwLCAweDgwLCAweDAw
LCAweDAxLCAweDAzLCAweDY5LCAweDM2LAorICAgICAgICAgICAgMHgzNCwgMHgwMCwgMHgwMCwg
MHgwYSwgMHg5NSwgMHg4MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHg4ZiwgMHg4MCwgMHg4
MCwgMHg4MCwgMHgwMCwgMHgwMCwKKyAgICAgICAgICAgIDB4MTQsIDB4MDEsIDB4MTQsIDB4MDAs
IDB4MzQsIDB4MDMsIDB4MDAsIDB4MTQsIDB4MDEsIDB4MmIsIDB4MDMsIDB4MDAsIDB4MDksIDB4
MGYKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAg
ICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0
YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJv
ck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAg
ICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC01MTAsNyArNTM5LDEyIEBAIHN0YXRp
YyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2
bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKKyAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkp
IHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIHdpdGgg
ZXJyb3I6ICIsIHBsYW4uZXJyb3JNZXNzYWdlKCkpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBp
bGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAtNTUw
LDcgKzU4NCwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAg
ICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgp
IHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CisgICAgICAg
IGlmIChwbGFuLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWls
ZWQgdG8gY29tcGlsZSB3aXRoIGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbigiTW9k
dWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KQEAgLTYwNSw3ICs2NDQsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3Rz
KCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAg
ICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0
YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJv
ck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAg
ICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC02NDksNyArNjkzLDEyIEBAIHN0YXRp
YyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2
bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKKyAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkp
IHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIHdpdGgg
ZXJyb3I6ICIsIHBsYW4uZXJyb3JNZXNzYWdlKCkpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBp
bGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAtNjgw
LDcgKzcyOSwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAg
ICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgp
IHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CisgICAgICAg
IGlmIChwbGFuLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWls
ZWQgdG8gY29tcGlsZSB3aXRoIGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbigiTW9k
dWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KQEAgLTcxMCw3ICs3NjQsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3Rz
KCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAg
ICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0
YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJv
ck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAg
ICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC03NDEsNyArODAwLDEyIEBAIHN0YXRp
YyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2
bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKKyAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkp
IHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIHdpdGgg
ZXJyb3I6ICIsIHBsYW4uZXJyb3JNZXNzYWdlKCkpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBp
bGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAtNzgx
LDcgKzg0NSwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAg
ICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgp
IHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CisgICAgICAg
IGlmIChwbGFuLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWls
ZWQgdG8gY29tcGlsZSB3aXRoIGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbigiTW9k
dWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KQEAgLTgzNiw3ICs5MDUsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3Rz
KCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAg
ICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0
YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJv
ck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAg
ICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAg
ICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC04ODAsNyArOTU0LDEyIEBAIHN0YXRp
YyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2
bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKKyAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkp
IHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIHdpdGgg
ZXJyb3I6ICIsIHBsYW4uZXJyb3JNZXNzYWdlKCkpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJl
c3VsdCgwKSkgewogICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBp
bGUgY29ycmVjdGx5LiIpOwogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAtOTEx
LDcgKzk5MCwxMiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAg
ICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgp
IHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CisgICAgICAg
IGlmIChwbGFuLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWls
ZWQgdG8gY29tcGlsZSB3aXRoIGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAgICAg
ICAgICAgIENSQVNIKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGxhbi5yZXN1bHRTaXpl
KCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKICAgICAgICAgICAgIGRhdGFMb2dMbigiTW9k
dWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKICAgICAgICAgICAgIENSQVNIKCk7
CiAgICAgICAgIH0KQEAgLTk0MSw3ICsxMDI1LDEyIEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0
cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAg
ICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5y
ZXN1bHQoMCkpIHsKKyAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkpIHsKKyAgICAgICAgICAgIGRh
dGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIHdpdGggZXJyb3I6ICIsIHBsYW4uZXJy
b3JNZXNzYWdlKCkpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewogICAgICAg
ICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwog
ICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgfQpAQCAtOTgyLDcgKzEwNzEsMTIgQEAgc3Rh
dGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4o
KnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNp
emUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQo
KSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0
aCBlcnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4u
cmVzdWx0KDApKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29t
cGlsZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC0x
MDA5LDcgKzExMDMsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsK
IAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWls
ZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAg
ICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUg
ZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7Cisg
ICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0
U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4o
Ik1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFT
SCgpOwogICAgICAgICB9CkBAIC0xMDMwLDcgKzExMjksMTIgQEAgc3RhdGljIHZvaWQgcnVuV2Fz
bVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwot
ICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFw
bGFuLnJlc3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAg
ICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxh
bi5lcnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAg
ICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHku
Iik7CiAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC0xMDUwLDcgKzExNTQsMTIg
QEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFu
IHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJl
c3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5m
YWlsZWQoKSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBp
bGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFT
SCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwg
IXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQg
dG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9
CkBAIC0xMDcwLDcgKzExNzksMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAg
ICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxh
bi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkg
eworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJN
b2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2Uo
KSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4u
cmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAgICAgICBkYXRh
TG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAg
ICBDUkFTSCgpOwogICAgICAgICB9CkBAIC0xMDg5LDcgKzEyMDMsMTIgQEAgc3RhdGljIHZvaWQg
cnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0
b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAx
IHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAg
ICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjog
IiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDAp
KSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3Jy
ZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC0xMTE4LDcgKzEy
MzcsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAg
ICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBw
bGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAgICAgICBpZiAo
cGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRv
IGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAg
ICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9
IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBm
YWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFTSCgpOwogICAg
ICAgICB9CkBAIC0xMTU0LDcgKzEyNzgsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkK
ICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBp
ZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3Vs
dCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0YUxv
Z0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJvck1l
c3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAgICAg
ICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAgICAg
ICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC0xMTk4LDcgKzEzMjcsMTIgQEAgc3RhdGlj
IHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZt
LCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUo
KSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSkg
eworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgd2l0aCBl
cnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7CisgICAgICAgICAgICBDUkFTSCgpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVz
dWx0KDApKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGls
ZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFTSCgpOwogICAgICAgICB9CkBAIC0xMjUx
LDcgKzEzODUsMTIgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAog
ICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQo
KSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgeworICAgICAg
ICBpZiAocGxhbi5mYWlsZWQoKSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFp
bGVkIHRvIGNvbXBpbGUgd2l0aCBlcnJvcjogIiwgcGxhbi5lcnJvck1lc3NhZ2UoKSk7CisgICAg
ICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0U2l6
ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7CiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1v
ZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CiAgICAgICAgICAgICBDUkFTSCgp
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdl
bmVyYXRvci5jcHAKaW5kZXggYjVhYzdhNGQ0MTQ4MmFkNWQ3ZTAyZDdjYjZmMzg1MDMzMDljYTYz
MC4uMWM3NGM1YzdmOTEwOTRiMTJmZDgxNWYwYmUyZmVjYTkwNmFhNDA1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcApAQCAtODcsNiAr
ODcsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgewogICAgICAgICB9CiAKKyAgICAgICAgTGF6eUJs
b2NrKCkKKyAgICAgICAgeworICAgICAgICB9CisKICAgICAgICAgZXhwbGljaXQgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9ibG9jazsgfQogCiAgICAgICAgIEJhc2ljQmxvY2sq
IGdldChQcm9jZWR1cmUmIHByb2MpCkBAIC0xMTgsNiArMTIyLDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKHByb2MuYWRkVmFyaWFibGUodG9CM1R5cGUoc2lnbmF0
dXJlKSkpOwogICAgICAgICB9CiAKKyAgICAgICAgQ29udHJvbERhdGEoKQorICAgICAgICB7Cisg
ICAgICAgIH0KKwogICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAg
ICAgICAgewogICAgICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKQEAgLTE5MSw4ICsxOTksOCBA
QCBwdWJsaWM6CiAgICAgLy8gQ29udHJvbCBmbG93CiAgICAgQ29udHJvbERhdGEgV0FSTl9VTlVT
RURfUkVUVVJOIGFkZEJsb2NrKFR5cGUgc2lnbmF0dXJlKTsKICAgICBDb250cm9sRGF0YSBXQVJO
X1VOVVNFRF9SRVRVUk4gYWRkTG9vcChUeXBlIHNpZ25hdHVyZSk7Ci0gICAgQ29udHJvbERhdGEg
V0FSTl9VTlVTRURfUkVUVVJOIGFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgVHlwZSBz
aWduYXR1cmUpOwotICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEVsc2UoQ29udHJvbERh
dGEmKTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRJZihFeHByZXNzaW9uVHlwZSBj
b25kaXRpb24sIFR5cGUgc2lnbmF0dXJlLCBDb250cm9sRGF0YSYgcmVzdWx0KTsKKyAgICBib29s
IFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRFbHNlKENvbnRyb2xEYXRhJiwgY29uc3QgRXhwcmVzc2lv
bkxpc3QmKTsKIAogICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFJldHVybihjb25zdCBF
eHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVS
TiBhZGRCcmFuY2goQ29udHJvbERhdGEmLCBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0
IEV4cHJlc3Npb25MaXN0JiByZXR1cm5WYWx1ZXMpOwpAQCAtNDkzLDcgKzUwMSw3IEBAIEIzSVJH
ZW5lcmF0b3I6OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZExvb3AoVHlwZSBzaWduYXR1
cmUpCiAgICAgcmV0dXJuIENvbnRyb2xEYXRhKG1fcHJvYywgc2lnbmF0dXJlLCBib2R5KTsKIH0K
IAotQjNJUkdlbmVyYXRvcjo6Q29udHJvbERhdGEgQjNJUkdlbmVyYXRvcjo6YWRkSWYoRXhwcmVz
c2lvblR5cGUgY29uZGl0aW9uLCBUeXBlIHNpZ25hdHVyZSkKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6
YWRkSWYoRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBUeXBlIHNpZ25hdHVyZSwgQ29udHJvbFR5
cGUmIHJlc3VsdCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBkbyBzb21lIGtpbmQg
b2Ygc3RhY2sgcGFzc2luZy4KIApAQCAtNTA3LDEwICs1MTUsMTEgQEAgQjNJUkdlbmVyYXRvcjo6
Q29udHJvbERhdGEgQjNJUkdlbmVyYXRvcjo6YWRkSWYoRXhwcmVzc2lvblR5cGUgY29uZGl0aW9u
LCBUeXBlIHMKICAgICBub3RUYWtlbi0+YWRkUHJlZGVjZXNzb3IobV9jdXJyZW50QmxvY2spOwog
CiAgICAgbV9jdXJyZW50QmxvY2sgPSB0YWtlbjsKLSAgICByZXR1cm4gQ29udHJvbERhdGEobV9w
cm9jLCBzaWduYXR1cmUsIG5vdFRha2VuLCBjb250aW51YXRpb24pOworICAgIHJlc3VsdCA9IENv
bnRyb2xEYXRhKG1fcHJvYywgc2lnbmF0dXJlLCBub3RUYWtlbiwgY29udGludWF0aW9uKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBCM0lSR2VuZXJhdG9yOjphZGRFbHNlKENvbnRyb2xE
YXRhJiBkYXRhKQorYm9vbCBCM0lSR2VuZXJhdG9yOjphZGRFbHNlKENvbnRyb2xEYXRhJiBkYXRh
LCBjb25zdCBFeHByZXNzaW9uTGlzdCYpCiB7CiAgICAgQVNTRVJUKGRhdGEuY29udGludWF0aW9u
KTsKICAgICBtX2N1cnJlbnRCbG9jayA9IGRhdGEuc3BlY2lhbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZvcm1hdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJkYzgwMDBmMjlmOTQzM2E1NGZl
ZjM4MGFjZTZiNzNmZGQzNjZlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2FzbUZvcm1hdC5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCitjb25zdCBjaGFyKiB0b1N0cmluZyhUeXBlIHR5
cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBWb2lkOgorICAgICAgICByZXR1
cm4gInZvaWQiOworICAgIGNhc2UgSTMyOgorICAgICAgICByZXR1cm4gImkzMiI7CisgICAgY2Fz
ZSBJNjQ6CisgICAgICAgIHJldHVybiAiaTY0IjsKKyAgICBjYXNlIEYzMjoKKyAgICAgICAgcmV0
dXJuICJmMzIiOworICAgIGNhc2UgRjY0OgorICAgICAgICByZXR1cm4gImY2NCI7CisgICAgfQor
fQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJ
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCA3ZWI1YjFhZGQ5
NzI4ODc3NTg1ZjVkZWI3ZWRlZmNjYTBhMjNiYjhhLi44Mjg2YWVmM2FlZmMxMmE1ZDFmZGQ0OWZk
Y2U0Y2U5NTAzNTU0YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5o
CkBAIC05Nyw2ICs5Nyw3IEBAIGlubGluZSBib29sIGlzVmFsdWVUeXBlKFR5cGUgdHlwZSkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK2NvbnN0IGNoYXIqIHRvU3RyaW5nKFR5cGUpOwogCiBzdHJ1
Y3QgU2lnbmF0dXJlIHsKICAgICBUeXBlIHJldHVyblR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCmluZGV4IDUxZTJmOGI3OGIxN2MyYjlk
OGFmYTk0NmM0MWJlY2Q4ZTc3MjA1MDYuLmM2MDI1ZjNlODljM2YxZmYxNDk2OGQ2MjdlMzM3ZGEw
NDFjYWIzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5j
dGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlv
blBhcnNlci5oCkBAIC0yODIsMTIgKzI4MiwxNiBAQCBib29sIEZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjpwYXJzZUV4cHJlc3Npb24oT3BUeXBlIG9wKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiA9IG1fZXhwcmVzc2lvblN0YWNr
LnRha2VMYXN0KCk7Ci0gICAgICAgIG1fY29udHJvbFN0YWNrLmFwcGVuZChtX2NvbnRleHQuYWRk
SWYoY29uZGl0aW9uLCBpbmxpbmVTaWduYXR1cmUpKTsKKyAgICAgICAgQ29udHJvbFR5cGUgY29u
dHJvbDsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQuYWRkSWYoY29uZGl0aW9uLCBpbmxpbmVTaWdu
YXR1cmUsIGNvbnRyb2wpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIG1f
Y29udHJvbFN0YWNrLmFwcGVuZChjb250cm9sKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCiAgICAgY2FzZSBPcFR5cGU6OkVsc2U6IHsKLSAgICAgICAgcmV0dXJuIG1fY29udGV4dC5h
ZGRFbHNlKG1fY29udHJvbFN0YWNrLmxhc3QoKSk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQu
YWRkRWxzZShtX2NvbnRyb2xTdGFjay5sYXN0KCksIG1fZXhwcmVzc2lvblN0YWNrKTsKICAgICB9
CiAKICAgICBjYXNlIE9wVHlwZTo6QnI6CkBAIC0zNDksNyArMzUzLDcgQEAgYm9vbCBGdW5jdGlv
blBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24oT3BUeXBlIG9wKQog
ICAgICAgICBDb250cm9sVHlwZSYgZGF0YSA9IG1fY29udHJvbFN0YWNrLmxhc3QoKTsKICAgICAg
ICAgQVNTRVJUKGRhdGEudHlwZSgpID09IEJsb2NrVHlwZTo6SWYpOwogICAgICAgICBtX3VucmVh
Y2hhYmxlQmxvY2tzID0gMDsKLSAgICAgICAgcmV0dXJuIG1fY29udGV4dC5hZGRFbHNlKGRhdGEp
OworICAgICAgICByZXR1cm4gbV9jb250ZXh0LmFkZEVsc2UoZGF0YSwgbV9leHByZXNzaW9uU3Rh
Y2spOwogICAgIH0KIAogICAgIGNhc2UgT3BUeXBlOjpFbmQ6IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QbGFuLmNwcAppbmRleCBmOWM4YTU0NTlmMmJhODZmNDllZWMxZTNkYjA3YjVl
NDg5NmI5NzE5Li43MzliZTQyNTNjMGU0YTc0YjNlZDkxMDdlYjc3YzI1MTdlMDU3OWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiV2FzbUIzSVJHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGluZ0NvbnZl
bnRpb24uaCIKICNpbmNsdWRlICJXYXNtTW9kdWxlUGFyc2VyLmgiCisjaW5jbHVkZSAiV2FzbVZh
bGlkYXRlLmgiCiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKQEAgLTYzLDYgKzY0LDEzIEBAIFBsYW46OlBsYW4oVk0mIHZtLCBjb25z
dCB1aW50OF90KiBzb3VyY2UsIHNpemVfdCBzb3VyY2VMZW5ndGgpCiAgICAgICAgIGNvbnN0IHVp
bnQ4X3QqIGZ1bmN0aW9uU3RhcnQgPSBzb3VyY2UgKyBpbmZvLnN0YXJ0OwogICAgICAgICBzaXpl
X3QgZnVuY3Rpb25MZW5ndGggPSBpbmZvLmVuZCAtIGluZm8uc3RhcnQ7CiAgICAgICAgIEFTU0VS
VChmdW5jdGlvbkxlbmd0aCA8PSBzb3VyY2VMZW5ndGgpOworCisgICAgICAgIFN0cmluZyBlcnJv
ciA9IHZhbGlkYXRlRnVuY3Rpb24oZnVuY3Rpb25TdGFydCwgZnVuY3Rpb25MZW5ndGgsIGluZm8u
c2lnbmF0dXJlLCBtb2R1bGVQYXJzZXIuZnVuY3Rpb25JbmZvcm1hdGlvbigpKTsKKyAgICAgICAg
aWYgKCFlcnJvci5pc051bGwoKSkgeworICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
cjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIG1fcmVzdWx0LmFw
cGVuZChwYXJzZUFuZENvbXBpbGUodm0sIGZ1bmN0aW9uU3RhcnQsIGZ1bmN0aW9uTGVuZ3RoLCBt
b2R1bGVQYXJzZXIubWVtb3J5KCkuZ2V0KCksIGluZm8uc2lnbmF0dXJlLCBtb2R1bGVQYXJzZXIu
ZnVuY3Rpb25JbmZvcm1hdGlvbigpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVZhbGlkYXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDEyNTQ5NzExMzkwNWQ3ZTEwNDYz
ZTAzMmZlNGZiYjMyZTA4MTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcApAQCAtMCwwICsxLDI5OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXYXNtVmFsaWRhdGUuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2lu
Y2x1ZGUgIldhc21GdW5jdGlvblBhcnNlci5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IFdhc20geworCitjbGFzcyBWYWxpZGF0ZSB7CitwdWJsaWM6CisgICAgY2xhc3MgQ29udHJvbERh
dGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgQ29udHJvbERhdGEoQmxvY2tUeXBlIHR5cGUsIFR5
cGUgc2lnbmF0dXJlKQorICAgICAgICAgICAgOiBtX2Jsb2NrVHlwZSh0eXBlKQorICAgICAgICAg
ICAgLCBtX3NpZ25hdHVyZShzaWduYXR1cmUpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAg
ICAgIENvbnRyb2xEYXRhKCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRj
aCAodHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrVHlwZTo6SWY6CisgICAgICAgICAg
ICAgICAgb3V0LnByaW50KCJJZjogICAgIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEJsb2NrVHlwZTo6QmxvY2s6CisgICAgICAgICAgICAgICAgb3V0LnByaW50
KCJCbG9jazogIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJs
b2NrVHlwZTo6TG9vcDoKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIkxvb3A6ICAiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IEJsb2NrVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja1R5cGU7IH0KKyAgICAgICAg
VHlwZSBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBtX3NpZ25hdHVyZTsgfQorICAgIHByaXZh
dGU6CisgICAgICAgIEJsb2NrVHlwZSBtX2Jsb2NrVHlwZTsKKyAgICAgICAgVHlwZSBtX3NpZ25h
dHVyZTsKKyAgICB9OworICAgIHR5cGVkZWYgVHlwZSBFeHByZXNzaW9uVHlwZTsKKyAgICB0eXBl
ZGVmIENvbnRyb2xEYXRhIENvbnRyb2xUeXBlOworICAgIHR5cGVkZWYgVmVjdG9yPEV4cHJlc3Np
b25UeXBlLCAxPiBFeHByZXNzaW9uTGlzdDsKKyAgICBzdGF0aWMgY29uc3QgRXhwcmVzc2lvblR5
cGUgZW1wdHlFeHByZXNzaW9uID0gVm9pZDsKKworICAgIHZvaWQgYWRkQXJndW1lbnRzKGNvbnN0
IFZlY3RvcjxUeXBlPiYpOworICAgIHZvaWQgYWRkTG9jYWwoVHlwZSwgdWludDMyX3QpOworICAg
IEV4cHJlc3Npb25UeXBlIGFkZENvbnN0YW50KFR5cGUgdHlwZSwgdWludDY0X3QpIHsgcmV0dXJu
IHR5cGU7IH0KKworICAgIC8vIExvY2FscworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGdl
dExvY2FsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKKyAgICBib29s
IFdBUk5fVU5VU0VEX1JFVFVSTiBzZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5
cGUgdmFsdWUpOworCisgICAgLy8gTWVtb3J5CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4g
bG9hZChMb2FkT3BUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSYg
cmVzdWx0LCB1aW50MzJfdCBvZmZzZXQpOworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIHN0
b3JlKFN0b3JlT3BUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSwgdWludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8vIEJhc2ljIG9wZXJhdG9ycworICAgIGJv
b2wgV0FSTl9VTlVTRURfUkVUVVJOIGJpbmFyeU9wKEJpbmFyeU9wVHlwZSwgRXhwcmVzc2lvblR5
cGUgbGVmdCwgRXhwcmVzc2lvblR5cGUgcmlnaHQsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOwor
ICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIHVuYXJ5T3AoVW5hcnlPcFR5cGUsIEV4cHJlc3Np
b25UeXBlIGFyZywgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisKKyAgICAvLyBDb250cm9sIGZs
b3cKKyAgICBDb250cm9sRGF0YSBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQmxvY2soVHlwZSBzaWdu
YXR1cmUpOworICAgIENvbnRyb2xEYXRhIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRMb29wKFR5cGUg
c2lnbmF0dXJlKTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRJZihFeHByZXNzaW9u
VHlwZSBjb25kaXRpb24sIFR5cGUgc2lnbmF0dXJlLCBDb250cm9sRGF0YSYgcmVzdWx0KTsKKyAg
ICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRFbHNlKENvbnRyb2xEYXRhJiwgY29uc3QgRXhw
cmVzc2lvbkxpc3QmKTsKKworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFJldHVybihj
b25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKKyAgICBib29sIFdBUk5fVU5VU0VE
X1JFVFVSTiBhZGRCcmFuY2goQ29udHJvbERhdGEmLCBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24s
IGNvbnN0IEV4cHJlc3Npb25MaXN0JiByZXR1cm5WYWx1ZXMpOworICAgIGJvb2wgV0FSTl9VTlVT
RURfUkVUVVJOIGVuZEJsb2NrKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Np
b25TdGFjayk7CisKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRDYWxsKHVuc2lnbmVk
IGNhbGxlZUluZGV4LCBjb25zdCBGdW5jdGlvbkluZm9ybWF0aW9uJiwgY29uc3QgVmVjdG9yPEV4
cHJlc3Npb25UeXBlPiYgYXJncywgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7CisgICAgYm9vbCBX
QVJOX1VOVVNFRF9SRVRVUk4gaXNDb250aW51YXRpb25SZWFjaGFibGUoQ29udHJvbERhdGEmKSB7
IHJldHVybiB0cnVlOyB9CisKKyAgICB2b2lkIGR1bXAoY29uc3QgVmVjdG9yPENvbnRyb2xUeXBl
PiYgY29udHJvbFN0YWNrLCBjb25zdCBFeHByZXNzaW9uTGlzdCYgZXhwcmVzc2lvblN0YWNrKTsK
KworICAgIFN0cmluZyBlcnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yTWVzc2Fn
ZTsgfQorICAgIFZhbGlkYXRlKEV4cHJlc3Npb25UeXBlIHJldHVyblR5cGUpCisgICAgICAgIDog
bV9yZXR1cm5UeXBlKHJldHVyblR5cGUpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBi
b29sIHVuaWZ5KFR5cGUsIFR5cGUpOworICAgIGJvb2wgdW5pZnkoY29uc3QgRXhwcmVzc2lvbkxp
c3QmLCBjb25zdCBDb250cm9sRGF0YSYpOworCisgICAgRXhwcmVzc2lvblR5cGUgbV9yZXR1cm5U
eXBlOworICAgIFZlY3RvcjxUeXBlPiBtX2xvY2FsczsKKyAgICBTdHJpbmcgbV9lcnJvck1lc3Nh
Z2U7Cit9OworCit2b2lkIFZhbGlkYXRlOjphZGRBcmd1bWVudHMoY29uc3QgVmVjdG9yPFR5cGU+
JiBhcmdzKQoreworICAgIGZvciAoVHlwZSBhcmcgOiBhcmdzKQorICAgICAgICBhZGRMb2NhbChh
cmcsIDEpOworfQorCit2b2lkIFZhbGlkYXRlOjphZGRMb2NhbChUeXBlIHR5cGUsIHVpbnQzMl90
IGNvdW50KQoreworICAgIG1fbG9jYWxzLnJlc2VydmVDYXBhY2l0eShtX2xvY2Fscy5zaXplKCkg
KyBjb3VudCk7CisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAg
ICAgIG1fbG9jYWxzLmFwcGVuZCh0eXBlKTsKK30KKworYm9vbCBWYWxpZGF0ZTo6Z2V0TG9jYWwo
dWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpCit7CisgICAgaWYgKGluZGV4
IDwgbV9sb2NhbHMuc2l6ZSgpKSB7CisgICAgICAgIHJlc3VsdCA9IG1fbG9jYWxzW2luZGV4XTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1fZXJyb3JNZXNzYWdlID0gQVNDSUlM
aXRlcmFsKCJBdHRlbXB0IHRvIHVzZSB1bmtub3duIGxvY2FsLiIpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6c2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Np
b25UeXBlIHZhbHVlKQoreworICAgIEV4cHJlc3Npb25UeXBlIGxvY2FsVHlwZTsKKyAgICBpZiAo
IWdldExvY2FsKGluZGV4LCBsb2NhbFR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAobG9jYWxUeXBlID09IHZhbHVlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIG1f
ZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQXR0ZW1wdCB0byBzZXQgbG9jYWwgd2l0aCB0eXBl
OiAiLCB0b1N0cmluZyhsb2NhbFR5cGUpLCAiIHdpdGggYSB2YXJpYWJsZSBvZiB0eXBlOiAiLCB0
b1N0cmluZyh2YWx1ZSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKworVmFsaWRhdGU6OkNvbnRy
b2xUeXBlIFZhbGlkYXRlOjphZGRCbG9jayhUeXBlIHNpZ25hdHVyZSkKK3sKKyAgICByZXR1cm4g
Q29udHJvbERhdGEoQmxvY2tUeXBlOjpCbG9jaywgc2lnbmF0dXJlKTsKK30KKworVmFsaWRhdGU6
OkNvbnRyb2xUeXBlIFZhbGlkYXRlOjphZGRMb29wKFR5cGUgc2lnbmF0dXJlKQoreworICAgIHJl
dHVybiBDb250cm9sRGF0YShCbG9ja1R5cGU6Okxvb3AsIHNpZ25hdHVyZSk7Cit9CisKK2Jvb2wg
VmFsaWRhdGU6OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgVHlwZSBzaWduYXR1cmUs
IENvbnRyb2xUeXBlJiByZXN1bHQpCit7CisgICAgaWYgKGNvbmRpdGlvbiAhPSBJMzIpIHsKKyAg
ICAgICAgbV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIHVzZSAiLCB0
b1N0cmluZyhjb25kaXRpb24pLCAiIGFzIHRoZSBjb25kaXRpb24gZm9yIGFuIGlmIGJsb2NrIik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmVzdWx0ID0gQ29udHJvbERhdGEo
QmxvY2tUeXBlOjpJZiwgc2lnbmF0dXJlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBW
YWxpZGF0ZTo6YWRkRWxzZShDb250cm9sVHlwZSYgY3VycmVudCwgY29uc3QgRXhwcmVzc2lvbkxp
c3QmIHZhbHVlcykKK3sKKyAgICBpZiAoY3VycmVudC50eXBlKCkgIT0gQmxvY2tUeXBlOjpJZikg
eworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkF0dGVtcHRpbmcgdG8gYWRk
IGVsc2UgYmxvY2sgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaWYiKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghdW5pZnkodmFsdWVzLCBjdXJyZW50KSkgewor
ICAgICAgICBBU1NFUlQoZXJyb3JNZXNzYWdlKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgY3VycmVudCA9IENvbnRyb2xEYXRhKEJsb2NrVHlwZTo6QmxvY2ssIGN1cnJl
bnQuc2lnbmF0dXJlKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZhbGlkYXRlOjph
ZGRSZXR1cm4oY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcykKK3sKKyAgICBpZiAo
bV9yZXR1cm5UeXBlID09IFZvaWQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIEFTU0VSVChy
ZXR1cm5WYWx1ZXMuc2l6ZSgpID09IDEpOworCisgICAgaWYgKG1fcmV0dXJuVHlwZSA9PSByZXR1
cm5WYWx1ZXNbMF0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9lcnJvck1lc3NhZ2Ug
PSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGFkZCByZXR1cm4gd2l0aCB0eXBlOiAiLCB0b1N0
cmluZyhyZXR1cm5WYWx1ZXNbMF0pLCAiIGJ1dCBmdW5jdGlvbiBleHBlY3RzIHJldHVybiB3aXRo
IHR5cGU6ICIsIHRvU3RyaW5nKG1fcmV0dXJuVHlwZSkpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBWYWxpZGF0ZTo6YWRkQnJhbmNoKENvbnRyb2xUeXBlJiB0YXJnZXQsIEV4cHJlc3Np
b25UeXBlIGNvbmRpdGlvbiwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIHN0YWNrKQoreworICAgIC8v
IFZvaWQgbWVhbnMgdGhpcyBpcyBub3QgYSBjb25kaXRpb25hbCBicmFuY2guCisgICAgaWYgKGNv
bmRpdGlvbiAhPSBWb2lkICYmIGNvbmRpdGlvbiAhPSBJMzIpIHsKKyAgICAgICAgbV9lcnJvck1l
c3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGNvbmRpdGlvbmFsIGJyYW5j
aCB3aXRoIGNvbmRpdGlvbiB0eXBlOiAiLCB0b1N0cmluZyhjb25kaXRpb24pLCAiIGJ1dCBleHBl
Y3RlZCBpMzIuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAodGFy
Z2V0LnR5cGUoKSA9PSBCbG9ja1R5cGU6OklmKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGlmICh0YXJnZXQuc2lnbmF0dXJlKCkgPT0gVm9pZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICBBU1NFUlQoc3RhY2suc2l6ZSgpID09IDEpOworICAgIGlmICh0YXJnZXQuc2lnbmF0dXJl
KCkgPT0gc3RhY2tbMF0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9lcnJvck1lc3Nh
Z2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGJyYW5jaCB0byBibG9jayB3aXRoIGV4cGVj
dGVkIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSksICIgYnV0IGJyYW5jaGlu
ZyB3aXRoIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSkpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6ZW5kQmxvY2soQ29udHJvbFR5cGUmIGJsb2Nr
LCBFeHByZXNzaW9uTGlzdCYgc3RhY2spCit7CisgICAgaWYgKGJsb2NrLnNpZ25hdHVyZSgpID09
IFZvaWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisKKyAgICBBU1NFUlQoc3RhY2suc2l6ZSgp
ID09IDEpOworICAgIGlmIChibG9jay5zaWduYXR1cmUoKSA9PSBzdGFja1swXSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkJsb2NrIGZh
bGx0aHJvdWdoIGhhcyBleHBlY3RlZCB0eXBlOiAiLCB0b1N0cmluZyhibG9jay5zaWduYXR1cmUo
KSksICIgYnV0IHByb2R1Y2VkIHR5cGU6ICIsIHRvU3RyaW5nKGJsb2NrLnNpZ25hdHVyZSgpKSk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbGlkYXRlOjphZGRDYWxsKHVuc2lnbmVk
LCBjb25zdCBGdW5jdGlvbkluZm9ybWF0aW9uJiBpbmZvLCBjb25zdCBWZWN0b3I8RXhwcmVzc2lv
blR5cGU+JiBhcmdzLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQoreworICAgIGlmIChpbmZvLnNp
Z25hdHVyZS0+YXJndW1lbnRzLnNpemUoKSAhPSBhcmdzLnNpemUoKSkgeworICAgICAgICBtX2Vy
cm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkFyaXR5IG1pc21hdGNoIGluIGNhbGwiKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBh
cmdzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChhcmdzW2ldICE9IGluZm8uc2lnbmF0dXJl
LT5hcmd1bWVudHNbaV0pIHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmlu
ZygiRXhwZWN0ZWQgYXJndW1lbnQgdHlwZTogIiwgdG9TdHJpbmcoaW5mby5zaWduYXR1cmUtPmFy
Z3VtZW50c1tpXSksICIgZG9lcyBub3QgbWF0Y2ggcGFzc2VkIGFyZ3VtZW50IHR5cGU6ICIsIHRv
U3RyaW5nKGFyZ3NbaV0pKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHJlc3VsdCA9IGluZm8uc2lnbmF0dXJlLT5yZXR1cm5UeXBlOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIFZhbGlkYXRlOjp1bmlmeShjb25zdCBFeHByZXNzaW9uTGlz
dCYgdmFsdWVzLCBjb25zdCBDb250cm9sVHlwZSYgYmxvY2spCit7CisgICAgQVNTRVJUKHZhbHVl
cy5zaXplKCkgPD0gMSk7CisgICAgaWYgKGJsb2NrLnNpZ25hdHVyZSgpID09IFZvaWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCF2YWx1ZXMuc2l6ZSgpKSB7CisgICAgICAgIG1f
ZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2sgaGFzIG5vbi12b2lkIHNpZ25hdHVyZSBi
dXQgaGFzIG5vIHN0YWNrIGVudHJpZXMgb24gZXhpdCIpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKHZhbHVlc1swXSA9PSBibG9jay5zaWduYXR1cmUoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkV4cGVj
dGVkIGNvbnRyb2wgZmxvdyB0byByZXR1cm4gdmFsdWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhi
bG9jay5zaWduYXR1cmUoKSksICIgYnV0IGdvdCB2YWx1ZSB3aXRoIHR5cGU6ICIsIHRvU3RyaW5n
KHZhbHVlc1swXSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBWYWxpZGF0ZTo6ZHVt
cChjb25zdCBWZWN0b3I8Q29udHJvbFR5cGU+JiwgY29uc3QgRXhwcmVzc2lvbkxpc3QmKQorewor
ICAgIGRhdGFMb2dMbigiVmFsaWRhdGluZyIpOworfQorCitTdHJpbmcgdmFsaWRhdGVGdW5jdGlv
bihjb25zdCB1aW50OF90KiBzb3VyY2UsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFNpZ25hdHVyZSog
c2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8RnVuY3Rpb25JbmZvcm1hdGlvbj4mIGZ1bmN0aW9ucykK
K3sKKyAgICBWYWxpZGF0ZSBjb250ZXh0KHNpZ25hdHVyZS0+cmV0dXJuVHlwZSk7CisgICAgRnVu
Y3Rpb25QYXJzZXI8VmFsaWRhdGU+IHZhbGlkYXRvcihjb250ZXh0LCBzb3VyY2UsIGxlbmd0aCwg
c2lnbmF0dXJlLCBmdW5jdGlvbnMpOworICAgIGlmICghdmFsaWRhdG9yLnBhcnNlKCkpIHsKKyAg
ICAgICAgLy8gRklYTUU6IGFkZCBiZXR0ZXIgbG9jYXRpb24gaW5mb3JtYXRpb24gaGVyZS4KKyAg
ICAgICAgcmV0dXJuIGNvbnRleHQuZXJyb3JNZXNzYWdlKCk7CisgICAgfQorCisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjaW5jbHVkZSAi
V2FzbVZhbGlkYXRlSW5saW5lcy5oIgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjEy
NGYwOTY3YWFiZmE2ZGFmMjEyNmZkODAwMmVjM2ExMTdlNDE2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmgKQEAgLTAsMCArMSwzOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiV2FzbUZvcm1hdC5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20geworCitTdHJpbmcgdmFsaWRhdGVG
dW5jdGlvbihjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBTaWduYXR1cmUqLCBjb25zdCBW
ZWN0b3I8RnVuY3Rpb25JbmZvcm1hdGlvbj4mKTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldh
c20KKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hl
YWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xMDYzOTMzMGYxYmExYjNiYWRkNGViMTBlN2I4NDZlYmE5YTA3
MGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJh
dGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CkBAIC0wLDAgKzEsMTc0IEBACisjISAvdXNy
L2Jpbi9weXRob24KKworIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgdG9v
bCBoYXMgYSBjb3VwbGUgb2YgaGVscGZ1bCBtYWNyb3MgdG8gcHJvY2VzcyBXYXNtIGZpbGVzIGZy
b20gdGhlIHdhc20uanNvbi4KKworZnJvbSBnZW5lcmF0ZVdhc20gaW1wb3J0ICoKK2ltcG9ydCBv
cHRwYXJzZQoraW1wb3J0IHN5cworCitwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIodXNh
Z2U9InVzYWdlOiAlcHJvZyA8d2FzbS5qc29uPiA8V2FzbU9wcy5oPiIpCisob3B0aW9ucywgYXJn
cykgPSBwYXJzZXIucGFyc2VfYXJncyhzeXMuYXJndlswOl0pCitpZiBsZW4oYXJncykgIT0gMzoK
KyAgICBwYXJzZXIuZXJyb3IocGFyc2VyLnVzYWdlKQorCit3YXNtID0gV2FzbShhcmdzWzBdLCBh
cmdzWzFdKQorb3Bjb2RlcyA9IHdhc20ub3Bjb2Rlcword2FzbVZhbGlkYXRlSW5saW5lc0hGaWxl
ID0gb3BlbihhcmdzWzJdLCAidyIpCisKKworZGVmIGNwcFR5cGUobmFtZSk6CisgICAgcmVzdWx0
ID0geworICAgICAgICAiYm9vbCI6ICJJMzIiLAorICAgICAgICAiYWRkciI6ICJJMzIiLAorICAg
ICAgICAiaTMyIjogIkkzMiIsCisgICAgICAgICJpNjQiOiAiSTY0IiwKKyAgICAgICAgImYzMiI6
ICJGMzIiLAorICAgICAgICAiZjY0IjogIkY2NCIsCisgICAgfS5nZXQobmFtZSwgTm9uZSkKKyAg
ICBpZiByZXN1bHQgPT0gTm9uZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biB0
eXBlIG5hbWU6ICIgKyBuYW1lKQorICAgIHJldHVybiByZXN1bHQKKworCitkZWYgdG9DcHAobmFt
ZSk6CisgICAgcmV0dXJuIHdhc20udG9DcHAobmFtZSkKKworCitkZWYgdW5hcnlNYWNybyhuYW1l
KToKKyAgICBvcCA9IG9wY29kZXNbbmFtZV0KKyAgICByZXR1cm4gIiIiCisgICAgY2FzZSBVbmFy
eU9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsKKyAgICAgICAgaWYgKHZhbHVlICE9
ICIiIiArIGNwcFR5cGUob3BbInBhcmFtZXRlciJdWzBdKSArICIiIikgeworICAgICAgICAgICAg
bV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKFwiIiIiICsgbmFtZSArICIiIiBleHBlY3RzIHRo
ZSB2YWx1ZSB0byBiZSBvZiB0eXBlOiAiLCB0b1N0cmluZygiIiIgKyBjcHBUeXBlKG9wWyJwYXJh
bWV0ZXIiXVswXSkgKyAiIiIpLCAiIGJ1dCBnb3QgYSB2YWx1ZSB3aXRoIHR5cGU6ICIsIHRvU3Ry
aW5nKHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAg
ICAgICByZXN1bHQgPSAiIiIgKyBjcHBUeXBlKG9wWyJyZXR1cm4iXVswXSkgKyAiIiI7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0iIiIKKworCitkZWYgYmluYXJ5TWFjcm8obmFtZSk6Cisg
ICAgb3AgPSBvcGNvZGVzW25hbWVdCisgICAgcmV0dXJuICIiIgorICAgIGNhc2UgQmluYXJ5T3BU
eXBlOjoiIiIgKyB0b0NwcChuYW1lKSArICIiIjogeworICAgICAgICBpZiAobGVmdCAhPSAiIiIg
KyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIpIHsKKyAgICAgICAgICAgIG1fZXJy
b3JNZXNzYWdlID0gbWFrZVN0cmluZyhcIiIiIiArIG5hbWUgKyAiIiIgZXhwZWN0cyB0aGUgbGVm
dCB2YWx1ZSB0byBiZSBvZiB0eXBlOiAiLCB0b1N0cmluZygiIiIgKyBjcHBUeXBlKG9wWyJwYXJh
bWV0ZXIiXVswXSkgKyAiIiIpLCAiIGJ1dCBnb3QgYSB2YWx1ZSB3aXRoIHR5cGU6ICIsIHRvU3Ry
aW5nKGxlZnQpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChyaWdodCAhPSAiIiIgKyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVsxXSkgKyAiIiIp
IHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZyhcIiIiIiArIG5hbWUg
KyAiIiIgZXhwZWN0cyB0aGUgcmlnaHQgdmFsdWUgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmco
IiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFs
dWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhyaWdodCkpOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gIiIiICsgY3BwVHlwZShvcFsicmV0
dXJuIl1bMF0pICsgIiIiOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IiIiCisKKworZGVm
IGxvYWRNYWNybyhuYW1lKToKKyAgICBvcCA9IG9wY29kZXNbbmFtZV0KKyAgICByZXR1cm4gIiIi
CisgICAgY2FzZSBMb2FkT3BUeXBlOjoiIiIgKyB0b0NwcChuYW1lKSArICIiIjogeworICAgICAg
ICBpZiAocG9pbnRlciAhPSAiIiIgKyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIp
IHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZyhcIiIiIiArIG5hbWUg
KyAiIiIgZXhwZWN0cyB0aGUgcG9pbnRlciB0byBiZSBvZiB0eXBlOiAiLCB0b1N0cmluZygiIiIg
KyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIpLCAiIGJ1dCBnb3QgYSB2YWx1ZSB3
aXRoIHR5cGU6ICIsIHRvU3RyaW5nKHBvaW50ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9ICIiIiArIGNwcFR5cGUob3BbInJldHVy
biJdWzBdKSArICIiIjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSIiIgorCisKK2RlZiBz
dG9yZU1hY3JvKG5hbWUpOgorICAgIG9wID0gb3Bjb2Rlc1tuYW1lXQorICAgIHJldHVybiAiIiIK
KyAgICBjYXNlIFN0b3JlT3BUeXBlOjoiIiIgKyB0b0NwcChuYW1lKSArICIiIjogeworICAgICAg
ICBpZiAocG9pbnRlciAhPSAiIiIgKyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIp
IHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZyhcIiIiIiArIG5hbWUg
KyAiIiIgZXhwZWN0cyB0aGUgcG9pbnRlciB0byBiZSBvZiB0eXBlOiAiLCB0b1N0cmluZygiIiIg
KyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIpLCAiIGJ1dCBnb3QgYSB2YWx1ZSB3
aXRoIHR5cGU6ICIsIHRvU3RyaW5nKHBvaW50ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2YWx1ZSAhPSAiIiIgKyBjcHBUeXBlKG9wWyJw
YXJhbWV0ZXIiXVsxXSkgKyAiIiIpIHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFr
ZVN0cmluZyhcIiIiIiArIG5hbWUgKyAiIiIgZXhwZWN0cyB0aGUgdmFsdWUgdG8gYmUgb2YgdHlw
ZTogIiwgdG9TdHJpbmcoIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwg
IiBidXQgZ290IGEgdmFsdWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyh2YWx1ZSkpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfSIiIgorCisKK3VuYXJ5Q2FzZXMgPSAiIi5qb2luKFtvcCBmb3Igb3AgaW4gd2FzbS5vcGNv
ZGVJdGVyYXRvcihpc1VuYXJ5LCB1bmFyeU1hY3JvKV0pCitiaW5hcnlDYXNlcyA9ICIiLmpvaW4o
W29wIGZvciBvcCBpbiB3YXNtLm9wY29kZUl0ZXJhdG9yKGlzQmluYXJ5LCBiaW5hcnlNYWNybyld
KQorbG9hZENhc2VzID0gIiIuam9pbihbb3AgZm9yIG9wIGluIHdhc20ub3Bjb2RlSXRlcmF0b3Io
bGFtYmRhIG9wOiBvcFsiY2F0ZWdvcnkiXSA9PSAibWVtb3J5IiBhbmQgbGVuKG9wWyJyZXR1cm4i
XSkgPT0gMSwgbG9hZE1hY3JvKV0pCitzdG9yZUNhc2VzID0gIiIuam9pbihbb3AgZm9yIG9wIGlu
IHdhc20ub3Bjb2RlSXRlcmF0b3IobGFtYmRhIG9wOiBvcFsiY2F0ZWdvcnkiXSA9PSAibWVtb3J5
IiBhbmQgbGVuKG9wWyJyZXR1cm4iXSkgPT0gMCwgc3RvcmVNYWNybyldKQorCitjb250ZW50cyA9
IHdhc20uaGVhZGVyICsgIiIiCisvLyBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gYmUgaW5saW5l
ZCBieSBXYXNtVmFsaWRhdGUuY3BwIG9ubHkhIEl0IHNob3VsZCBub3QgYmUgaW5jbHVkZWQgZWxz
ZXdoZXJlLgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworYm9vbCBWYWxpZGF0ZTo6dW5hcnlPcChV
bmFyeU9wVHlwZSBvcCwgRXhwcmVzc2lvblR5cGUgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQpCit7CisgICAgc3dpdGNoIChvcCkgeworIiIiICsgdW5hcnlDYXNlcyArICIiIgorICAgIH0K
K30KKworYm9vbCBWYWxpZGF0ZTo6YmluYXJ5T3AoQmluYXJ5T3BUeXBlIG9wLCBFeHByZXNzaW9u
VHlwZSBsZWZ0LCBFeHByZXNzaW9uVHlwZSByaWdodCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkK
K3sKKyAgICBzd2l0Y2ggKG9wKSB7CisiIiIgKyBiaW5hcnlDYXNlcyArICIiIgorICAgIH0KK30K
KworYm9vbCBWYWxpZGF0ZTo6bG9hZChMb2FkT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2lu
dGVyLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50MzJfdCkKK3sKKyAgICBzd2l0Y2ggKG9w
KSB7CisiIiIgKyBsb2FkQ2FzZXMgKyAiIiIKKyAgICB9Cit9CisKK2Jvb2wgVmFsaWRhdGU6OnN0
b3JlKFN0b3JlT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlw
ZSB2YWx1ZSwgdWludDMyX3QpCit7CisgICAgc3dpdGNoIChvcCkgeworIiIiICsgc3RvcmVDYXNl
cyArICIiIgorICAgIH0KK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KKworI2VuZGlm
IC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKKworIiIiCisKK3dhc21WYWxpZGF0ZUlubGluZXNIRmls
ZS53cml0ZShjb250ZW50cykKK3dhc21WYWxpZGF0ZUlubGluZXNIRmlsZS5jbG9zZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293576</attachid>
            <date>2016-11-01 13:06:06 -0700</date>
            <delta_ts>2016-11-01 13:08:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161707-20161101130208.patch</filename>
            <type>text/plain</type>
            <size>107444</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
Mjg3YjczYTM4MjBlY2YxYmIyYzY5YjNjN2YzMGU4MGU4YWEzOGU1Li5jZDY0MTBiN2VlZDM5NTMy
NDkwYjdmYjViOGNlNWIyNDIwYWEzMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw3MCBAQAogMjAxNi0xMC0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KIAorICAgICAgICBBZGQgYSBXQVNNIGZ1bmN0aW9uIHZhbGlkYXRvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTcwNworCisgICAgICAg
IFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIFRoaXMgaXMgYSBuZXcgdGVtcGxh
dGUgc3BlY2lhbGl6YXRpb24gb2YgdGhlIFdhc20gRnVuY3Rpb25QYXJzZXIgY2xhc3MuICBJbnN0
ZWFkIG9mIGhhdmluZworICAgICAgICB0aGUgRnVuY3Rpb25QYXJzZXIgdHJhY2sgd2hhdCBCMyB2
YWx1ZXMgZWFjaCBzdGFjayBlbnRyeSByZWZlcnMgdG8gdGhlIHZhbGlkYXRvciBoYXMgZWFjaAor
ICAgICAgICBlbnRyeSByZWZlciB0byB0aGUgdHlwZSBvZiB0aGUgc3RhY2sgZW50cnkuIEFkZGl0
aW9uYWxseSwgdGhlIGNvbnRyb2wgc3RhY2sgdHJhY2tzIHdoYXQgdHlwZQorICAgICAgICBvZiBi
bG9jayB0aGUgb2JqZWN0IGlzIGFuZCB3aGF0IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgYmxvY2sg
aXMuIFRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9ucworICAgICAgICBmb3IgdW5hcnksIGJpbmFyeSwg
YW5kIG1lbW9yeSBvcGVyYXRpb25zIGFyZSBhdXRvZ2VuZXJhdGVkIGJ5IHRoZQorICAgICAgICBn
ZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkgc2NyaXB0LgorCisgICAgICAgIFRo
ZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBpc3N1ZSB3aXRoIHZhbGlkYXRpbmcgdGhhdCB3aWxsIGJl
IGFkZHJlc3NlZCBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4KKyAgICAgICAgMSkgV2UgbmVlZCB0byBo
YW5kbGUgcmVzdWx0IHR5cGVzIGZyb20gYmFzaWMgYmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTAwCisgICAgICAgIDIpIFdlIG5lZWQgdG8gaGFuZGxl
IHBvcHBpbmcgdGhpbmdzIGZyb20gc3RhY2tzIHdoZW4gdGhleSBkb24ndCBleGlzdC4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDI3NQorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHRlc3RX
YXNtLmNwcDoKKyAgICAgICAgKHJ1bldhc21UZXN0cyk6CisgICAgICAgICogd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHA6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0LmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0M6Oldhc206OnRvU3RyaW5nKToKKyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQu
aDoKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlVW5yZWFjaGFibGVFeHBy
ZXNzaW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21QbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGxhbjo6UGxhbik6CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OkNvbnRyb2xEYXRhOjpDb250cm9sRGF0YSk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpDb250cm9sRGF0YTo6ZHVtcCk6CisgICAg
ICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpDb250cm9sRGF0YTo6dHlwZSk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbGlkYXRlOjpDb250cm9sRGF0YTo6c2lnbmF0dXJlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6VmFsaWRhdGU6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFs
aWRhdGU6OmlzQ29udGludWF0aW9uUmVhY2hhYmxlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFs
aWRhdGU6OmVycm9yTWVzc2FnZSk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpWYWxp
ZGF0ZSk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRBcmd1bWVudHMpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkTG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNt
OjpWYWxpZGF0ZTo6Z2V0TG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6c2V0
TG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkQmxvY2spOgorICAgICAg
ICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkTG9vcCk6CisgICAgICAgIChKU0M6Oldhc206OlZh
bGlkYXRlOjphZGRJZik6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRFbHNlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFJldHVybik6CisgICAgICAgIChKU0M6
Oldhc206OlZhbGlkYXRlOjphZGRCcmFuY2gpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0
ZTo6ZW5kQmxvY2spOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkQ2FsbCk6Cisg
ICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjp1bmlmeSk6CisgICAgICAgIChKU0M6Oldhc206
OlZhbGlkYXRlOjpkdW1wKToKKyAgICAgICAgKEpTQzo6V2FzbTo6dmFsaWRhdGVGdW5jdGlvbik6
CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUuaDogQWRkZWQuCisgICAgICAgICogd2FzbS9n
ZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHk6IEFkZGVkLgorICAgICAgICAoY3Bw
VHlwZSk6CisgICAgICAgICh0b0NwcCk6CisgICAgICAgICh1bmFyeU1hY3JvKToKKyAgICAgICAg
KGJpbmFyeU1hY3JvKToKKyAgICAgICAgKGxvYWRNYWNybyk6CisgICAgICAgIChzdG9yZU1hY3Jv
KToKKworMjAxNi0xMC0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
KwogICAgICAgICBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZyb20gd2FzbS5qc29uIHNob3VsZCBiZSBp
biBkZXJpdmVkIHNvdXJjZXMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjQxNTIKIApAQCAtMTA3MSw3ICsxMTM2LDcgQEAKIAogICAgICAgICBBc3lu
YyBmdW5jdGlvbnMgZ2VuZXJhdGUgYnl0ZWNvZGUgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5n
LCB3aGljaCBpcwogICAgICAgICBoaWdobHkgZGVwZW5kZW50IG9uIHRoZSBHZW5lcmF0b3IgaW1w
bGVtZW50YXRpb246Ci0gICAgICAgIAorCiAgICAgICAgIGBgYAogICAgICAgICAvLyBCZWZvcmUg
dHJhbnNsYXRpb246CiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGFzeW5jZm4oKSB7fQpAQCAtMTA5
Myw5ICsxMTU4LDkgQEAKICAgICAgICAgQXdhaXQgRXhwcmVzc2lvbnMgYXJlIGVxdWl2YWxlbnQg
dG8gbm9uLWRlbGVnYXRpbmcgWWllbGQgZXhwcmVzc2lvbnMsIGFuZCBlbWl0IGlkZW50aWNhbCBi
eXRlY29kZS4KIAogICAgICAgICBUaGVyZSBhcmUgc29tZSBjYXZlYXRzIHRvIGJlIGFkZHJlc3Nl
ZCBsYXRlcjoKLSAgICAgICAgCisKICAgICAgICAgMSkgdGhlIGBvcF90b190aGlzYCBpcyBhbHdh
eXMgcGVyZm9ybWVkLCB3aGV0aGVyIGl0J3MgdXNlZCBvciBub3QsIGxpa2Ugbm9ybWFsIGdlbmVy
YXRvcnMuIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTg2KQot
ICAgICAgICAKKwogICAgICAgICAyKSBmb3IgYXN5bmMgYXJyb3cgZnVuY3Rpb25zLCB0aGUgaG9t
ZSBvYmplY3QgaXMgYWx3YXlzIHN0b3JlZCBvbiB0aGUgImJvZHkiIGZ1bmN0aW9uLCByZWdhcmRs
ZXNzIG9mIHdoZXRoZXIgaXQncyBuZWVkZWQgb3IKICAgICAgICAgbm90LCBmb3IgdGhlIHNhbWUg
cmVhc29uIGFzICMxIChhbmQgc2hvdWxkIGFsc28gYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTg2KQogCkBAIC0xMjAzLDcgKzEy
NjgsNyBAQAogICAgICAgICAgICBGb3IgbGF6aWx5IHJlaWZpZWQgcHJvcGVydGllcywgSlNGdW5j
dGlvbjo6cHV0KCkgaW1wbGVtZW50cyBjb21wbGV4IGNvbmRpdGlvbmFsCiAgICAgICAgICAgIGJl
aGF2aW9yIHRoYXQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIHNldCBvZiBjYWNoZWFibGUgcHV0IG9w
ZXJhdGlvbnMgYWJvdmUuCiAgICAgICAgICAgIEhlbmNlLCBpdCBzaG91bGQgbm90IGNsYWltIHRo
YXQgdGhlIHByb3BlcnR5IHB1dCBpcyBjYWNoZWFibGUuCi0gICAgCisKICAgICAgICAgMi4gQ2Fj
aGVhYmxlIHB1dHMgYXJlIGNhY2hlZCBvbiB0aGUgb3JpZ2luYWwgc3RydWN0dXJlIG9mIHRoZSBv
YmplY3QgYmVmb3JlIHRoZQogICAgICAgICAgICBwdXQgb3BlcmF0aW9uLgogCkBAIC0xNDYxLDcg
KzE1MjYsNyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzOTQ3CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCi0gICAgICAg
IAorCiAgICAgICAgIEkgd2FudCB0byBpbnRyb2R1Y2UgYW5vdGhlciBIZWFwVGltZXIuIFByaW9y
IHRvIHRoaXMgY2hhbmdlLCB0aGF0IHdvdWxkIGhhdmUgbWVhbnQgd3JpdGluZwogICAgICAgICBl
eGFjdCBjb3BpZXMgb2YgdGhhdCB0aW1lcidzIGxvZ2ljIGZvciBlYWNoIHBsYXRmb3JtIHRoYXQg
aGFzIGEgSGVhcFRpbWVyIChDRiwgR0xJQiwgYW5kCiAgICAgICAgIEVGTCkuIFRoYXQgbG9naWMg
d291bGQgaW4gdHVybiBiZSBhIGR1cGxpY2F0ZSBvZiB0aGUgbG9naWMgYWxyZWFkeSBwcmVzZW50
IGluCkBAIC0xNDY5LDEzICsxNTM0LDEzIEBACiAgICAgICAgIG93biBjb2RlIGZvciBzY2hlZHVs
aW5nIHRpbWVycywgc28gYSBuZXcgc3ViY2xhc3Mgd291bGQgaGF2ZSB0byBkdXBsaWNhdGUgdGhh
dCBjb2RlLiBUaGVuLAogICAgICAgICB0byBhZGQgaW5zdWx0IHRvIGluanVyeSwgdGhlIFVTRShD
RikgdmVyc2lvbiBvZiBIZWFwVGltZXIgd291bGQgaGF2ZSB0byBoYXZlIGFuIGV4dHJhIGNhc2UK
ICAgICAgICAgZm9yIHRoYXQgbmV3IHN1YmNsYXNzIHNpbmNlIGl0IGRvZXNuJ3QgdXNlIHZpcnR1
YWwgbWV0aG9kcyBlZmZlY3RpdmVseS4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBjaGFuZ2Vz
IEhlYXBUaW1lciBvbiBVU0UoQ0YpIHRvIGtub3cgdG8gZ2V0IGl0cyBydW5sb29wIGZyb20gSGVh
cCBhbmQgdG8gdXNlIHZpcnR1YWwKICAgICAgICAgbWV0aG9kcyBlZmZlY3RpdmVseSBzbyB0aGF0
IGl0IGRvZXNuJ3QgaGF2ZSB0byBrbm93IGFib3V0IGFsbCBvZiBpdHMgc3ViY2xhc3Nlcy4KLSAg
ICAgICAgCisKICAgICAgICAgVGhpcyBhbHNvIG1vdmVzIEluY3JlbWVudGFsU3dlZXBlcidzIGNv
ZGUgZm9yIHNjaGVkdWxpbmcgdGltZXJzIGludG8gSGVhcFRpbWVyLiBUaGlzIG1lYW5zCiAgICAg
ICAgIHRoYXQgZnV0dXJlIHN1YmNsYXNzZXMgb2YgSGVhcFRpbWVyIGNvdWxkIHNpbXBseSB1c2Ug
dGhhdCBsb2dpYy4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBrZWVwcyBjaGFuZ2VzIHRvIEdD
QWN0aXZpdHlDYWxsYmFjayB0byBhIG1pbmltdW0uIEl0IHN0aWxsIGhhcyBhIGxvdCBvZgogICAg
ICAgICBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCBJJ20gbm90IHN1cmUgdGhhdCB0aGlzIGNv
ZGUgY2FuIGJlIHRyaXZpYWxseSBkZWR1cGxpY2F0ZWQgc2luY2UKICAgICAgICAgdGhhdCBjb2Rl
IGhhcyBtb3JlIHF1aXJrcy4gVGhhdCdzIGZpbmUgZm9yIG5vdywgc2luY2UgSSBtYWlubHkganVz
dCBuZWVkIGEgc2FuZSB3YXkgb2YKQEAgLTIxMDQsMTQgKzIxNjksMTQgQEAKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzgwMgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KLSAgICAgICAgCisKICAgICAgICAgSlNDIG9mdGVuIHN1
ZmZlcnMgZnJvbSB0aGUgaW5saW5lIGNhcmdvIGN1bHQsIGFuZCBIZWFwIGlzIGEgcHJpbWUgZXhh
bXBsZS4gVGhpcyBvdXRsaW5lcyBhCiAgICAgICAgIGJ1bmNoIG9mIEhlYXAgbWV0aG9kcyB0aGF0
IGFyZSBlaXRoZXIgYWxyZWFkeSB2ZXJ5IGJpZywgb3IgY2FsbCBvdXQtb2YtbGluZSBtZXRob2Rz
LCBvciBjYWxsCiAgICAgICAgIHZlcnkgYmlnIG1ldGhvZHMsIG9yIGFyZSBub3QgY2FsbGVkIG9m
dGVuIGVub3VnaCBmb3IgaW5saW5pbmcgdG8gbWF0dGVyLgotICAgICAgICAKKwogICAgICAgICBU
aGlzIHNpbXBsaWZpZXMgY29uY3VycmVudCBHQyB3b3JrIGJlY2F1c2UgSSdtIHNvIHRpcmVkIG9m
IHJlY29tcGlsaW5nIHRoZSB3b3JsZCB3aGVuIEkgdG91Y2gKICAgICAgICAgb25lIG9mIHRoZXNl
IG1ldGhvZHMuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgbG9va3MgdG8gYmUgcGVyZi1uZXV0
cmFsLgogCiAgICAgICAgICogaGVhcC9IZWFwLmNwcDoKQEAgLTI0ODEsNyArMjU0Niw3IEBACiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM3MzgKIAog
ICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KLSAgICAgICAgCisKICAgICAgICAg
V2UgbmVlZCB0byBrbm93IGlmIHdlJ3JlIGN1cnJlbnRseSBpbiBhbiBhbGxvY2F0aW9uIHNsb3cg
cGF0aCwgc28gdGhhdCBjb2RlIGNhbiBhc3NlcnQgdGhhdAogICAgICAgICBpdCdzIG5vdCBiZWlu
ZyB1c2VkIGZyb20gaW5zaWRlIGEgZGVzdHJ1Y3RvciB0aGF0IHJ1bnMgZHVyaW5nIGEgc3dlZXAu
IFdlIG5lZWQgdG8ga25vdyBpZgogICAgICAgICB3ZSdyZSBjdXJyZW50bHkgY29sbGVjdGluZywg
YmVjYXVzZSBzb21lIGNvZGUgYmVoYXZlcyBkaWZmZXJlbnRseSBkdXJpbmcgY29sbGVjdGlvbiwg
YW5kCkBAIC0yNDg5LDcgKzI1NTQsNyBAQAogICAgICAgICBydW5zIGR1cmluZyBtYXJraW5nLiBJ
ZiB3ZSBhcmUgY29sbGVjdGluZywgd2UgbmVlZCB0byBrbm93IGlmIGl0J3MgYW4gZWRlbiBjb2xs
ZWN0aW9uIG9yIGEKICAgICAgICAgZnVsbCBjb2xsZWN0aW9uLiBJZiB3ZSBhcmUgcmVxdWVzdGlu
ZyBhIGNvbGxlY3Rpb24sIHdlIG5lZWQgdG8ga25vdyBpZiB3ZSdyZSByZXF1ZXN0aW5nIGFuCiAg
ICAgICAgIGVkZW4gY29sbGVjdGlvbiwgYSBmdWxsIGNvbGxlY3Rpb24sIG9yIGFueSBraW5kIG9m
IGNvbGxlY3Rpb24uCi0gICAgICAgIAorCiAgICAgICAgIFByaW9yIHRvIHRoaXMgY2hhbmdlLCB5
b3Ugd291bGQgcmVhc29uIGFib3V0IGFsbCBvZiB0aGVzZSB0aGluZ3MgdXNpbmcgdGhlIEhlYXBP
cGVyYXRpb24uIEl0CiAgICAgICAgIGhhZCB0aGUgZm9sbG93aW5nIHN0YXRlczogTm9PcGVyYXRp
b24sIEFsbG9jYXRpb24sIEZ1bGxDb2xsZWN0aW9uLCBFZGVuQ29sbGVjdGlvbiwgYW5kCiAgICAg
ICAgIEFueUNvbGxlY3Rpb24uIE5vT3BlcmF0aW9uIHZlcnN1cyBBbGxvY2F0aW9uIHdhcyBwcmlt
YXJpbHkgZm9yIGFzc2VydGluZyB0aGF0IHN3ZWVwIGRpZG4ndApAQCAtMjQ5Nyw3ICsyNTYyLDcg
QEAKICAgICAgICAgd291bGQgZXZlbiB1c2UgSGVhcE9wZXJhdGlvbiBpbiBwbGFjZXMgd2hlcmUg
d2Uga25ldyB0aGF0IGl0IGNvdWxkIG9ubHkgYmUgZWl0aGVyIEZ1bGwgb3IKICAgICAgICAgRWRl
biwgYmVjYXVzZSB3ZSBqdXN0IG5lZWRlZCBhIHZhcmlhYmxlIHRvIHRlbGwgdXMgd2hpY2ggZ2Vu
ZXJhdGlvbiB3ZSB3ZXJlIHRhbGtpbmcgYWJvdXQuCiAgICAgICAgIEl0IHdhcyBhbGwgdmVyeSBj
b25mdXNpbmcuCi0gICAgICAgIAorCiAgICAgICAgIFdoZXJlIGl0IGNvbXBsZXRlbHkgYnJlYWtz
IGRvd24gaXMgdGhlIGZhY3QgdGhhdCBhIGNvbmN1cnJlbnQgR0MgaGFzIHR3byBsb2dpY2FsIHRo
cmVhZHMsIHRoZQogICAgICAgICBtdXRhdG9yIGFuZCB0aGUgY29sbGVjdG9yLCB3aGljaCBjYW4g
Y2hhbmdlIHN0YXRlIGluZGVwZW5kZW50bHkuIFRoZSBtdXRhdG9yIGNhbiBiZQogICAgICAgICBh
bGxvY2F0aW5nLiBJdCBjYW4gYWxzbyBiZSBkb2luZyBzb21lIHdvcmsgdG8gaGVscCB0aGUgR0Mu
IFRoYXQncyB0aHJlZSBzdGF0ZXM6IHJ1bm5pbmcsCkBAIC0yNTA3LDEwICsyNTcyLDEwIEBACiAg
ICAgICAgIHN0YXRlczogZXZlcnkgY29tYmluYXRpb24gb2YgbXV0YXRvciBydW5uaW5nLCBhbGxv
Y2F0aW5nLCBvciBoZWxwaW5nIEdDLCBjcm9zc2VkIHdpdGgKICAgICAgICAgY29sbGVjdG9yIG5v
dCBydW5uaW5nLCBydW5uaW5nIGVkZW4sIG9yIHJ1bm5pbmcgZnVsbC4gU28sIHRoaXMgY2hhbmdl
IGRlY291cGxlcyBtdXRhdG9yIHN0YXRlCiAgICAgICAgIGZyb20gY29sbGVjdG9yIHN0YXRlIGFu
ZCB1c2VzIHR3byBzZXBhcmF0ZSBmaWVsZHMgd2l0aCB0d28gZGlmZmVyZW50IHR5cGVzLgotICAg
ICAgICAKKwogICAgICAgICBNdXRhdG9yIHN0YXRlIGlzIGRlc2NyaWJlZCB1c2luZyBNdXRhdG9y
U3RhdGUsIHdoaWNoIGNhbiBiZSBlaXRoZXIgTXV0YXRvclN0YXRlOjpSdW5uaW5nLAogICAgICAg
ICBNdXRhdG9yU3RhdGU6OkFsbG9jYXRpbmcsIG9yIE11dGF0b3JTdGF0ZTo6SGVscGluZ0dDLgot
ICAgICAgICAKKwogICAgICAgICBDb2xsZWN0b3Igc3RhdGUgaXMgZGVzY3JpYmVkIHVzaW5nIE9w
dGlvbmFsPENvbGxlY3Rpb25TY29wZT4uIENvbGxlY3Rpb25TY29wZSBkZXNjcmliZXMgaG93CiAg
ICAgICAgIGJpZyB0aGUgc2NvcGUgb2YgdGhlIGNvbGxlY3Rpb24gaXMsIGFuZCBpdCBjYW4gYmUg
ZWl0aGVyIENvbGxlY3Rpb25TY29wZTo6RWRlbiBvcgogICAgICAgICBDb2xsZWN0aW9uU2NvcGU6
OkZ1bGwuIElmIHRoZSBPcHRpb25hbCBpcyBOdWxsb3B0LCBpdCBtZWFucyB0aGF0IHdlIGFyZSBu
b3QgY29sbGVjdGluZy4gVGhpcwpAQCAtMjUxOSw3ICsyNTg0LDcgQEAKICAgICAgICAgd2FudCB0
byBrbm93IGFib3V0IHRoZSBnZW5lcmF0aW9uLiBBbHNvLCB3ZSBjYW4gdXNlIE51bGxvcHQgaW4g
bWV0aG9kcyB0aGF0IHJlcXVlc3QKICAgICAgICAgY29sbGVjdGlvbiwgd2hpY2ggdGhvc2UgbWV0
aG9kcyB0YWtlIHRvIG1lYW4gdGhhdCB0aGV5IGNhbiBydW4gYW55IGtpbmQgb2YgY29sbGVjdGlv
biAodGhlCiAgICAgICAgIG9sZCBBbnlDb2xsZWN0aW9uKS4KLSAgICAgICAgCisKICAgICAgICAg
QW5vdGhlciB1c2Ugb2YgSGVhcE9wZXJhdGlvbiB3YXMgdG8gYW5zd2VyIHF1ZXN0aW9ucyBhYm91
dCB3aGV0aGVyIHRoZSBjYWxsZXIgaXMgcnVubmluZyBhcwogICAgICAgICBwYXJ0IG9mIHRoZSBH
QyBvciBhcyBwYXJ0IG9mIHRoZSBtdXRhdG9yLiBPcHRpb25hbDxDb2xsZWN0aW9uU2NvcGU+IGRv
ZXMgbm90IGFuc3dlciB0aGlzLAogICAgICAgICBzaW5jZSBjb2RlIHRoYXQgcnVucyBpbiB0aGUg
bXV0YXRvciB3aGlsZSB0aGUgbXV0YXRvciBpcyBub3QgSGVscGluZ0dDIGF0IHRoZSBzYW1lIHRp
bWUgYXMKQEAgLTI1MzYsNyArMjYwMSw3IEBACiAgICAgICAgIGNoZWNrcyBsb29rIGZvciBHQ1Ro
cmVhZFR5cGU6OkhlbHBlci4gVGhlICJzaG91bGQgSSBydW4gYXMgbXV0YXRvciIgcXVlcnkgY2Fu
IG5vdyBiZSBhbnN3ZXJlZAogICAgICAgICBieSBjaGVja2luZyB3aXRoIG1heUJlR0NUaHJlYWQs
IHdoaWNoIHJldHVybnMgT3B0aW9uYWw8R0NUaHJlYWRUeXBlPjsgaWYgZW5nYWdlZCwgdGhlbiBy
dW4gYXMKICAgICAgICAgR0MsIGVsc2UgcnVuIGFzIEdDIGlmIE11dGF0b3JTdGF0ZSBpcyBIZWxw
aW5nR0MsIGVsc2UgcnVuIGFzIG11dGF0b3IuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgZG9l
c24ndCBjaGFuZ2UgdGhlIHdheSB0aGF0IHRoZSBHQyBiZWhhdmVzLCBidXQgaXQgZG9lcyBjaGFu
Z2UgaG93IHRoZSBHQyByZXByZXNlbnRzIGEKICAgICAgICAgZnVuZGFtZW50YWwgcGllY2Ugb2Yg
c3RhdGUuIFNvLCBpdCdzIGEgYmlnIGNoYW5nZS4gSXQgc2hvdWxkIGJlIHBlcmYtbmV1dHJhbCAo
c3RpbGwgdGVzdGluZykuCiAKQEAgLTMwOTYsMTAgKzMxNjEsMTAgQEAKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzY4NgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgotICAgICAgICAKKwogICAgICAgICBDaGFuZ2UgdGhlIEpJ
VFdvcmtsaXN0IHRvIHVzZSBBdXRvbWF0aWNUaHJlYWQsIHNvIHRoYXQgdGhlIEJhc2VsaW5lIEpJ
VCdzIGNvbmN1cnJlbnQKICAgICAgICAgY29tcGlsZXIgdGhyZWFkIHNodXRzIGRvd24gYXV0b21h
dGljYWxseSBhZnRlciBpbmFjdGl2aXR5LgotICAgICAgICAKKwogICAgICAgICBXaXRoIHRoaXMg
Y2hhbmdlLCBhbGwgb2YgSlNDJ3MgdGhyZWFkcyBzaHV0IGRvd24gYXV0b21hdGljYWxseS4gSWYg
eW91IHJ1biBzcGxheSBmb3IgYSBmZXcKICAgICAgICAgc2Vjb25kcyAod2hpY2ggZmlyZXMgdXAg
YWxsIHRocmVhZHMgLSBjb21waWxlciBhbmQgR0MpIGFuZCB0aGVuIGdvIHRvIHNsZWVwIGZvciBh
IHNlY29uZCwKICAgICAgICAgeW91J2xsIHNlZSB0aGF0IHRoZSBvbmx5IHRocmVhZHMgbGVmdCBh
cmUgdGhlIG1haW4gdGhyZWFkIGFuZCB0aGUgYm1hbGxvYyB0aHJlYWQuCkBAIC0zMTQyLDE2ICsz
MjA3LDE2IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM2MTUKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAgICAgICAgCisKICAg
ICAgICAgQXV0b21hdGljVGhyZWFkIGlzIGEgbmV3IGZlYXR1cmUgaW4gV1RGIHRoYXQgYWxsb3dz
IHlvdSB0byBlYXNpbHkgY3JlYXRlIHdvcmtlciB0aHJlYWRzIHRoYXQKICAgICAgICAgc2h1dCBk
b3duIGF1dG9tYXRpY2FsbHkuIFRoaXMgY2hhbmdlcyBERkc6OldvcmtsaXN0IHRvIHVzZSBBdXRv
bWF0aWNUaHJlYWQsIHNvIHRoYXQgaXRzCiAgICAgICAgIHRocmVhZHMgc2h1dCBkb3duIGF1dG9t
YXRpY2FsbHksIHRvby4gVGhpcyBoYXMgdGhlIHBvdGVudGlhbCB0byBzYXZlIGEgbG90IG9mIG1l
bW9yeS4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyByZXF1aXJlZCBzb21lIGltcHJvdmVtZW50
cyB0byBBdXRvbWF0aWNUaHJlYWQ6IFdvcmtsaXN0IGxpa2VzIHRvIGJlIGFibGUgdG8ga2VlcCBz
dGF0ZQogICAgICAgICBhcm91bmQgZm9yIHRoZSB3aG9sZSBsaWZldGltZSBvZiBhIHRocmVhZCwg
YW5kIHNvIGl0IGxpa2VzIGtub3dpbmcgd2hlbiB0aHJlYWRzIGFyZSBib3JuIGFuZAogICAgICAg
ICB3aGVuIHRoZXkgZGllLiBJIGFkZGVkIHZpcnR1YWwgbWV0aG9kcyBmb3IgdGhhdC4gQWxzbywg
V29ya2xpc3QgdXNlcyBub3RpZnlPbmUoKSBzbyBJIGFkZGVkCiAgICAgICAgIHRoYXQsIHRvby4K
LSAgICAgICAgCisKICAgICAgICAgVGhpcyBsb29rcyB0byBiZSBwZXJmLW5ldXRyYWwuCiAKICAg
ICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5jcHA6CkBAIC0zMzE1LDkgKzMzODAsOSBAQAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNTc2CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLSAgICAgICAgCisKICAgICAgICAgQWRk
ZWQgYSBzbGVlcFNlY29uZHMoKSBmdW5jdGlvbiwgd2hpY2ggbWFkZSBpdCBlYXNpZXIgZm9yIG1l
IHRvIHRlc3QgdGhpcyBjaGFuZ2UuCi0gICAgICAgIAorCiAgICAgICAgIFRoZSBXVEYgY2hhbmdl
cyBpbiB0aGlzIHBhdGNoIGNoYW5nZSBob3cgdGhlIEpTQyBHQyBtYW5hZ2VzIHRocmVhZHM6IHRo
ZSBHQyB0aHJlYWRzIHdpbGwgbm93CiAgICAgICAgIHNodXQgZG93biBhdXRvbWF0aWNhbGx5IGFm
dGVyIDEgc2Vjb25kIG9mIGluYWN0aXZpdHkuIE1heWJlIHRoaXMgd2lsbCBzYXZlIHNvbWUgbWVt
b3J5LgogCkBAIC0zMzQ1LDU2ICszNDEwLDU2IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzNzEKIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZnJleSBHYXJlbiBhbmQgU2FhbSBCYXJhdGkuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgYWRk
cyBhIG5ldyBraW5kIG9mIGNhbGwgaW5saW5lIGNhY2hlIGZvciB3aGVuIHRoZSBERkcgY2FuIHBy
b3ZlIHdoYXQgdGhlIGNhbGxlZQogICAgICAgICBleGVjdXRhYmxlIGlzLiBJbiB0aG9zZSBjYXNl
cywgd2UgY2FuIHNraXAgc29tZSBvZiB0aGUgdGhpbmdzIHRoYXQgdGhlIHRyYWRpdGlvbmFsIGNh
bGwgSUMKICAgICAgICAgd291bGQgZG86Ci0gICAgICAgIAorCiAgICAgICAgIC0gTm8gbmVlZCB0
byBjaGVjayB3aG8gdGhlIGNhbGxlZSBpcy4KICAgICAgICAgLSBObyBuZWVkIHRvIGRvIGFyaXR5
IGNoZWNrcy4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBjYXNlIGlzbid0IGFzIHNpbXBsZSBh
cyBqdXN0IGVtaXR0aW5nIGEgY2FsbCBpbnN0cnVjdGlvbiBzaW5jZSB0aGUgY2FsbGVlIG1heSBu
b3QgYmUKICAgICAgICAgY29tcGlsZWQgYXQgdGhlIHRpbWUgdGhhdCB0aGUgY2FsbGVyIGlzIGNv
bXBpbGVkLiBTbywgd2UgbmVlZCBsYXp5IHJlc29sdXRpb24uIEFsc28sIHRoZQogICAgICAgICBj
YWxsZWUgbWF5IGJlIGpldHRpc29uZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgY2FsbGVyLCBzbyB3
ZSBuZWVkIHRvIGJlIGFibGUgdG8gcmV2ZXJ0IHRoZQogICAgICAgICBjYWxsIHRvIGFuIHVubGlu
a2VkIHN0YXRlLiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCBhbG1vc3QgYWxsIG9mIHRoZSB0aGlu
Z3MgdGhhdAogICAgICAgICBDYWxsTGlua0luZm8gaGFzLiBDYWxsTGlua0luZm8gYWxyZWFkeSBr
bm93cyBhYm91dCBkaWZmZXJlbnQga2luZHMgb2YgY2FsbHMuIFRoaXMgcGF0Y2gKICAgICAgICAg
dGVhY2hlcyBpdCBhYm91dCBuZXcgIkRpcmVjdCIgY2FsbCB0eXBlcy4KLSAgICAgICAgCisKICAg
ICAgICAgVGhlIGRpcmVjdCBub24tdGFpbCBjYWxsIElDIGxvb2tzIGxpa2UgdGhpczoKLSAgICAg
ICAgCisKICAgICAgICAgICAgICAgICBzZXQgdXAgYXJndW1lbnRzCiAgICAgICAgICAgICBGYXN0
UGF0aDoKICAgICAgICAgICAgICAgICBjYWxsIF9TbG93UGF0aAogICAgICAgICAgICAgICAgIGxl
YSAtRnJhbWVTaXplKCVyYnApLCAlcnNwCi0gICAgICAgICAgICAKKwogICAgICAgICAgICAgU2xv
d1BhdGg6CiAgICAgICAgICAgICAgICAgcG9wCiAgICAgICAgICAgICAgICAgY2FsbCBvcGVyYXRp
b25MaW5rRGlyZWN0Q2FsbAogICAgICAgICAgICAgICAgIGNoZWNrIGV4Y2VwdGlvbgogICAgICAg
ICAgICAgICAgIGptcCBGYXN0UGF0aAotICAgICAgICAKKwogICAgICAgICBUaGUgam9iIG9mIG9w
ZXJhdGlvbkxpbmtEaXJlY3RDYWxsIGlzIHRvIGxpbmsgdGhlIGZhc3QgcGF0aCdzIGNhbGwgZW50
cnlwb2ludCBvZiB0aGUgY2FsbGVlLgogICAgICAgICBUaGlzIG1lYW5zIHRoYXQgaW4gc3RlYWR5
IHN0YXRlLCBhIGNhbGwgaXMganVzdCB0aGF0OiBhIGNhbGwuIFRoZXJlIGFyZSBubyBleHRyYSBi
cmFuY2hlcyBvcgogICAgICAgICBjaGVja3MuCi0gICAgICAgIAorCiAgICAgICAgIFRoZSBkaXJl
Y3QgdGFpbCBjYWxsIElDIGlzIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQgYmVjYXVzZSB0aGUgYWN0
IG9mIHNldHRpbmcgdXAgYXJndW1lbnRzCiAgICAgICAgIGRlc3Ryb3lzIG91ciBmcmFtZSwgd2hp
Y2ggd291bGQgcHJldmVudCB1cyBmcm9tIGJlaW5nIGFibGUgdG8gdGhyb3cgYW4gZXhjZXB0aW9u
IGlmIHdlCiAgICAgICAgIGZhaWxlZCB0byBjb21waWxlIHRoZSBjYWxsZWUuIFNvLCBkaXJlY3Qg
dGFpbCBjYWxsIElDcyBsb29rIGxpa2UgdGhpczoKLSAgICAgICAgCisKICAgICAgICAgICAgICAg
ICBqbXAgX1Nsb3dQYXRoCiAgICAgICAgICAgICBGYXN0UGF0aDoKICAgICAgICAgICAgICAgICBz
ZXQgdXAgYXJndW1lbnRzCiAgICAgICAgICAgICAgICAgam1wIDAgLy8gcGF0Y2ggdG8ganVtcCB0
byBjYWxsZWUKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBTbG93UGF0aDoKICAgICAgICAg
ICAgICAgICBzaWxlbnQgc3BpbGwKICAgICAgICAgICAgICAgICBjYWxsIG9wZXJhdGlvbkxpbmtE
aXJlY3RDYWxsCiAgICAgICAgICAgICAgICAgc2lsZW50IGZpbGwKICAgICAgICAgICAgICAgICBj
aGVjayBleGNlcHRpb24KICAgICAgICAgICAgICAgICBqbXAgRmFzdFBhdGgKLSAgICAgICAgCisK
ICAgICAgICAgVGhlIGptcCB0byB0aGUgc2xvdyBwYXRoIGlzIHBhdGNoZWQgdG8gYmUgYSBmYWxs
LXRocm91Z2ggam1wIHdoZW4gd2UgbGluayB0aGUgY2FsbC4KLSAgICAgICAgCisKICAgICAgICAg
RGlyZWN0IGNhbGxzIG1lYW4gbGVzcyBjb2RlIGF0IGNhbGwgc2l0ZXMsIGZld2VyIGNoZWNrcyBv
biB0aGUgc3RlYWR5IHN0YXRlIGNhbGwgZmFzdCBwYXRoLAogICAgICAgICBhbmQgbm8gbmVlZCBm
b3IgYXJpdHkgZml4dXAuIFRoaXMgbG9va3MgbGlrZSBhIHNsaWdodCBzcGVlZC11cCAofjAuOCUp
IG9uIGJvdGggT2N0YW5lIGFuZAogICAgICAgICBBc21CZW5jaC4KQEAgLTM1NTUsMTUgKzM2MjAs
MTUgQEAKICAgICAgICAgU3BlY2lmaWMgaXRlbXMgd2hpY2ggZG8gbm90IGNvbnRhaW4gInByb3Rv
dHlwZSIgaW5jbHVkZSAobW9zdCkgYnVpbHQtaW4gZnVuY3Rpb25zIChzdWNoIGFzIE1hdGgucG93
KSwKICAgICAgICAgTWV0aG9kRGVmaW5pdGlvbnMgd2hpY2ggYXJlIG5vdCBlaXRoZXIgY2xhc3Mg
ImNvbnN0cnVjdG9yIiBtZXRob2RzIG9yIEdlbmVyYXRvck1ldGhvZHMsIEFzeW5jRnVuY3Rpb25z
LAogICAgICAgICBhbmQgQXJyb3dGdW5jdGlvbnMuCi0gICAgICAgIAorCiAgICAgICAgIEZvciBk
ZXRhaWxzLCBzZWUgdGhlIGZvbGxvd2luZyBzcGVjIHRleHQsIGFuZCB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIEdlbmVyYXRvck1ldGhvZCBldmFsdWF0aW9uIGFuZAogICAgICAgICB0aGUgZXZhbHVh
dGlvbiBvZiBvdGhlciBNZXRob2REZWZpbml0aW9uIGZvcm1zLgotICAgICAgICAKKwogICAgICAg
ICAtIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1ldGhvZC1kZWZpbml0aW9u
cy1ydW50aW1lLXNlbWFudGljcy1wcm9wZXJ0eWRlZmluaXRpb25ldmFsdWF0aW9uCiAgICAgICAg
IC0gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyb3ctZnVuY3Rpb24tZGVm
aW5pdGlvbnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgogICAgICAgICAtIGh0dHBzOi8v
dGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdC1hc3luY2F3YWl0LyNhc3luYy1mdW5jdGlvbi1pbnN0
YW5jZXMKICAgICAgICAgLSBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZW5l
cmF0b3ItZnVuY3Rpb24tZGVmaW5pdGlvbnMtcnVudGltZS1zZW1hbnRpY3MtcHJvcGVydHlkZWZp
bml0aW9uZXZhbHVhdGlvbgotICAgICAgICAKKwogCiAgICAgICAgICogcnVudGltZS9FeGVjdXRh
YmxlLmg6CiAgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKQEAgLTM3MDksNyArMzc3
NCw3IEBACiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODgwNDM4MT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KLSAgICAgICAgCisKICAgICAgICAgQmVmb3JlIHIyMDc0
MDgsIElSQyBoYWQgYSBtb2RlIHdoZXJlIGl0IHdvdWxkIHNpbGVudGx5IGFzc2lnbiB0aGUgZmly
c3QgYXNzaWduYWJsZSByZWdpc3RlciAoc28KICAgICAgICAgJXJheCwgJXhtbTAsIGV0YykgdG8g
YW55IHRtcCB0aGF0IHdhcyBub3QgY29sb3JhYmxlIGR1ZSB0byBhIHBhdGhvbG9naWNhbCBpbnRl
cmZlcmVuY2UgZmVuY2Vwb3N0LgogICAgICAgICBXZSByZWFzb24gYWJvdXQgaW50ZXJmZXJlbmNl
IGF0IGluc3RydWN0aW9uIGJvdW5kYXJpZXMuIFRoaXMgbWVhbnMgdGhhdCBpZiB5b3UgaGF2ZSwg
Zm9yIGV4YW1wbGUsCkBAIC0zNzIwLDE5ICszNzg1LDE5IEBACiAgICAgICAgIHRvIG9ubHkgYmUg
aGl0IGJ5IGZ1enppbmcsIHdoaWNoIG1heSBub3QgdGhlbiBzdHJlc3MgdGhhdCBjb2RlIGVub3Vn
aCB0byBzaGFrZSBvdXQgdGhlIHJlZ2lzdGVyCiAgICAgICAgIGNvcnJ1cHRpb24uIEFsc28sIHRo
aXMgY2FuIG9ubHkgaGFwcGVuIGZvciBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMsIHNvIGl0J3Mg
aGFyZCB0byBnZXQgYW4KICAgICAgICAgZXhjaXRpbmcgY3Jhc2guIFRoZSB3b3JzdCBjYXNlIGlz
IHRoYXQgeW91ciBudW1iZXJzIGdldCBhbGwgbWVzc2VkIHVwLgotICAgICAgICAKKwogICAgICAg
ICBUaGlzIGNoYW5nZSBmaXhlcyB0aGUgaXNzdWU6Ci0gICAgICAgIAorCiAgICAgICAgIC0gSVJD
IHdpbGwgbm93IGNyYXNoIGlmIGl0IGNhbid0IGNvbG9yIGEgdG1wLgotICAgICAgICAKKwogICAg
ICAgICAtIElSQyBkb2Vzbid0IGNyYXNoIG9uIG91ciB0ZXN0cyBhbnltb3JlIGJlY2F1c2UgSSBh
ZGRlZCBhIHBhZEludGVyZmVyZW5jZSgpIHV0aWxpdHkgdGhhdCB3b3JrcwogICAgICAgICAgIGFy
b3VuZCB0aGUgaW50ZXJmZXJlbmNlIHByb2JsZW0gYnkgaW5zZXJ0aW5nIE5vcHMgdG8gcGFkIGJl
dHdlZW4gdGhvc2UgaW5zdHJ1Y3Rpb25zIHdoZXJlCiAgICAgICAgICAgY29uZmxhdGluZyB0aGVp
ciBlYXJseSBhbmQgbGF0ZSBhY3Rpb25zIGludG8gb25lIGludGVyZmVyZW5jZSBmZW5jZXBvc3Qg
Y291bGQgY3JlYXRlIGFuCiAgICAgICAgICAgdW5jb2xvcmFibGUgZ3JhcGguCi0gICAgICAgIAor
CiAgICAgICAgIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
NTQ4I2MyIGZvciBhIGRldGFpbGVkIGRpc2N1c3Npb24gb2YgaG93IHRoZQogICAgICAgICBwcm9i
bGVtIGNhbiBhcmlzZS4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBwcm9ibGVtIGFsbW9zdCBt
YWRlIG1lIHdhbnQgdG8gYWJhbmRvbiBvdXIgdXNlIG9mIGludGVyZmVyZW5jZSBhdCBpbnN0cnVj
dGlvbiBib3VuZGFyaWVzLAogICAgICAgICBhbmQgaW50cm9kdWNlIHNvbWV0aGluZyBtb3JlIGNv
bXByZWhlbnNpdmUsIGxpa2UgaW50ZXJmZXJlbmNlIGF0IHZhcmlvdXMgc3RhZ2VzIG9mIGFuCiAg
ICAgICAgIGluc3RydWN0aW9uJ3MgZXhlY3V0aW9uLiBUaGUgcmVhc29uIHdoeSBJIGRpZG4ndCBk
byB0aGlzIGlzIHRoYXQgdGhpcyBwcm9ibGVtIG9ubHkgYXJpc2VzIGluIHdlbGwKQEAgLTM3NDYs
NyArMzgxMSw3IEBACiAgICAgICAgIHBhZEludGVyZmVyZW5jZSgpIHNvIHRoZSBJUiBzdGF5cyBu
aWNlIGFuZCBjb21wYWN0LiBUaG9zZSBOb3BzIGdldCByZW1vdmVkIGJ5IGFueSBwaGFzZSB0aGF0
IGRvZXMKICAgICAgICAgRENFLCB3aGljaCBpbmNsdWRlcyBlbGltaW5hdGVEZWFkQ29kZSgpLCBh
bGxvY2F0ZVN0YWNrKCksIGFuZCByZXBvcnRVc2VkUmVnaXN0ZXJzKCkuIEluIHByYWN0aWNlCiAg
ICAgICAgIGFsbG9jYXRlU3RhY2soKSBraWxscyB0aGVtLgotICAgICAgICAKKwogICAgICAgICBU
aGlzIGFsc28gZmluYWxseSByZWZhY3RvcnMgb3VyIHBhc3Npbmcgb2YgUmVnaXN0ZXJTZXQgdG8g
cGFzcyBpdCBieSB2YWx1ZSwgc2luY2UgaXQncyBzbWFsbAogICAgICAgICBlbm91Z2ggdGhhdCB3
ZSdyZSBub3QgZ2FpbmluZyBhbnl0aGluZyBieSB1c2luZyByZWZlcmVuY2VzLiBPbiB4ODYsIFJl
Z2lzdGVyU2V0IG91Z2h0IHRvIGJlCiAgICAgICAgIHNtYWxsZXIgdGhhbiBhIHBvaW50ZXIuCkBA
IC00MDEzLDEzICs0MDc4LDEzIEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM1MDkKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAg
ICAgICAgCisKICAgICAgICAgVGhlIHdvcmtsaXN0IGJ1aWxkaW5nIGZ1bmN0aW9uIGluIElSQyBz
a2lwcyB0ZW1wb3JhcmllcyB0aGF0IGhhdmUgbm8gZGVncmVlLiBUaGlzIGRvZXNuJ3QgYXBwZWFy
CiAgICAgICAgIHRvIGJlIG5lY2Vzc2FyeS4gVGhpcyBoYXMgYmVlbiB0aGVyZSBzaW5jZSB0aGUg
b3JpZ2luYWwgSVJDIGNvbW1pdC4gSXQgaGFzbid0IGNhdXNlZCBidWdzIGJlY2F1c2UKICAgICAg
ICAgb3JkaW5hcmlseSwgdGhlIG9ubHkgd2F5IHRvIGhhdmUgYSB0bXAgd2l0aCBubyBkZWdyZWUg
aXMgdG8gbm90IGhhdmUgYW55IG1lbnRpb24gb2YgdGhhdCB0bXAuIEJ1dAogICAgICAgICB3aGls
ZSB3b3JraW5nIG9uIGJ1ZyAxNjMzNzEsIEkgaGl0IGEgY3JhenkgY29ybmVyIGNhc2Ugd2hlcmUg
YSB0ZW1wb3Jhcnkgd291bGQgaGF2ZSBubwogICAgICAgICBpbnRlcmZlcmVuY2UgZWRnZXMgKGku
ZS4gbm8gZGVncmVlKS4gSGVyZSdzIGhvdyBpdCBoYXBwZW5zOgotICAgICAgICAKKwogICAgICAg
ICBBIHNwaWxsIHRtcCBmcm9tIGEgcHJldmlvdXMgaXRlcmF0aW9uIG9mIElSQyBtYXkgaGF2ZSBu
byBkZWdyZWU6IGltYWdpbmUgYSB0bXAgdGhhdCBpcyBsaXZlCiAgICAgICAgIGV2ZXJ5d2hlcmUg
YW5kIGludGVyZmVyZXMgd2l0aCBldmVyeW9uZSwgYnV0IGhhcyBvbmUgdXNlIGxpa2U6CiAKQEAg
LTQwMzksNyArNDEwNCw3IEBACiAKICAgICAgICAgVGhlbiwgd2UgbWlnaHQgY29hbGVzY2UgJXNv
bWVPdGhlclRtcCB3aXRoICVuZXdUbXAuICBPbmNlIHRoaXMgaGFwcGVucywgaWYgd2UgbWFrZSB0
aGUgJW5ld1RtcCBiZQogICAgICAgICB0aGUgbWFzdGVyLCB3ZSdyZSBpbiBkZWVwIHRyb3VibGUg
YmVjYXVzZSAlbmV3VG1wIGlzIG5vdCBvbiBhbnkgd29ya2xpc3QuCi0gICAgICAgIAorCiAgICAg
ICAgIEkgZG9uJ3Qga25vdyBob3cgdG8gcmVwcm9kdWNlIHRoaXMgZXhjZXB0IHRocm91Z2ggdGhl
IHBhdGNoIGluIGJ1ZyAxNjMzNzEuIFJlbW92aW5nIHRoZSB0d28gbGluZXMKICAgICAgICAgb2Yg
Y29kZSB0aGF0IHNraXBwZWQgbm8tZGVncmVlIHRtcHMgY2F1c2VzIG5vIHJlZ3Jlc3Npb25zLCBh
bmQgcmVzb2x2ZXMgdGhlIHByb2JsZW0gSSB3YXMgaGF2aW5nLgogCkBAIC00NDIzLDI4ICs0NDg4
LDI4IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjMzNDMKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAgICAgICAgCisKICAgICAg
ICAgV2hlbiBJIGZpcnN0IGFkZGVkIHRoZSBjb25jZXB0IG9mIE5ld0dyZXkvT2xkR3JleSwgSSBo
YWQgdGhlIFNsb3RWaXNpdG9yIHN0b3JlIHRoZSBvbGQgY2VsbAogICAgICAgICBzdGF0ZSBpbiBp
dHNlbGYsIHNvIHRoYXQgaXQgY291bGQgdXNlIGl0IHRvIGRlY2lkZSB3aGF0IHRvIGRvIGZvciBy
ZXBvcnRFeHRyYU1lbW9yeVZpc2l0ZWQoKS4KLSAgICAgICAgCisKICAgICAgICAgVGhlbiBJIGNo
YW5nZWQgaXQgaW4gYSByZWNlbnQgY29tbWl0LCBiZWNhdXNlIEkgd2FudGVkIHRoZSBmcmVlZG9t
IHRvIGhhdmUgU2xvdFZpc2l0b3IgdmlzaXQKICAgICAgICAgbXVsdGlwbGUgb2JqZWN0cyBpbiB0
YW5kZW0uIEJ1dCBJIG5ldmVyIGVuZGVkIHVwIHVzaW5nIHRoaXMgY2FwYWJpbGl0eS4gU3RpbGws
IEkgbGlrZWQgdGhlCiAgICAgICAgIG5ldyB3YXkgYmV0dGVyOiBpbnN0ZWFkIG9mIHRoZSBTbG90
VmlzaXRvciByZW1iZW1lcmluZyB0aGUgc3RhdGUtYmVmb3JlLWJsYWNrZW5pbmcsIHdlIHdvdWxk
CiAgICAgICAgIG1ha2UgdGhlIG9iamVjdCdzIHN0YXRlIHJlZmxlY3Qgd2hldGhlciBpdCB3YXMg
YmxhY2sgZm9yIHRoZSBmaXJzdCB0aW1lIG9yIG5vdC4gVGhhdCBzZWVtZWQKICAgICAgICAgY29u
dmVuaWVudC4KLSAgICAgICAgCisKICAgICAgICAgVW5mb3J0dW5hdGVseSBpdCdzIHdyb25nLiBB
ZnRlciB3ZSBibGFja2VuIHRoZSBvYmplY3QsIGEgY29uY3VycmVudCBiYXJyaWVyIGNvdWxkIGlu
c3RhbnRseQogICAgICAgICBncmV5IGl0LiBUaGVuIHdlIHdvdWxkIGZvcmdldCB0aGF0IHdlIGFy
ZSB2aXNpdGluZyB0aGlzIG9iamVjdCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgICAgICAgIFN1YnNl
cXVlbnQgdmlzaXRzIHdpbGwgdGhpbmsgdGhhdCB0aGV5IGFyZSBub3QgdGhlIGZpcnN0LiBTbywg
d2Ugd2lsbCBmYWlsIHRvIGRvIHRoZSByaWdodAogICAgICAgICB0aGluZyBpbiByZXBvcnRFeHRy
YU1lbW9yeVZpc2l0ZWQoKS4KLSAgICAgICAgCisKICAgICAgICAgU28sIHRoaXMgcmV2ZXJ0cyB0
aGF0IGNoYW5nZS4gVGhpcyBpcyBhIGxpdHRsZSBtb3JlIHRoYW4ganVzdCBhIHJldmVydCwgdGhv
dWdoLiBJJ3ZlIGNoYW5nZWQKICAgICAgICAgdGhlIHRlcm1pbm9sb2d5IGEgYml0LiBGb3IgZXhh
bXBsZSwgSSBnb3QgdGlyZWQgb2YgcmVhZGluZyBCbGFjayBhbmQgaGF2aW5nIHRvIHJlbWluZCBt
eXNlbGYKICAgICAgICAgdGhhdCBpdCByZWFsbHkgbWVhbnMgdGhhdCB0aGUgb2JqZWN0IGhhcyBi
ZWd1biBiZWluZyB2aXNpdGVkLCBpbnN0ZWFkIG9mIHRoZSBtb3JlIHN0cmljdAogICAgICAgICBt
ZWFuaW5nIHRoYXQgaW1wbGllcyB0aGF0IGl0IGhhcyBhbHJlYWR5IGJlZW4gdmlzaXRlZC4gV2Ug
d2FudCB0byBzYXkgdGhhdCBpdCdzIEJsYWNrIG9yCiAgICAgICAgIGN1cnJlbnRseSBiZWluZyBz
Y2FubmVkLiBJJ20gZ29pbmcgdG8gYWRvcHQgU2llYmVydCdzIHRlcm0gZm9yIHRoaXM6IEFudGhy
YWNpdGUgWzFdLiBTbywgb3VyCiAgICAgICAgIGJsYWNrIENlbGxTdGF0ZSBpcyBub3cgY2FsbGVk
IEFudGhyYWNpdGVPckJsYWNrLgotICAgICAgICAKKwogICAgICAgICBbMV0gaHR0cHM6Ly9wZGZz
LnNlbWFudGljc2Nob2xhci5vcmcvN2FlNC82MzMyNjVhZWFkMWY4ODM1Y2Y3OTY2ZTE3OWQwMmMy
YzhhNGIucGRmCiAKICAgICAgICAgKiBoZWFwL0NlbGxTdGF0ZS5oOgpAQCAtNDU0NCwxMiArNDYw
OSwxMiBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYzMzM3CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCi0gICAgICAgIAorCiAgICAg
ICAgIEl0IHR1cm5zIG91dCB0aGF0IEhlYXBTbmFwc2hvdCB3YXMgbm90IGRvd24gd2l0aCByZXZp
c2l0aW5nLiBUaGUgY29uY3VycmVudCBHQyBpcyBnb2luZyB0byBiZQogICAgICAgICBidWlsdCBh
cm91bmQgdGhlIGlkZWEgdGhhdCB3ZSBjYW4gcmV2aXNpdCBvYmplY3RzIG1hbnkgdGltZXMuIFRo
aXMgbWVhbnMgdGhhdCBhbnkgYWN0aW9uIHRoYXQKICAgICAgICAgc2hvdWxkIG9ubHkgdGFrZSBw
bGFjZSBvbmNlIHBlciBvYmplY3QgbXVzdCBjaGVjayB0aGUgb2JqZWN0J3Mgc3RhdGUuIFRoaXMg
Zml4ZXMgdGhlIHNuYXBzaG90CiAgICAgICAgIGNvZGUgdG8gZG8gdGhpcy4KLSAgICAgICAgCisK
ICAgICAgICAgV2hpbGUgd3JpdGluZyB0aGlzIGNvZGUsIEkgcmVhbGl6ZWQgdGhhdCB3ZSdyZSBh
Y3R1YWxseSBkb2luZyB0aGlzIGNoZWNrIGluY29ycmVjdGx5LCBzbyBJCiAgICAgICAgIGZpbGVk
IGJ1ZyAxNjMzNDMuIFRoYXQgYnVnIHJlcXVpcmVzIGEgcmFjZSwgc28gd2UgYXJlbid0IGdvaW5n
IHRvIHNlZSBpdCB5ZXQuCiAKQEAgLTQ1ODAsNyArNDY0NSw3IEBACiAKICAgICAgICAgKEluamVj
dGVkU2NyaXB0LnByb3RvdHlwZS5fZGVzY3JpYmUpOgogICAgICAgICBQcm92aWRlIGEgZnJpZW5k
bGllciBuYW1lLCAiUHJveHkiIGluc3RlYWQgb2YgIlByb3h5T2JqZWN0Ii4KLSAgICAgICAgCisK
ICAgICAgICAgKEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCk6CiAgICAgICAgIFdoZW4gZ2Vu
ZXJhdGluZyBhIHByZXZpZXcgZm9yIGEgUHJveHkgb2JqZWN0LCBnZW5lcmF0ZSBpdCBmcm9tIHRo
ZSBmaW5hbCB0YXJnZXQKICAgICAgICAgYW5kIG1hcmsgaXQgYXMgbG9zc3kgc28gdGhhdCB0aGUg
b2JqZWN0IGNhbiBhbHdheXMgYmUgZXhwYW5kZWQgdG8gZ2V0IHRoZSBpbnRlcm5hbApAQCAtNDYx
OSw3ICs0Njg0LDcgQEAKICAgICAgICAgYW5kIHdlIGFzc2VydGVkIHRoYXQgaXQgbWF0Y2hlZCBh
IGJyZWFrcG9pbnQgbG9jYXRpb24gaWRlbnRpZmllZAogICAgICAgICBieSB0aGUgcGFyc2VyLiBU
aGlzIGNvdWxkIGdldCBvdXQgb2Ygc3luYywgb3Igbm9kZXMgY291bGQgZm9yZ2V0IHRvCiAgICAg
ICAgIGVtaXQgZGVidWcgaG9va3MgZXhwZWN0ZWQgYnkgdGhlIHBhcnNlci4KLSAgICAgICAgCisK
ICAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgd2UgYWx3YXlzIGNoZWNrIGFuZCBlbWl0IGEgZGVi
dWcgaG9vayBmb3IgYW55CiAgICAgICAgIG5vZGUuIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGZv
ciBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5vZGUKICAgICAgICAgdG8gZW1pdCB0aGUgZGVidWcg
aG9vayB3aGVuIGVtaXR0aW5nIHRoZSBub2RlIGl0c2VsZi4gVGhpcyBjb3ZlcnMKQEAgLTQ3NjQs
NyArNDgyOSw3IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjMzMzQKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAgICAgICAgCisK
ICAgICAgICAgSSBndWVzcyB0aGF0IHRoZSBpZGVhIG9mIEpJVFdyaXRlQmFycmllciB3YXMgdG8g
bWFrZSBzdXJlIHRoYXQgaWYgeW91IHNsYXAgc29tZSBoZWFwIHBvaW50ZXIKICAgICAgICAgYml0
cyBpbnRvIG1hY2hpbmUgY29kZSwgdGhlbiB5b3UgYmV0dGVyIGV4ZWN1dGUgYSBiYXJyaWVyIG9u
IHRoZSBjb2RlIGJsb2NrLiBCdXQgaXQncyBhCiAgICAgICAgIGNvbXBsaWNhdGVkIHBpZWNlIG9m
IGNvZGUsIGFuZCBJIGNhbiBuZXZlciByZW1lbWJlciBob3cgaXQgcXVpdGUgd29ya3MuIFRoZXNl
IGRheXMgaXQgbG9va3MKQEAgLTQ3NzIsNyArNDgzNyw3IEBACiAgICAgICAgIG5vdCByZWFsbHkg
bmVjZXNzYXJ5IHRvIGhhdmUgc29tZXRoaW5nIGxpa2UgdGhpcywgc2luY2Ugb3VyIGNvbnZlbnRp
b24gaXMgdGhhdCBhbnkgcG9pbnRlcgogICAgICAgICBzdG9yZWQgaW4gbWFjaGluZSBjb2RlIG11
c3QgYWx3YXlzIGJlIHNoYWRvd2VkIGluIHRoZSBHQyBoZWFwLiBJIHRoaW5rIHRoYXQgY29udmVu
dGlvbiBoYXMKICAgICAgICAgd29uIGJ5IG92ZXJ3aGVsbWluZyBtYWpvcml0eSwgc28gd2Ugc2hv
dWxkIGZpbmFsbHkgcmVtb3ZlIEpJVFdyaXRlQmFycmllci4KLSAgICAgICAgCisKICAgICAgICAg
QSBwcmFjdGljYWwgb3V0Y29tZSBvZiB0aGlzIGNoYW5nZSBpcyB0aGF0IGl0IG1ha2VzIGl0IGVh
c2llciB0byBpbXBsZW1lbnQgRGlyZWN0Q2FsbCBJQ3MsCiAgICAgICAgIHdoaWNoIHdpbGwgaGF2
ZSB0byBzdG9yZSB0aGUgY2FsbGVlIGluIHRoZSBDYWxsTGlua0luZm8gYnV0IG5vdCBpbiB0aGUg
bWFjaGluZSBjb2RlLgogCkBAIC00ODIxLDMxICs0ODg2LDMxIEBACiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIzMDkKIAogICAgICAgICBSZXZpZXdl
ZCBieSBHZW9mZnJleSBHYXJlbi4KLSAgICAgICAgCisKICAgICAgICAgSXQgdXNlZCB0byBiZSB0
aGF0IHdlIHdvdWxkIGZvcmdldCB3aGljaCBvYmplY3RzIGFyZSBsaXZlIHRoZSBtb21lbnQgd2Ug
c3RhcnRlZCBjb2xsZWN0aW9uLgogICAgICAgICBUaGF0J3MgYmVjYXVzZSB0aGUgZmxpcCBhdCB0
aGUgYmVnaW5uaW5nIGNsZWFycyBhbGwgbWFyayBiaXRzLgotICAgICAgICAKKwogICAgICAgICBC
dXQgd2UgYWxyZWFkeSBoYXZlIGEgZmFjaWxpdHkgZm9yIHRyYWNraW5nIG9iamVjdHMgdGhhdCBh
cmUgbGl2ZS1idXQtbm90LW1hcmtlZC4gSXQncyBjYWxsZWQKICAgICAgICAgbmV3bHlBbGxvY2F0
ZWQuIFNvLCBpbnN0ZWFkIG9mIGNsZWFyaW5nIG1hcmsgYml0cywgd2Ugd2FudCB0byBqdXN0IHRy
YW5zZmVyIHRoZW0gdG8KICAgICAgICAgbmV3bHlBbGxvY2F0ZWQuIFRoZW4gd2Ugd2FudCB0byBj
bGVhciBhbGwgbmV3bHlBbGxvY2F0ZWQgYWZ0ZXIgR0MuCi0gICAgICAgIAorCiAgICAgICAgIFRo
aXMgaW1wbGVtZW50cyBzdWNoIGFuIGFwcHJvYWNoLCBhbG9uZyB3aXRoIGEgdmVyc2lvbmluZyBv
cHRpbWl6YXRpb24gZm9yIG5ld2x5QWxsb2NhdGVkLgogICAgICAgICBJbnN0ZWFkIG9mIHdhbGtp
bmcgdGhlIHdob2xlIGhlYXAgdG8gY2xlYXIgbmV3bHlBbGxvY2F0ZWQgYml0cyBhdCB0aGUgZW5k
IG9mIHRoZSBHQywgd2UgYnVtcAogICAgICAgICB0aGUgbmV3bHlBbGxvY2F0ZWRWZXJzaW9uLCB3
aGljaCBjYXVzZXMgTWFya2VkQmxvY2sgdG8gdHJlYXQgbmV3bHlBbGxvY2F0ZWQgYXMgaWYgaXQg
d2FzCiAgICAgICAgIGNsZWFyLgotICAgICAgICAKKwogICAgICAgICBXZSBjb3VsZCBoYXZlIGV2
ZW4gYXZvaWRlZCBhbGxvY2F0aW5nIG5ld2x5QWxsb2NhdGVkIGluIG1vc3QgY2FzZXMsIHNpbmNl
IGVtcGlyaWNhbGx5IG1vc3QKICAgICAgICAgYmxvY2tzIGFyZSBlaXRoZXIgY29tcGxldGVseSBl
bXB0eSBvciBjb21wbGV0ZWx5IGZ1bGwuIEFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIHBhdGNo
IGRpZAogICAgICAgICB0aGlzLCBidXQgaXQgd2FzIG5vdCBiZXR0ZXIgdGhhbiB0aGlzIHBhdGNo
LiBJbiBmYWN0LCBpdCBzZWVtZWQgdG8gYWN0dWFsbHkgYmUgd29yc2UgZm9yIFBMVAogICAgICAg
ICBhbmQgbWVtYnVzdGVyLgotICAgICAgICAKKwogICAgICAgICBUbyB2YWxpZGF0ZSB0aGlzIGNo
YW5nZSwgd2Ugbm93IHJ1biB0aGUgY29uc2VydmF0aXZlIHNjYW4gYWZ0ZXIgdGhlIGJlZ2luTWFy
a2luZyBmbGlwLiBBbmQgaXQKICAgICAgICAgdG90YWxseSB3b3JrcyEKLSAgICAgICAgCisKICAg
ICAgICAgVGhpcyBpcyBhIGh1Z2Ugc3RlcCB0b3dhcmRzIGNvbmN1cnJlbnQgR0MuIEl0IG1lYW5z
IHRoYXQgd2Ugb3VnaHQgdG8gYmUgYWJsZSB0byBydW4gdGhlCiAgICAgICAgIGFsbG9jYXRvciB3
aGlsZSBtYXJraW5nLiBTaW5jZSB3ZSBhbHJlYWR5IHNlcGFyYXRlbHkgbWFkZSBpdCBwb3NzaWJs
ZSB0byBydW4gdGhlIGJhcnJpZXIKICAgICAgICAgd2hpbGUgbWFya2luZywgdGhpcyBtZWFucyB0
aGF0IHdlJ3JlIHByZXR0eSBtdWNoIHJlYWR5IGZvciBzb21lIHNlcmlvdXMgY29uY3VycmVuY3kg
YWN0aW9uLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGFwcGVhcnMgdG8gYmUgcGVyZi1uZXV0
cmFsIGFuZCBzcGFjZS1uZXV0cmFsLgogCiAgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKQEAgLTUwMDIsNyArNTA2Nyw3IEBACiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDkKIAogICAgICAgICBSZXZp
ZXdlZCBieSBZdXN1a2UgU3V6dWtpLgotICAgICAgICAKKwogICAgICAgICBXZSBoYXZlIGEgbG90
IG9mIGRlZmVuc2VzIGFnYWluc3QgZW1pdHRpbmcgY29kZSB0aGF0IG1hdGVyaWFsaXplcyBodWdl
IGNvbnRhbnRzLiBCdXQgaWYgd2UgZG8KICAgICAgICAgZW5kIHVwIHdpdGggc3VjaCBjb2RlIGlu
IHRoZSBiYWNrZW5kLCBpdCdzIGJldHRlciB0byBjb252ZXJ0IHRob3NlIG1hdGVyaWFsaXphdGlv
bnMgaW50byBhZGQKICAgICAgICAgaW5zdHJ1Y3Rpb25zIGJ5IGNoZWNraW5nIGlmIG90aGVyIHJl
Z2lzdGVycyBhcmUga25vd24gdG8gY29udGFpbiBuZWFyYnkgY29uc3RhbnRzLiBUaGF0J3MKQEAg
LTUwMTcsMTIgKzUwODIsMTIgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzI2NAogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgotICAg
ICAgICAKKwogICAgICAgICBXaGVuIHdyaXRpbmcgdGhlIGxlYSBwYXRjaCAocjIwNzAzOSksIEkg
d2FzIHZlcnkgY2FyZWZ1bCBhYm91dCBob3cgSSBjb252ZXJ0IGEgU2hsIGludG8gYQogICAgICAg
ICBCYXNlSW5kZXggc2NhbGUuIEJ1dCBJIGZvcmdvdCB0byBjaGVjayBpZiB0aGUgb2xkZXIgY29k
ZSBmb3IgY3JlYXRpbmcgQmFzZUluZGV4ZXMgZm9yCiAgICAgICAgIGVmZmVjdGl2ZUFkZHIoKSBn
b3QgdGhpcyByaWdodC4gSXQgdHVybnMgb3V0IHRoYXQgdGhlIG9sZGVyIGNvZGUgbWlzc2VkIHRo
ZSA8PDMyIGNvcm5lcgogICAgICAgICBjYXNlLgotICAgICAgICAKKwogICAgICAgICBJdCdzIHNh
ZCB0aGF0IHRoZSB0d28gcGF0aHMgY2FuJ3Qgc2hhcmUgYWxsIG9mIHRoZWlyIGNvZGUsIGJ1dCBp
dCdzIHNvbWV3aGF0IGluZXZpdGFibGUgZHVlCiAgICAgICAgIHRvIGhvdyBtYXRjaGluZyBhbiBh
ZGRyZXNzIGFuZCBtYXRjaGluZyBhIGxlYSBoYXZlIHRvIGRvIHZlcnkgZGlmZmVyZW50IHRoaW5n
cy4gTWF0Y2hpbmcgYQogICAgICAgICBsZWEgbWVhbnMgY3JlYXRpbmcgYW4gaW5zdHJ1Y3Rpb24g
dGhhdCBpcyBkaXN0aW5jdCBmcm9tIG90aGVyIGluc3RydWN0aW9ucyB0byBkbyBtdWx0aXBsZQpA
QCAtNTAzMiw3ICs1MDk3LDcgQEAKICAgICAgICAgaGFzIHRvIGZpZ3VyZSBvdXQgQWRkKEB2YWx1
ZSwgJGNvbnN0KSBvbiBpdHMgb3duLiBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgc2l0dWF0aW9uIHNs
aWdodGx5CiAgICAgICAgIG1vcmUgc2FuZSBieSBhZGRpbmcgYSBzY2FsZUZvclNobCgpIGhlbHBl
ciB0aGF0IGhhbmRsZXMgdGhpcyB3ZWlyZCBjYXNlLiBJdCdzIGJhc2VkIG9uIHRoZQogICAgICAg
ICBuZXcgU2hsIGhhbmRsaW5nIGZyb20gcjIwNzAzOSwgYW5kIGV4cG9zZXMgaXQgYXMgYW4gQVBJ
IGZvciBlZmZlY3RpdmVBZGRyKCkgdG8gdXNlLgotICAgICAgICAKKwogICAgICAgICBUaGUgdGVz
dExvYWRCYXNlSW5kZXhTaGlmdDMyKCkgdXNlZCB0byBjcmFzaC4gSSBkb24ndCB0aGluayB0aGF0
IHRoaXMgY2FzZSBhZmZlY3RzIEpTCiAgICAgICAgIGNvbnRlbnQsIHNpbmNlIDw8MzIgaXMgc3Vj
aCBhIGJpemFycmUgb3V0bGllci4gSSBkb24ndCB0aGluayB3ZSBldmVuIGhhdmUgYSBwYXRoIGFs
b25nCiAgICAgICAgIHdoaWNoIHRoZSBGVEwgd291bGQgZW1pdCBhIDY0LWJpdCA8PDMyLiBJdCBw
cm9iYWJseSB3b24ndCBldmVuIGFmZmVjdCBXZWJBc3NlbWJseSBzaW5jZQpAQCAtNTA4Myw5ICs1
MTQ4LDkgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzIzNAogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgotICAgICAgICAKKwog
ICAgICAgICBUaGlzIGFkZHMgY29tcHJlaGVuc2l2ZSBzdXBwb3J0IGZvciBlbWl0dGluZyBsZWEg
b24geDg2LgotICAgICAgICAKKwogICAgICAgICBXaGVuIGFkZGluZyB0aGlzLCBJIGZvdW5kIHRo
YXQgaXQgd2FzIHVzZWZ1bCB0byBhbHNvIGZpbmFsbHkgYWRkIG1vcmUgcmVhc3NvY2lhdGlvbi4g
VGhhdAogICAgICAgICByZWR1Y2VzIHRoZSBhbW91bnQgb2YgcGF0dGVybnMgdGhhdCB0aGUgaW5z
dHJ1Y3Rpb24gc2VsZWN0b3IgaGFzIHRvIGRlYWwgd2l0aC4KIApAQCAtNTIyNCwxMCArNTI4OSwx
MCBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
MTc1CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgotICAgICAgICAKKwogICAg
ICAgICBZb3UgY2FuIG5vdyBjYWxsIFByb2NlZHVyZTo6cGluUmVnaXN0ZXIoKSwgb3IgQ29kZTo6
cGluUmVnaXN0ZXIoKSwgYW5kIGl0IHdpbGwgbWFrZSB0aGlzCiAgICAgICAgIHJlZ2lzdGVyIGJl
aGF2ZSBhcyBmb2xsb3dzOgotICAgICAgICAKKwogICAgICAgICAtIEIzIGFuZCBBaXIgd2lsbCBl
bWl0IG5vIGNvZGUgdGhhdCBtb2RpZmllcyB0aGUgdmFsdWUgaW4gdGhpcyByZWdpc3RlciwgZXhj
ZXB0IGlmIHRoYXQKICAgICAgICAgICBoYXBwZW5zIHZpYSBhIFBhdGNocG9pbnQgb3Igc3RhY2tt
YXAgY29uc3RyYWludCAoaS5lLiB0aGUgdXNlciBleHBsaWNpdGx5IGFza2VkIGZvciBpdCkuCiAg
ICAgICAgIC0gQjMgYW5kIEFpciB3aWxsIGFsbG93IG90aGVycyB0byBtb2RpZnkgdGhlIHJlZ2lz
dGVyLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHJlZ2lzdGVyIGlzIG5vdApAQCAtNTIzOCwxNyArNTMw
MywxNyBAQAogICAgICAgICAgIGNoYW5naW5nKS4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlbnQgYmFj
ayB0byBoYXZpbmcgcGlubmVkIHRhZyByZWdpc3RlcnMsIHdlIHdvdWxkIHRlbGwgQjMKICAgICAg
ICAgICB0byB1c2UgdGhlbSBieSAoMSkgZXhjbHVkaW5nIHRoZW0gZnJvbSBhbnkgY2xvYmJlciBz
ZXQgKGVhc3ksIHNpbmNlIHRoZXkncmUgY2FsbGVlIHNhdmUpCiAgICAgICAgICAgYW5kICgyKSBl
bWl0dGluZyBBcmd1bWVudFJlZyB0byBncmFiIHRoZWlyIHZhbHVlLiBUaGVyZSdzIGEgdGVzdCB0
aGF0IGRvZXMgdGhpcy4KLSAgICAgICAgCi0gICAgICAgIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5
IHRha2luZyByZWdzSW5Qcmlvcml0eU9yZGVyKCkgYW5kIG1ha2luZyBpdCBhIG1ldGhvZCBvZiBD
b2RlLiBBaXIgCisKKyAgICAgICAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgdGFraW5nIHJlZ3NJ
blByaW9yaXR5T3JkZXIoKSBhbmQgbWFraW5nIGl0IGEgbWV0aG9kIG9mIENvZGUuIEFpcgogICAg
ICAgICBhbHJlYWR5IHVzZWQgdGhpcyBBUEkgd2hlbiBjaG9vc2luZyByZWdpc3RlcnMgaW4gcmVn
aXN0ZXIgYWxsb2NhdGlvbi4gQ29kZSBub3cgYWxzbyB2ZW5kcyBhCiAgICAgICAgIG11dGFibGVS
ZWdzKCkgc2V0LCB3aGljaCBpcyBkZXJpdmVkIGZyb20gcmVnc0luUHJpb3JpdHlPcmRlcigpLCB0
aGF0IGNhbiBxdWlja2x5IHRlbGwgeW91IGlmCiAgICAgICAgIGEgcmVnaXN0ZXIgY2FuIGJlIG11
dGF0ZWQuIERvaW5nIGl0IHRoaXMgd2F5IG1lYW5zIHRoYXQgbW9zdCBvZiB0aGlzIGlzIGEgcHVy
ZWx5IG1lY2hhbmljYWwKICAgICAgICAgY2hhbmdlLiBUaGUgY2FsbHMgdG8gbXV0YWJsZVJlZ3Mo
KSBhcmUgdGhlIHBsYWNlcyB3aGVyZSB3ZSBoYWQgdG8gY2hhbmdlIGxvZ2ljOgotICAgICAgICAK
KwogICAgICAgICAtIFRoZSByZWdpc3RlciBhbGxvY2F0b3JzIG5lZWRzIHRvIGtub3cgdGhhdCBj
b2FsZXNjaW5nIHdpdGggYSBwcmVjb2xvcmVkIHBpbm5lZCB0bXAgaXMgZnJlZS4KICAgICAgICAg
LSBUaGUgY2FsbGVlLXNhdmUgaGFuZGxlciBuZWVkcyB0byBrbm93IHRoYXQgd2UncmUgbm90IHN1
cHBvc2VkIHRvIHNhdmUvcmVzdG9yZSBwaW5uZWQKICAgICAgICAgICByZWdpc3RlcnMuCi0gICAg
ICAgIAorCiAgICAgICAgIE5vdGUgdGhhdCBpbiB0aGlzIHNjaGVtZSwgcGlubmVkIHJlZ2lzdGVy
cyBhcmUgc2ltcGx5IHJlZ2lzdGVycyB0aGF0IGRvIG5vdCBhcHBlYXIgaW4KICAgICAgICAgcmVn
c0luUHJpb3JpdHlPcmRlcigpLiBUaGlzIG1lYW5zLCBmb3IgZXhhbXBsZSwgdGhhdCB3ZSB3aWxs
IG5vdyBzYXkgdGhhdCBGUCBpcyBwaW5uZWQuIFNvLAogICAgICAgICB0aGlzIG1lYW5zIHRoYXQg
eW91IGNhbiBhbHNvIHBpbiByZWdpc3RlcnMgYnkgY2FsbGluZyBzZXRSZWdzSW5Qcmlvcml0eU9y
ZGVyKCkgYW5kIHBhc3NpbmcgYQpAQCAtNTMwMyw3ICs1MzY4LDcgQEAKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzE3MgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlaXRoIE1pbGxlci4KLSAgICAgICAgCisKICAgICAgICAgSWYgd2UgaGF2ZSBtdXRh
YmxlIHBpbm5lZCByZWdpc3RlcnMgdGhlbiB3ZSBuZWVkIHRvIGtub3cgd2hpY2ggb3BlcmF0aW9u
cyBtdXRhdGUgdGhlbS4gQXQKICAgICAgICAgZmlyc3QgSSBjb25zaWRlcmVkIG1ha2luZyB0aGlz
IGludG8gYSBoZWFwIHJhbmdlIHRoaW5nLCBidXQgSSB0aGluayB0aGF0IHRoaXMgd291bGQgYmUg
dmVyeQogICAgICAgICBjb25mdXNpbmcuIEFsc28sIGluIHRoZSBmdXR1cmUsIHdlIG1pZ2h0IHdh
bnQgdG8gbWFrZSBFZmZlY3RzIHRyYWNrIHJlZ2lzdGVyIHNldHMgb2YKQEAgLTYzMDQsNyArNjM2
OSw3IEBACiAgICAgICAgIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0gd2l0aCBOT1BzIHRvIHByb3Zp
ZGUgc3BhY2UgZm9yIGEganVtcC4gIFRoaXMgY2hhbmdlcwogICAgICAgICBBaXI6OmdlbmVyYXRl
KCkgdG8gdXNlIGxhYmVsSWdub3JpbmdXYXRjaHBvaW50cygpIHRvIGNyZWF0ZSBwY1RvT3JpZ2lu
TWFwCiAgICAgICAgIGVudHJpZXMgdG8gZWxpbWluYXRlIHVubmVjY2VzYXJ5IE5PUHMuCi0gICAg
ICAgIAorCiAgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRlLmNwcDoKICAgICAgICAgKEpTQzo6
QjM6OkFpcjo6Z2VuZXJhdGUpOgogICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CkBAIC02MzM4LDcg
KzY0MDMsNyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyODQ1CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCi0gICAgICAg
IAorCiAgICAgICAgIFdoaWxlIHdyaXRpbmcgc29tZSBkb2N1bWVudGF0aW9uLCBJIGZvdW5kIHNv
bWUgc21hbGwgaG9sZXMgaW4gdGhlIGNvZGUuCiAKICAgICAgICAgKiBiMy9CM0VmZmVjdHMuY3Bw
OgpAQCAtNjQzNyw3ICs2NTAyLDcgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2Mjg0MgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3Rl
aW4uCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gaGFzIGJlY29tZSBkZWFkIGNv
ZGUuIFRoaXMgY2hhbmdlIHJlbW92ZXMgaXQuCiAKICAgICAgICAgKiBoZWFwL0NlbGxDb250YWlu
ZXIuaDoKQEAgLTY0OTIsMTYgKzY1NTcsMTYgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjY4OQogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGFkZHMgYSB0cmFwcyBmbGFnIHRv
IEIzOjpLaW5kLiBJdCBhbHNvIG1ha2VzIEIzOjpLaW5kIHdvcmsgbW9yZSBsaWtlIEFpcjo6S2lu
ZCwgaW4gdGhlCiAgICAgICAgIHNlbnNlIHRoYXQgaXQncyBhIGJhZyBvZiBkaXN0aW5jdCBiaXRz
IC0gaXQgZG9lc24ndCBuZWVkIHRvIGJlIGEgdW5pb24gdW5sZXNzIHdlIGdldCBlbm91Z2gKICAg
ICAgICAgdGhpbmdzIHRoYXQgaXQgd291bGQgbWFrZSBhIGRpZmZlcmVuY2UuCi0gICAgICAgIAor
CiAgICAgICAgIFRoZSBvbmx5IGFuYWx5c2lzIHRoYXQgbmVlZHMgdG8ga25vdyBhYm91dCB0cmFw
cyBpcyBlZmZlY3RzLiBJdCBub3cga25vd3MgdGhhdCB0cmFwcyBpbXBsaWVzCiAgICAgICAgIHNp
ZGVFeGl0cywgd2hpY2ggbWVhbnMgdGhhdCB0aGlzIHR1cm5zIG9mZiBEQ0UuIFRoZSBvbmx5IG9w
dGltaXphdGlvbiB0aGF0IG5lZWRzIHRvIGtub3cKICAgICAgICAgYWJvdXQgdHJhcHMgaXMgZWxp
bWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMoKSwgd2hpY2ggbmVlZHMgdG8gcGVzc2ltaXplIGl0
cyBzdG9yZQogICAgICAgICBlbGltaW5hdGlvbiBpZiB0aGUgc3RvcmUgdHJhcHMuCi0gICAgICAg
IAorCiAgICAgICAgIFRoZSBoYXJkIHBhcnQgb2YgdGhpcyBjaGFuZ2UgaXMgdGVhY2hpbmcgdGhl
IGluc3RydWN0aW9uIHNlbGVjdG9yIHRvIGZhaXRoZnVsbHkgY2FycnkgdGhlCiAgICAgICAgIHRy
YXBzIGZsYWcgZG93biB0byBBaXIuIEkgZ290IHRoaXMgdG8gd29yayBieSBtYWtpbmcgQXJnUHJv
bWlzZSBhIG5vbi1jb3B5YWJsZSBvYmplY3QgdGhhdAogICAgICAgICBrbm93cyB3aGV0aGVyIHlv
dSd2ZSB1c2VkIGl0IGluIGFuIGluc3RydWN0aW9uLiBJdCBrbm93cyB3aGVuIHlvdSBjYWxsIGNv
bnN1bWUoKS4gSWYgeW91IGRvCkBAIC02NTA5LDEwICs2NTc0LDEwIEBACiAgICAgICAgIGFsb25n
IHdpdGggYSBmZXcgb3RoZXIgaGFja3MsIG1lYW5zIHRoYXQgYWxsIG9mIHRoZSBsb2FkLW9wIGFu
ZCBsb2FkLW9wLXN0b3JlIGZ1c2lvbnMKICAgICAgICAgY29ycmVjdGx5IGNhcnJ5IHRoZSB0cmFw
IGJpdDogaWYgYW55IG9mIHRoZSBCMyBsb2FkcyBvciBzdG9yZXMgaW52b2x2ZWQgdHJhcHMgdGhl
biB5b3UgZ2V0CiAgICAgICAgIHRyYXBzIGluIEFpci4KLSAgICAgICAgCisKICAgICAgICAgVGhp
cyBmcmFtZXdvcmsgYWxzbyBzZXRzIHVzIHVwIHRvIGRvIGJ1ZyAxNjI2ODgsIHNpbmNlIHRoZSBB
cmdQcm9taXNlOjppbnN0KCkgaG9vayBpcwogICAgICAgICBwb3dlcmZ1bCBlbm91Z2ggdG8gYWxs
b3cgd3JhcHBpbmcgdGhlIGluc3RydWN0aW9uIHdpdGggYSBQYXRjaC4KLSAgICAgICAgCisKICAg
ICAgICAgSSBhZGRlZCBzb21lIHRlc3RzIHRvIHRlc3RiMyB0aGF0IHZlcmlmeSB0aGF0IG9wdGlt
aXphdGlvbnMgYXJlIGFwcHJvcHJpYXRlbHkgaW5oaWJpdGVkIGFuZAogICAgICAgICB0aGF0IHRo
ZSB0cmFwcyBmbGFnIHN1cnZpdmVzIHVudGlsIHRoZSBiaXR0ZXIgZW5kIG9mIEFpci4KIApAQCAt
NjU4MywyNiArNjY0OCwyNiBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyNzY0CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCi0g
ICAgICAgIAorCiAgICAgICAgIFRoZXJlIGFyZSBzb21lIGludGVyZXN0aW5nIGNhc2VzIHdoZXJl
IHdlIGNhbiByZWR1Y2UgdGhlIG51bWJlciBvZiBjb25zdGFudCBtYXRlcmlhbGl6YXRpb25zIGlm
CiAgICAgICAgIHdlIHRlYWNoIG1vdmVDb25zdGFudHMoKSBob3cgdG8gZWRpdCBjb2RlLiBUaGUg
dHdvIGV4YW1wbGVzIHRoYXQgdGhpcyBwYXRjaCBzdXBwb3J0cyBhcmU6Ci0gICAgICAgIAorCiAg
ICAgICAgICAgICAtIExvYWRzIGFuZCBzdG9yZXMgZnJvbSBhIGNvbnN0YW50IHBvaW50ZXIuIFNp
bmNlIGxvYWRzIGFuZCBzdG9yZXMgZ2V0IGFuIG9mZnNldCBmb3IgZnJlZQogICAgICAgICAgICAg
ICBhbmQgdGhlIGluc3RydWN0aW9uIHNlbGVjdG9yIGlzIHJlYWxseSBnb29kIGF0IGhhbmRsaW5n
IGl0LCBhbmQgc2luY2Ugd2UgY2FuIHF1ZXJ5IEFpciB0bwogICAgICAgICAgICAgICBzZWUgd2hh
dCBraW5kcyBvZiBvZmZzZXRzIGFyZSBsZWdhbCwgd2UgY2FuIHNvbWV0aW1lcyBhdm9pZCB1c2lu
ZyBhIGNvbnN0YW50IHBvaW50ZXIgdGhhdAogICAgICAgICAgICAgICBpcyBzcGVjaWZpYyB0byB0
aGUgYWJzb2x1dGUgYWRkcmVzcyBvZiB0aGF0IGxvYWQgYW5kIGluc3RlYWQgcGljayBzb21lIG90
aGVyIGNvbnN0YW50CiAgICAgICAgICAgICAgIHRoYXQgaXMgd2l0aGluIG9mZnNldCBkaXN0YW5j
ZSBvZiBvdXJzLgotICAgICAgICAgICAgCisKICAgICAgICAgICAgIC0gQWRkIGFuZCBTdWIgYnkg
YSBjb25zdGFudCAoeCArIGMsIHggLSBjKS4gU2luY2UgeCArIGMgPSB4IC0gLWMgYW5kIHggLSBj
ID0geCArIC1jLCB3ZSBjYW4KICAgICAgICAgICAgICAgZmxpcCBBZGQgdG8gU3ViIG9yIHZpY2Ug
dmVyc2EgaWYgdGhlIG5lZ2F0ZWQgY29uc3RhbnQgaXMgYXZhaWxhYmxlLgotICAgICAgICAKKwog
ICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyBtb3ZlQ29uc3RhbnRzKCkgcGljayB0aGUgbW9zdCBk
b21pbmFudCBjb25zdGFudCB0aGF0IHdvcmtzIGZvciBhbiB2YWx1ZS4gSW4KICAgICAgICAgdGhl
IGNhc2Ugb2YgbWVtb3J5IGFjY2Vzc2VzLCBpdCB1c2VzIEFpcjo6QXJnOjppc1ZhbGlkQWRkckZv
cm0oKSB0byB3b3JrIG91dCB3aGF0IG90aGVyCiAgICAgICAgIGNvbnN0YW50cyB3b3VsZCB3b3Jr
LiBJbiB0aGUgY2FzZSBvZiBBZGQvU3ViLCBpdCBzaW1wbHkgbG9va3MgZm9yIHRoZSBuZWdhdGVk
IGNvbnN0YW50LiBUaGlzCiAgICAgICAgIHNob3VsZCByZXN1bHQgaW4gc29tZXRoaW5nIGxpa2Ug
YSBtaW5pbWFsIG51bWJlciBvZiBjb25zdGFudHMgc2luY2UgdGhlc2UgcnVsZXMgYWx3YXlzIHBp
Y2sgdGhlCiAgICAgICAgIG1vc3QgZG9taW5hbnQgY29uc3RhbnQgdGhhdCB3b3JrcyAtIHNvIGlm
IGFuIEFkZCdzIGNvbnN0YW50IGlzIGFscmVhZHkgbW9zdCBkb21pbmFudCB0aGVuCiAgICAgICAg
IG5vdGhpbmcgY2hhbmdlcywgYnV0IGlmIHRoZSBuZWdhdGVkIG9uZSBpcyBtb3JlIGRvbWluYW50
IHRoZW4gaXQgYmVjb21lcyBhIFN1Yi4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBpcyBhIDAu
NSUgc3BlZWQtdXAgb24gTG9uZ1NwaWRlciBhbmQgbmV1dHJhbCBlbHNld2hlcmUuIEl0J3MgYSBz
cGVlZC11cCBiZWNhdXNlIHRoZQogICAgICAgICBhYnNvbHV0ZSBhZGRyZXNzIHRoaW5nIHJlZHVj
ZXMgdGhlIG51bWJlciBvZiBhZGRyZXNzIG1hdGVyaWFsaXphdGlvbnMgdGhhdCB3ZSBoYXZlIHRv
IGRvLCB3aGlsZQogICAgICAgICB0aGUgYWRkL3N1YiB0aGluZyBwcmV2ZW50cyB1cyBmcm9tIGhh
dmluZyB0byBtYXRlcmlhbGl6ZSAweDEwMDAwMDAwMDAwMDAgdG8gYm94IGRvdWJsZXMuCkBAIC02
ODk4LDE3ICs2OTYzLDE3IEBACiAgICAgICAgIEVuc3VyZSB0aGF0IG9uY2Ugd2UgaGF2ZSB0aGUg
U2NyaXB0IHRoYXQgd2UgYWx3YXlzCiAgICAgICAgIHJlc29sdmUgdGhlIGJyZWFrcG9pbnQgbG9j
YXRpb24gYmVmb3JlIHNldHRpbmcgdGhlCiAgICAgICAgIGJyZWFrcG9pbnQuIFRoZSBkaWZmZXJl
bnQgcGF0aHMgYXJlOgotICAgICAgICAKKwogICAgICAgICAtIHNldEJyZWFrcG9pbnQoc2NyaXB0
SWQsIGxvY2F0aW9uKQogICAgICAgICAgIC0gSGVyZSB3ZSBrbm93IHRoZSBTb3VyY2VQcm92aWRl
ciBieSBpdHMgU291cmNlSUQKICAgICAgICAgICAgIC0gcmVzb2x2ZSBhbmQgc2V0Ci0gICAgICAg
IAorCiAgICAgICAgIC0gc2V0QnJlYWtwb2ludEJ5VVJMKHVybCwgbG9jYXRpb24pCiAgICAgICAg
ICAgLSBTZWFyY2ggZm9yIGV4aXN0aW5nIFNjcmlwdHMgdGhhdCBtYXRjaCB0aGUgVVJMCiAgICAg
ICAgICAgICAtIHJlc29sdmUgaW4gZWFjaCBhbmQgc2V0CiAgICAgICAgICAgLSBXaGVuIG5ldyBT
Y3JpcHRzIGFyZSBwYXJzZWQgdGhhdCBtYXRjaCB0aGUgVVJMCiAgICAgICAgICAgICAtIHJlc29s
dmUgYW5kIHNldAotICAgICAgICAgICAgCisKIAogMjAxNi0wOS0zMCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCkBAIC03MDQ3LDcgKzcxMTIsNyBAQAogICAgICAgICAo
SlNDOjpEZWJ1Z2dlcjo6c3RlcEludG9TdGF0ZW1lbnQpOgogICAgICAgICAoSlNDOjpEZWJ1Z2dl
cjo6ZXhjZXB0aW9uKToKICAgICAgICAgKEpTQzo6RGVidWdnZXI6OmRpZFJlYWNoQnJlYWtwb2lu
dCk6Ci0gICAgICAgIAorCiAgICAgICAgIFVzZSBuZXcgdmFyaWFibGUgbmFtZXMsIGFuZCBjbGFy
aWZ5IGlmIHdlIHNob3VsZCBhdHRlbXB0CiAgICAgICAgIHRvIHBhdXNlIG9yIG5vdC4KIApAQCAt
NzA1OSw3ICs3MTI0LDcgQEAKICAgICAgICAgKEpTQzo6RGVidWdnZXI6OnVwZGF0ZUNhbGxGcmFt
ZUludGVybmFsKToKICAgICAgICAgKEpTQzo6RGVidWdnZXI6OnBhdXNlSWZOZWVkZWQpOgogICAg
ICAgICBBbGxvdyB1cGRhdGVDYWxsRnJhbWUgdG8gZWl0aGVyIGF0dGVtcHQgYSBwYXVzZSBvciBu
b3QuCi0gICAgICAgIAorCiAgICAgICAgIChKU0M6OkRlYnVnZ2VyOjphdFN0YXRlbWVudCk6CiAg
ICAgICAgIEF0dGVtcHQgcGF1c2UgYW5kIHJlc2V0IHRoZSBhdCBmaXJzdCBleHByZXNzaW9uIGZs
YWcuCiAKQEAgLTcwNzUsNyArNzE0MCw3IEBACiAgICAgICAgIEF0dGVtcHQgcGF1c2Ugd2hlbiBs
ZWF2aW5nIGEgZnVuY3Rpb24uCiAgICAgICAgIElmIHRoZSB1c2VyIGRpZCBhIHN0ZXAtb3ZlciBh
bmQgaXMgbGVhdmluZyB0aGUKICAgICAgICAgZnVuY3Rpb24sIHRoZW4gYmVoYXZlIGxpa2Ugc3Rl
cC1vdXQuCi0gICAgICAgIAorCiAgICAgICAgIChKU0M6OkRlYnVnZ2VyOjp1bndpbmRFdmVudCk6
CiAgICAgICAgIEJlaGF2ZSBsaWtlIHJldHVybiBleGNlcHQgZG9uJ3QgY2hhbmdlIGFueQogICAg
ICAgICBwYXVzaW5nIHN0YXRlcy4gSWYgd2UgbmVlZGVkIHRvIHBhdXNlIHRoZQpAQCAtNzA5NCw3
ICs3MTU5LDcgQEAKICAgICAgICAgV2hlbiB0aGUgcHJvZ3JhbSBkb2Vzbid0IGhhdmUgYSBwYXJl
bnQsIGNsZWFyIGFsbAogICAgICAgICBvdXIgc3RhdGUgc28gd2UgZG9uJ3QgZXJyYW50bHkgcGF1
c2Ugb24gdGhlIG5leHQKICAgICAgICAgSmF2YVNjcmlwdCBtaWNyb3Rhc2sgdGhhdCBnZXRzIGV4
ZWN1dGVkLgotICAgICAgICAKKwogICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y2xlYXJOZXh0UGF1
c2VTdGF0ZSk6CiAgICAgICAgIEhlbHBlciB0byBjbGVhciBhbGwgb2YgdGhlIHBhdXNlIHN0YXRl
cyBub3cgdGhhdAogICAgICAgICBpdCBoYXBwZW5zIGluIGEgY291cGxlIHBsYWNlcy4KQEAgLTcx
NzcsMTQgKzcyNDIsMTQgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjY5OQogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgotICAgICAg
ICAKKwogICAgICAgICBUaGlzIGZvbGxvd3MgYSBzaW1pbGFyIGNoYW5nZSBpbiBCMyAocjIwNjU5
NSkgYW5kIHJlcGxhY2VzIEFpcjo6T3Bjb2RlIHdpdGggQWlyOjpLaW5kLAogICAgICAgICB3aGlj
aCBob2xkcyBvbnRvIHRoZSBvcGNvZGUgYW5kIHNvbWUgYWRkaXRpb25hbCBmbGFncy4gQmVjYXVz
ZSBBaXIgaXMgYW4gb3J0aG9nb25hbCBJU0EKICAgICAgICAgKHRoZSBvcGNvZGUgdGVsbHMgeW91
IHdoYXQgdGhlIG9wZXJhdGlvbiBkb2VzIGJ1dCBlYWNoIG9wZXJhbmQgaXMgYWxsb3dlZCB0byBh
bHNvIGNvbnRhaW4KICAgICAgICAgZWZmZWN0aXZlbHkgaW5zdHJ1Y3Rpb25zIGZvciB3aGF0IHRv
IGRvIHRvIHJlYWQgb3Igd3JpdGUgdGhhdCBvcGVyYW5kKSwgdGhlIGZsYWdzIGFyZQogICAgICAg
ICBtZWFudCB0byBiZSBvcnRob2dvbmFsIHRvIG9wY29kZS4gVGhpcyBhbGxvd3MgdXMgdG8gc2F5
IHRoaW5ncyBsaWtlIEFkZDMyPFRyYXA+LCB3aGljaAogICAgICAgICBtYWtlcyBzZW5zZSBpZiBh
bnkgb2YgdGhlIG9wZXJhbmRzIHRvIHRoZSBBZGQzMiBhcmUgYWRkcmVzc2VzLgotICAgICAgICAK
KwogICAgICAgICBUbyBkZW1vbnN0cmF0ZSB0aGUgZmxhZ3MgZmFjaWxpdHkgdGhpcyBwYXJ0bHkg
YWRkcyBhIHRyYXAgZmxhZyB0byBBaXIuIEIzIGRvZXNuJ3QgdXNlIGl0CiAgICAgICAgIHlldCwg
YnV0IEkgbWFkZSBzdXJlIHRoYXQgQWlyIHJlc3BlY3RzIGl0LiBCYXNpY2FsbHkgdGhhdCBtZWFu
cyBibG9ja2luZyBEQ0Ugd2hlbiB0aGUgZmxhZwogICAgICAgICBpcyBzZXQsIGJ5IG1ha2luZyBp
dCBpbXBseSBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cy4KQEAgLTcyNjgsMTAgKzczMzMsMTAg
QEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjcy
MQogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KLSAgICAgICAgCisKICAgICAg
ICAgVGhlIHB1dF9ieV9pZC1pbi1wdXRfYnlfdmFsIG9wdGltaXphdGlvbiBoYWQgdGhlIHdyaXRl
IGJhcnJpZXIgaW4gdGhlIHdyb25nIHBsYWNlIGFuZAogICAgICAgICBpbmNvcnJlY3RseSBmaWx0
ZXJlZCBvbiB2YWx1ZSBpbnN0ZWFkIG9mIGJhc2UuCi0gICAgICAgIAorCiAgICAgICAgIE5vIHJl
ZHVjZWQgdGVzdCBjYXNlLiBZb3UgcmVhbGx5IG5lZWQgdG8gcnVuIERyb21hZW8vanNsaWIgdG8g
Y2F0Y2ggaXQuIEkgbG92ZSBEcm9tYWVvJ3MKICAgICAgICAgYWJpbGl0eSB0byBjYXRjaCBHQyBi
dWdzLgogCkBAIC03MzI0LDQyICs3Mzg5LDQyIEBACiAgICAgICAgIE9wY29kZSB3YXMgaG93IHlv
dSBrbmV3IHdoYXQgc3ViY2xhc3Mgb2YgVmFsdWUgeW91IGhhZC4gVGhlIG9wY29kZSB0b2xkIHlv
dSB3aGF0IHRoZSBWYWx1ZQogICAgICAgICBhY3R1YWxseSBkaWQuIFRoaXMgY2hhbmdlIHJlcGxh
Y2VzIE9wY29kZSB3aXRoIEtpbmQsIHdoaWNoIGlzIGEgdHVwbGUgb2Ygb3Bjb2RlIGFuZCBvdGhl
cgogICAgICAgICBzdHVmZi4KLSAgICAgICAgCisKICAgICAgICAgT3Bjb2RlcyBhcmUgZ3JlYXQs
IGFuZCB0aGF0J3MgaG93IG1vc3QgY29tcGlsZXJzIHdvcmsuIEJ1dCBvcGNvZGVzIGFyZSBvbmUt
ZGltZW5zaW9uYWwuIEhlcmUKICAgICAgICAgaXMgaG93IHRoaXMgbWFuaWZlc3RzLiBTYXkgeW91
IGhhdmUgYW4gb3Bjb2RlLCBsaWtlIExvYWQuIFlvdSB3aWxsIGJlIGhhcHB5IGlmIHlvdXIgSVIg
aGFzCiAgICAgICAgIG9uZSBMb2FkIG9wY29kZS4gQnV0IHRoZW4sIHlvdSBtaWdodCBhZGQgTG9h
ZDhTL0xvYWQ4Wi9Mb2FkMTZTL0xvYWQxNlogb3Bjb2RlcywgYXMgd2UgaGF2ZQogICAgICAgICBk
b25lIGluIEIzLiBCMyBoYXMgb25lIGRpbWVuc2lvbiBvZiBMb2FkIG9wY29kZXMsIHdoaWNoIGRl
dGVybWluZXMgc29tZXRoaW5nIGxpa2UgdGhlIEMgdHlwZQogICAgICAgICBvZiB0aGUgbG9hZC4g
QnV0IGluIHRoZSB2ZXJ5IG5lYXIgZnV0dXJlLCB3ZSB3aWxsIHdhbnQgdG8gYWRkIHR3byBtb3Jl
IGRpbWVuc2lvbnMgdG8gTG9hZHM6Ci0gICAgICAgIAorCiAgICAgICAgIC0gQSBmbGFnIHRvIHNh
eSBpZiB0aGUgbG9hZCB0cmFwcy4KICAgICAgICAgLSBBIGZsYWcgdG8gc2F5IGlmIHRoZSBsb2Fk
IGhhcyBhY3F1aXJlIHNlbWFudGljcy4KLSAgICAgICAgCisKICAgICAgICAgTWFwcGluZyB0aGVz
ZSB0aHJlZSBkaW1lbnNpb25zICh0eXBlLCB0cmFwLCBhY3F1aXJlKSBvbnRvIHRoZSBvbmUtZGlt
ZW5zaW9uYWwgT3Bjb2RlIHNwYWNlCiAgICAgICAgIHdvdWxkIGNyZWF0ZSBtYXloYW06IExvYWQ4
UywgTG9hZDhTVHJhcCwgTG9hZDhTQWNxdWlyZSwgTG9hZDhTVHJhcEFjcXVpcmUsIExvYWQ4WiwK
ICAgICAgICAgTG9hZDhaVHJhcCwgZXRjLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGhhcHBl
bnMgaW4gb3RoZXIgcGFydHMgb2YgdGhlIElSLiBGb3IgZXhhbXBsZSwgd2UgaGF2ZSBhIGRpbWVu
c2lvbiBvZiBhcml0aG1ldGljCiAgICAgICAgIG9wZXJhdGlvbnM6IGFkZCwgc3ViLCBtdWwsIGRp
diwgbW9kLCBldGMuIFRoZW4gd2UgaGF2ZSB0aGUgY2hpbGwgZmxhZy4gQnV0IHNpbmNlIG9wY29k
ZXMKICAgICAgICAgYXJlIG9uZS1kaW1lbnNpb25hbCwgdGhhdCBtZWFucyBoYXZpbmcgQ2hpbGxE
aXYgYW5kIENoaWxsTW9kLCBhbmQgdG9ucyBvZiBwbGFjZXMgaW4gdGhlCiAgICAgICAgIGNvbXBp
bGVyIHRoYXQgY2FzZSBvbiBib3RoIERpdiBhbmQgQ2hpbGxEaXYsIG9yIGNhc2Ugb24gYm90aCBN
b2QgYW5kIENoaWxsTW9kLCBzaW5jZSB0aGV5CiAgICAgICAgIGFyZSBvbmx5IGludGVyZXN0ZWQg
aW4gdGhlIGtpbmQgb2YgYXJpdGhtZXRpYyBiZWluZyBkb25lIGFuZCBub3QgdGhlIGNoaWxsbmVz
cy4KLSAgICAgICAgCisKICAgICAgICAgVGhvdWdoIHRoZSBleGFtcGxlcyBhbGwgaW52b2x2ZSBi
aXRzIChjaGlsbCBvciBub3QsIHRyYXBwaW5nIG9yIG5vdCwgZXRjKSwgSSBjYW4gaW1hZ2luZQog
ICAgICAgICBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgYmVoYXZlIG1vcmUgbGlrZSBzbWFsbCBlbnVt
cywgbGlrZSBpZiB3ZSBmaWxsIG91dCBtb3JlIG1lbW9yeSBvcmRlcmluZwogICAgICAgICBtb2Rl
cyBvdGhlciB0aGFuIGp1c3QgImFjcXVpcmU/IHllcy9ubyIuIFRoZXJlIHdpbGwgZXZlbnR1YWxs
eSBoYXZlIHRvIGJlIHNvbWV0aGluZyBsaWtlIGEKICAgICAgICAgc3RkOjptZW1vcnlfb3JkZXIg
YXNzb2NpYXRlZCB3aXRoIG1lbW9yeSBhY2Nlc3Nlcy4KLSAgICAgICAgCisKICAgICAgICAgT25l
IGFwcHJvYWNoIHRvIHRoaXMgcHJvYmxlbSBpcyB0byBoYXZlIGEgVmFsdWUgc3ViY2xhc3MgdGhh
dCBjb250YWlucyBmaWVsZHMgd2l0aCB0aGUgbWV0YQogICAgICAgICBkYXRhLiBJIGRvbid0IGxp
a2UgdGhpcyBmb3IgdHdvIHJlYXNvbnM6Ci0gICAgICAgIAorCiAgICAgICAgIC0gSW4gYnVnIDE2
MjY4OCwgSSB3YW50IHRvIG1ha2UgdHJhcHBpbmcgbWVtb3J5IGFjY2Vzc2VzIGhhdmUgc3RhY2tt
YXBzLiBUaGlzIG1lYW5zIHRoYXQgYQogICAgICAgICAgIHRyYXBwaW5nIG1lbW9yeSBhY2Nlc3Mg
d291bGQgaGF2ZSBhIGRpZmZlcmVudCBWYWx1ZSBzdWJjbGFzcyB0aGFuIGEgbm9uLXRyYXBwaW5n
IG1lbW9yeQogICAgICAgICAgIGFjY2Vzcy4gU28sIHRoaXMgbWV0YS1kYXRhIG5lZWRzIHRvIGNo
YW5uZWwgaW50byBWYWx1ZVR5cGU6OmFjY2VwdHMoKS4gQ3VycmVudGx5IHRoYXQKICAgICAgICAg
ICB0YWtlcyBPcGNvZGUgYW5kIG5vdGhpbmcgZWxzZS4KLSAgICAgICAgCisKICAgICAgICAgLSBD
b21waWxlciBJUnMgYXJlIGFsbCBhYm91dCBtYWtpbmcgY29tbW9uIHRhc2tzIGVhc3kuIElmIGl0
IGJlY29tZXMgY29tbW9ucGxhY2UgZm9yIG9wY29kZXMKICAgICAgICAgICB0byByZXF1aXJlIGEg
Y3VzdG9tIFZhbHVlIHN1YmNsYXNzIGp1c3QgZm9yIGEgYml0IHRoZW4gdGhhdCdzIG5vdCB2ZXJ5
IGVhc3kuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgY2hhbmdlIGFkZHJlc3NlcyB0aGlzIHBy
b2JsZW0gYnkgbWFraW5nIHRoZSBjb21waWxlciBwYXNzIGFyb3VuZCBLaW5kcyByYXRoZXIgdGhh
bgogICAgICAgICBPcGNvZGVzLiBBIEtpbmQgY29udGFpbnMgYW4gT3Bjb2RlIGFzIHdlbGwgYXMg
YW55IG51bWJlciBvZiBvcGNvZGUtc3BlY2lmaWMgYml0cy4gVGhpcwogICAgICAgICBjaGFuZ2Ug
ZGVtb25zdHJhdGVzIGhvdyBLaW5kIHNob3VsZCBiZSB1c2VkIGJ5IGNvbnZlcnRpbmcgY2hpbGxu
ZXNzIHRvIGl0LiBLaW5kIGhhcwpAQCAtNzM2OCwxMCArNzQzMywxMCBAQAogICAgICAgICBjaGls
bChEaXYpLiBJUiBkdW1wcyB3aWxsIHByaW50IGl0IGxpa2UgdGhpczoKIAogICAgICAgICAgICAg
SW50MzIgQDM4ID0gRGl2PENoaWxsPihAMzYsIEAzNywgREZHOkAyNCwgQ29udHJvbERlcGVuZGVu
dCkKLSAgICAgICAgCisKICAgICAgICAgV2hlcmUgIkRpdjxDaGlsbD4iIGlzIGhvdyBhIEtpbmQg
dGhhdCBoYXNFeHRyYUJpdHMoKSBkdW1wcyBpdHNlbGYuIElmIGEgS2luZCBkb2VzIG5vdAogICAg
ICAgICBoYXNFeHRyYUJpdHMoKSAodGhlIG5vcm1hbCBjYXNlKSB0aGVuIGl0IGR1bXBzIGxpa2Ug
YSBub3JtYWwgT3Bjb2RlICh3aXRob3V0IHRoZSAiPD4iKS4KLSAgICAgICAgCisKICAgICAgICAg
SSByZXBsYWNlZCBtYW55IHVzZXMgb2YgT3Bjb2RlIHdpdGggS2luZC4gTmV3IGNvZGUgaGFzIHRv
IGJlIG1pbmRmdWwgdGhhdCBPcGNvZGUgbWF5IG5vdCBiZQogICAgICAgICB0aGUgcmlnaHQgd2F5
IHRvIHN1bW1hcml6ZSB3aGF0IGEgdmFsdWUgZG9lcywgYW5kIHNvIGluIG1hbnkgY2FzZXMgaXQn
cyBiZXR0ZXIgdG8gY2FycnkKICAgICAgICAgYXJvdW5kIGEgS2luZCBpbnN0ZWFkIC0gZXNwZWNp
YWxseSBpZiB5b3Ugd2lsbCB1c2UgaXQgdG8gc3RhbXAgb3V0IG5ldyBWYWx1ZXMuIE9wY29kZSBp
cyBubwpAQCAtNzM3OSw3ICs3NDQ0LDcgQEAKICAgICAgICAgbm93IHdhbnRzIGEgS2luZCBpbnN0
ZWFkIG9mIGFuIE9wY29kZS4gQWxsIFZhbHVlIGNvbnN0cnVjdG9ycyBub3cgdGFrZSBLaW5kIGlu
c3RlYWQgb2YKICAgICAgICAgT3Bjb2RlLiBCdXQgbW9zdCBvcGNvZGVzIGRvbid0IGdldCBhbnkg
ZXh0cmEgS2luZCBiaXRzLCBhbmQgc28gdGhlIGNvZGUgdGhhdCBvcGVyYXRlcyBvbgogICAgICAg
ICB0aG9zZSBvcGNvZGVzIGlzIGxhcmdlbHkgdW5jaGFuZ2VkLgotICAgICAgICAKKwogICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgogICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CiAgICAgICAgICogYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmg6CkBAIC03
NTA2LDI5ICs3NTcxLDI5IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjIzMTYKIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4K
LSAgICAgICAgCisKICAgICAgICAgVGhpcyBtYWtlcyBvdXIgd3JpdGUgYmFycmllciBiZWhhdmUg
Y29ycmVjdGx5IHdoZW4gaXQgcmFjZXMgd2l0aCB0aGUgY29sbGVjdG9yLiBUaGUKICAgICAgICAg
Y29sbGVjdG9yIHdhbnRzIHRvIGRvIHRoaXMgd2hlbiB2aXNpdGluZzoKLSAgICAgICAgCisKICAg
ICAgICAgICAgIG9iamVjdC0+Y2VsbFN0YXRlID0gYmxhY2sKICAgICAgICAgICAgIHZpc2l0KG9i
amVjdCkKLSAgICAgICAgCisKICAgICAgICAgVGhlIG11dGF0b3Igd2FudHMgdG8gZG8gdGhpcyB3
aGVuIHN0b3Jpbmc6Ci0gICAgICAgIAorCiAgICAgICAgICAgICBvYmplY3QtPnByb3BlcnR5ID0g
bmV3VmFsdWUKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNlbGxTdGF0ZSA9PSBibGFjaykKICAg
ICAgICAgICAgICAgICByZW1lbWJlcihvYmplY3QpCi0gICAgICAgIAorCiAgICAgICAgIFByaW9y
IHRvIHRoaXMgY2hhbmdlLCB0aGlzIGRpZG4ndCB3b3JrIHJpZ2h0IGJlY2F1c2UgdGhlIGNvbXBp
bGVyIHdvdWxkIHNvbWV0aW1lcyBwbGFjZQogICAgICAgICBiYXJyaWVycyBiZWZvcmUgdGhlIHN0
b3JlIHRvIHRoZSBwcm9wZXJ0eSBhbmQgYmVjYXVzZSB0aGUgbXV0YXRvciBkaWQgbm90IGhhdmUg
YWRlcXVhdGUKICAgICAgICAgZmVuY2VzLgotICAgICAgICAKKwogICAgICAgICBQcmlvciB0byB0
aGlzIGNoYW5nZSwgdGhlIERGRyBhbmQgRlRMIHdvdWxkIGVtaXQgdGhpczoKLSAgICAgICAgCisK
ICAgICAgICAgICAgIGlmIChvYmplY3QtPmNlbGxTdGF0ZSA9PSBibGFjaykKICAgICAgICAgICAg
ICAgICByZW1lbWJlcihvYmplY3QpCiAgICAgICAgICAgICBvYmplY3QtPnByb3BlcnR5ID0gbmV3
VmFsdWUKLSAgICAgICAgCisKICAgICAgICAgV2hpY2ggaXMgd3JvbmcsIGJlY2F1c2UgdGhlIG9i
amVjdCBjb3VsZCBzdGFydCBiZWluZyBzY2FubmVkIGp1c3QgYWZ0ZXIgdGhlIGNlbGxTdGF0ZQog
ICAgICAgICBjaGVjaywgYXQgd2hpY2ggcG9pbnQgdGhlIHN0b3JlIHdvdWxkIGJlIGxvc3QuIFdl
IG5lZWQgdG8gY29uZmlybSB0aGF0IHRoZSBzdGF0ZSB3YXMgbm90CiAgICAgICAgIGJsYWNrICph
ZnRlciogdGhlIHN0b3JlISBUaGlzIGNoYW5nZSB3YXMgaGFyZGVyIHRoYW4geW91J2QgZXhwZWN0
OiBwbGFjaW5nIHRoZSBiYXJyaWVyCkBAIC03NTM5LDcgKzc2MDQsNyBAQAogICAgICAgICAoYmVj
YXVzZSBvZiB0aGUgc3RvcmUtbG9hZCBmZW5jZSkgYW5kIGl0IHdyaXRlcyBvbmx5IGNlbGxTdGF0
ZSAoYmVjYXVzZSB0aGUgQjMgaGVhcCByYW5nZXMKICAgICAgICAgZG9uJ3QgaGF2ZSBhbnkgd2F5
IHRvIHJlcHJlc2VudCBhbnkgb2YgdGhlIEdDJ3Mgb3RoZXIgc3RhdGUsIHdoaWNoIG1lYW5zIHRo
YXQgQjMgZG9lcyBub3QKICAgICAgICAgaGF2ZSB0byB3b3JyeSBhYm91dCBhbGlhc2luZyB3aXRo
IGFueSBvZiB0aGF0KS4KLSAgICAgICAgCisKICAgICAgICAgVGhlIGNvbGxlY3RvciBhbHJlYWR5
IHVzZXMgYSBzdG9yZS1sb2FkIGZlbmNlIG9uIHg4NiBqdXN0IGFmdGVyIHNldHRpbmcgdGhlIGNl
bGxTdGF0ZSBhbmQKICAgICAgICAgYmVmb3JlIHZpc2l0aW5nIHRoZSBvYmplY3QuIFRoZSBtdXRh
dG9yIG5lZWRzIHRvIGRvIHRoZSBzYW1lLiBCdXQgd2UgY2Fubm90IHB1dCBhCiAgICAgICAgIHN0
b3JlLWxvYWQgZmVuY2Ugb2YgYW55IGtpbmQgYmVmb3JlIHN0b3JlIGJhcnJpZXJzLCBiZWNhdXNl
IHRoYXQgY2F1c2VzIGVub3Jtb3VzIHNsb3cKQEAgLTc1NDgsMTAgKzc2MTMsMTAgQEAKICAgICAg
ICAgcmVhc29uYWJsZSBpZiB0aGUgc2xvdyBkb3duIG9ubHkgaGFwcGVuZWQgd2hpbGUgdGhlIEdD
IHdhcyBydW5uaW5nLiBUaGVuLCB0aGUgY29uY3VycmVudCBHQwogICAgICAgICB3b3VsZCBsaWZ0
IHRocm91Z2hwdXQtd2hpbGUtY29sbGVjdGluZyBmcm9tIDAlIG9mIHBlYWsgdG8gODUlIG9mIHBl
YWsuIFRoaXMgY2hhbmdlcyB0aGUKICAgICAgICAgYmFycmllciBzbyB0aGF0IGl0IGxvb2tzIGxp
a2UgdGhpczoKLSAgICAgICAgCisKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNlbGxTdGF0ZSA8
PSBoZWFwLnNuZWFreUJsYWNrVGhyZXNob2xkKQogICAgICAgICAgICAgICAgIHNsb3dQYXRoKG9i
amVjdCkKLSAgICAgICAgCisKICAgICAgICAgV2hlcmUgc25lYWt5QmxhY2tUaHJlc2hvbGQgaXMg
dGhlIG5vcm1hbCBibGFja1RocmVzaG9sZCB3aGVuIHdlJ3JlIG5vdCBjb2xsZWN0aW5nLCBvciBh
CiAgICAgICAgIHRhdXRvbGlnaWNhbCB0aHJlc2hvbGQgKHRoYXQgbWFrZXMgZXZlcnl0aGluZyBs
b29rIGJsYWNrKSB3aGVuIHdlIGFyZSBjb2xsZWN0aW5nLiBUaGlzCiAgICAgICAgIHR1cm5zIG91
dCB0byBub3QgYmUgYW55IG1vcmUgZXhwZW5zaXZlIHRoYW4gdGhlIGJhcnJpZXIgaW4gdGlwIG9m
IHRyZWUgd2hlbiB0aGUgR0MgaXMgbm90CkBAIC03NTU5LDcgKzc2MjQsNyBAQAogICAgICAgICBj
b25jdXJyZW50bHkgeWV0LiBJIHN0aWxsIGhhdmUgbW9yZSB3b3JrIHRvIGRvLikgVGhlIHNsb3dQ
YXRoKCkgZG9lcyBzb21lIGV4dHJhIHdvcmsgdG8KICAgICAgICAgY2hlY2sgaWYgd2UgYXJlIGNv
bmN1cnJlbnRseSBjb2xsZWN0aW5nOyBpZiBzbywgaXQgZG9lcyBhIGZlbmNlIGFuZCByZWNoZWNr
cyBpZiB0aGUgb2JqZWN0CiAgICAgICAgIHJlYWxseSBkaWQgbmVlZCB0aGF0IGJhcnJpZXIuCi0g
ICAgICAgIAorCiAgICAgICAgIFRoaXMgYWxzbyByZWludHJvZHVjZXMgZWxpbWluYXRpb24gb2Yg
cmVkdW5kYW50IHN0b3JlIGJhcnJpZXJzLCB3aGljaCB3YXMgbG9zdCBpbiB0aGUgbGFzdAogICAg
ICAgICBzdG9yZSBiYXJyaWVyIGNoYW5nZS4gV2UgY2FuIG9ubHkgZG8gaXQgd2hlbiB0aGVyZSBp
cyBubyBwb3NzaWJpbGl0eSBvZiBHQywgZXhpdCwgb3IKICAgICAgICAgZXhjZXB0aW9ucyBiZXR3
ZWVuIHRoZSB0d28gc3RvcmUgYmFycmllcnMuIFdlIGNvdWxkIHJlbW92ZSB0aGUgZXhpdC9leGNl
cHRpb24gbGltaXRhdGlvbiBpZgpAQCAtNzU2OSw3ICs3NjM0LDcgQEAKICAgICAgICAgc2FtZSBv
YmplY3QuIFRoaXMgc2FtZSBvcHRpbWl6YXRpb24gYWxzbyBzb21ldGltZXMgc3RyZW5ndGgtcmVk
dWNlcyB0aGUgc3RvcmUgYmFycmllciBzbwogICAgICAgICB0aGF0IGl0IHVzZXMgYSBjb25zdGFu
dCBibGFjayB0aHJlc2hvbGQgcmF0aGVyIHRoYW4gdGhlIHNuZWFreSBvbmUsIHRoZXJlYnkgc2F2
aW5nIG9uZQogICAgICAgICBsb2FkLgotICAgICAgICAKKwogICAgICAgICBFdmVuIHdpdGggYWxs
IG9mIHRob3NlIG9wdGltaXphdGlvbnMsIEkgc3RpbGwgaGFkIHByb2JsZW1zIHdpdGggYmFycmll
ciBjb3N0LiBJIGZvdW5kIHRoYXQgb25lCiAgICAgICAgIG9mIHRoZSBiZW5jaG1hcmtzIHRoYXQg
d2FzIGJlaW5nIGhpdCBwYXJ0aWN1bGFybHkgaGFyZCB3YXMgSmV0U3RyZWFtL3JlZ2V4cC0yMDEw
LiBGb3J0dW5hdGVseQogICAgICAgICB0aGF0IGJlbmNobWFyayBkb2VzIG1vc3Qgb2YgaXRzIGJh
cnJpZXJzIGluIGEgdGlnaHQgQysrIGxvb3AgaW4gUmVnRXhwTWF0Y2hlc0FycmF5LmguIFdoZW4g
d2UKQEAgLTc1NzksMTMgKzc2NDQsMTMgQEAKICAgICAgICAgb3B0aW1pemF0aW9uLiBUaGUgbW9z
dCBlZmZpY2llbnQgdmVyc2lvbiBvZiBzdWNoIGFuIG9wdGltaXphdGlvbiB0aGF0IEkgY291bGQg
Y29tZSB1cCB3aXRoIHdhcwogICAgICAgICB0byBoYXZlIGEgRGVmZXJyYWxDb250ZXh0IG9iamVj
dCB0aGF0IGhvdXNlcyBhIGJvb2xlYW4gdGhhdCBpcyBmYWxzZSBieSBkZWZhdWx0LCBidXQgdGhl
IEdDCiAgICAgICAgIHdyaXRlcyB0cnVlIGludG8gaXQgaWYgaXQgd291bGQgaGF2ZSB3YW50ZWQg
dG8gR0MuIFlvdSB0aHJlYWQgYSBwb2ludGVyIHRvIHRoZSBkZWZlcnJhbENvbnRleHQKLSAgICAg
ICAgdGhyb3VnaCBhbGwgb2YgeW91ciBhbGxvY2F0aW9ucy4gVGhpcyBraW5kIG9mIG1lY2hhbmlz
bSBoYXMgdGhlIG92ZXJoZWFkIG9mIGEgemVybyAKKyAgICAgICAgdGhyb3VnaCBhbGwgb2YgeW91
ciBhbGxvY2F0aW9ucy4gVGhpcyBraW5kIG9mIG1lY2hhbmlzbSBoYXMgdGhlIG92ZXJoZWFkIG9m
IGEgemVybwogICAgICAgICBpbml0aWFsaXphdGlvbiBvbiB0aGUgc3RhY2sgb24gZW50cnkgYW5k
IGEgemVybyBjaGVjayBvbiBleGl0LiBUaGlzIGlzIHByb2JhYmx5IGV2ZW4gZWZmaWNpZW50CiAg
ICAgICAgIGVub3VnaCB0aGF0IHdlIGNvdWxkIHN0YXJ0IHRoaW5raW5nIGFib3V0IGhhdmluZyB0
aGUgREZHIHVzZSBpdCwgZm9yIGV4YW1wbGUgaWYgd2UgZm91bmQgYQogICAgICAgICBib3VuZGVk
LXRpbWUgc2VjdGlvbiBvZiBjb2RlIHdpdGggYSBsb3Qgb2YgYmFycmllcnMgYW5kIGVudHJ5L2V4
aXQgc2l0ZXMgdGhhdCBhcmVuJ3QgdG90YWxseQogICAgICAgICB3YWNreS4gVGhpcyBvcHRpbWl6
YXRpb24gdG9vayB0aGlzIHBhdGNoIGZyb20gMC42OCUgSmV0U3RyZWFtIHJlZ3Jlc3NlZCB0byBu
ZXV0cmFsLCBhY2NvcmRpbmcKICAgICAgICAgdG8gbXkgbGF0ZXN0IGRhdGEuCi0gICAgICAgIAor
CiAgICAgICAgIEZpbmFsbHksIGFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIGNoYW5nZSBwdXQg
dGhlIHN0b3JlLWxvYWQgZmVuY2UgaW4gQjMgSVIsIHNvIEkgZW5kZWQgdXAKICAgICAgICAgYWRk
aW5nIEZUTE91dHB1dCBzdXBwb3J0IGZvciBpdCBhbmQgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeSBt
YWdpYyBmb3IgZGVjb3JhdGluZyB0aGUgaGVhcHMuCiAgICAgICAgIEkgdGhpbmsgd2UgbWlnaHQg
YXMgd2VsbCBrZWVwIHRoYXQsIGl0J2xsIGJlIHVzZWZ1bC4KQEAgLTc5NjEsNyArODAyNiw3IEBA
CiAKICAgICAgICAgTWFrZSB0aGUgc3ViY2xhc3Mgb2YgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yIHRo
YXQgdGFrZXMgYXJndW1lbnRzIHZhcmlhZGljCiAgICAgICAgIHNvIGl0IGNhbiB0YWtlIGFueSBu
dW1iZXIgb2YgYXJndW1lbnRzLiBBbHNvIHVwZGF0ZXMgdGhlIHNsb3dQYXRoQ2FsbCBoZWxwZXIK
LSAgICAgICAgZnVuY3Rpb24gdG8gYmUgdmFyaWFkaWMuIEkgaGFkIHRvIG1vdmUgdGhlIHNwaWxs
IG1vZGUgYW5kIGV4Y2VwdGlvbiBjaGVjayAKKyAgICAgICAgZnVuY3Rpb24gdG8gYmUgdmFyaWFk
aWMuIEkgaGFkIHRvIG1vdmUgdGhlIHNwaWxsIG1vZGUgYW5kIGV4Y2VwdGlvbiBjaGVjawogICAg
ICAgICByZXF1aXJlbWVudCBwYXJhbWV0ZXJzIHRvIGJlZm9yZSB0aGUgYXJndW1lbnRzIHNpbmNl
IHRoZSB2YXJpYWRpYyBhcmd1bWVudHMKICAgICAgICAgbXVzdCBiZSBhdCB0aGUgZW5kLiBBcyBh
IGNvbnZlbmllbmNlLCBJIGFkZGVkIGFuIG92ZXJsb2FkIG9mIHNsb3dQYXRoQ2FsbCB0aGF0CiAg
ICAgICAgIGRvZXNuJ3QgdGFrZSBzcGlsbCBtb2RlIGFuZCBleGNlcHRpb24gY2hlY2sgcmVxdWly
ZW1lbnQgcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAy
NjA4ZjJjNGFmMzg5MDFiMmI4MTA4MGYyNGM5YzBkMWZiNWU5YjcwLi5hMTg3ZWY4ZTZmZGFhOTFm
MGU4Y2FkOWFlYzdkOTJiMjg2YzQ4MzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC04NzgsOSArODc4LDExIEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAg
d2FzbS9KU1dlYkFzc2VtYmx5LmNwcAogICAgIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCiAg
ICAgd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisgICAgd2FzbS9XYXNtRm9ybWF0LmNw
cAogICAgIHdhc20vV2FzbU1lbW9yeS5jcHAKICAgICB3YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3Bw
CiAgICAgd2FzbS9XYXNtUGxhbi5jcHAKKyAgICB3YXNtL1dhc21WYWxpZGF0ZS5jcHAKIAogICAg
IHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKICAgICB3YXNtL2pzL0pTV2Vi
QXNzZW1ibHlJbnN0YW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNzM4YzEzNjgyMzZhNWRhZTIzNWU5NmU5Y2M3MDg2ZDEzNDIzODZiYy4uYjMw
YzMwNWFjZTM1YmFiY2E4Y2VjMThjNzZjZjlkYzcxZmY5NjAyYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY0LDYgKzY0LDcgQEAgYWxsIDogXAogICAg
IEFpck9wY29kZS5oIFwKICAgICBZYXJyQ2Fub25pY2FsaXplVW5pY29kZS5jcHAgXAogICAgIFdh
c21PcHMuaCBcCisgICAgV2FzbVZhbGlkYXRlSW5saW5lcy5oIFwKICMKIAogIyBKYXZhU2NyaXB0
IGJ1aWx0aW5zLgpAQCAtMzAxLDYgKzMwMiw5IEBAIFlhcnJDYW5vbmljYWxpemVVbmljb2RlLmNw
cDogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGVZYXJyQ2Fub25pY2FsaXplVW5pY29kZSAkCiBX
YXNtT3BzLmg6ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5
ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJhdGVXYXNtLnB5ICQoSmF2YVNjcmlwdENvcmUp
L3dhc20vd2FzbS5qc29uCiAJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJh
dGVXYXNtT3BzSGVhZGVyLnB5ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vd2FzbS5qc29uIC4vV2Fz
bU9wcy5oCiAKK1dhc21WYWxpZGF0ZUlubGluZXMuaDogJChKYXZhU2NyaXB0Q29yZSkvd2FzbS9n
ZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkgJChKYXZhU2NyaXB0Q29yZSkvd2Fz
bS9nZW5lcmF0ZVdhc20ucHkgJChKYXZhU2NyaXB0Q29yZSkvd2FzbS93YXNtLmpzb24KKwkkKFBZ
VEhPTikgJChKYXZhU2NyaXB0Q29yZSkvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNI
ZWFkZXIucHkgJChKYXZhU2NyaXB0Q29yZSkvd2FzbS93YXNtLmpzb24gLi9XYXNtVmFsaWRhdGVJ
bmxpbmVzLmgKKwogIyBEeW5hbWljYWxseS1kZWZpbmVkIHRhcmdldHMgYXJlIGxpc3RlZCBiZWxv
dy4gU3RhdGljIHRhcmdldHMgYmVsb25nIHVwIHRvcC4KIAogYWxsIDogXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA0MzU1YmRiMjViODYyYzI3NDdhNDJkOWEwOGU4MTc2NWEzM2Nk
ZDRhLi43NjVjYTU4NTdiNTRlYzkxNjYxMTYzMmY4NGY2ZjM0OGE2ODYwMWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIyNyw2ICsxMjI3LDcgQEAKIAkJNTJDOTUyQjkxOUEy
OEExQzAwNjlCMzg2IC8qIFR5cGVQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkM5NTJCODE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVBy
b2ZpbGVyLmNwcCAqLzsgfTsKIAkJNTMxMzc0QkQxRDVDRTY3NjAwQUY3QTBCIC8qIFdhc21QbGFu
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzEzNzRC
QzFENUNFNjc2MDBBRjdBMEIgLyogV2FzbVBsYW4uaCAqLzsgfTsKIAkJNTMxMzc0QkYxRDVDRTk1
MDAwQUY3QTBCIC8qIFdhc21QbGFuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUzMTM3NEJFMUQ1Q0U5NTAwMEFGN0EwQiAvKiBXYXNtUGxhbi5jcHAg
Ki87IH07CisJCTUzM0IxNURGMURDN0Y0NjMwMDRENTAwQSAvKiBXYXNtT3BzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzNCMTVERTFEQzdGNDYzMDA0
RDUwMEEgLyogV2FzbU9wcy5oICovOyB9OwogCQk1MzQxRkM3MDFEQUMzM0U1MDBFN0U0RDcgLyog
QjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MzQxRkM2RjFEQUMzM0U1MDBFN0U0RDcgLyogQjNXYXNtQm91bmRz
Q2hlY2tWYWx1ZS5jcHAgKi87IH07CiAJCTUzNDFGQzcyMURBQzM0M0MwMEU3RTRENyAvKiBCM1dh
c21Cb3VuZHNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzQxRkM3MTFEQUMzNDNDMDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tW
YWx1ZS5oICovOyB9OwogCQk1MzQ4NkJCNzFDMTc5NUMzMDBGNkYzQUYgLyogSlNUeXBlZEFycmF5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzQ4NkJC
NjFDMTc5NUMzMDBGNkYzQUYgLyogSlNUeXBlZEFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OwpAQCAtMTI1MCw3ICsxMjUxLDYgQEAKIAkJNTNGNDBF
OEIxRDU5MDFCQjAwOTlBMUI2IC8qIFdhc21GdW5jdGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNDBFOEExRDU5MDFCQjAwOTlBMUI2
IC8qIFdhc21GdW5jdGlvblBhcnNlci5oICovOyB9OwogCQk1M0Y0MEU4RDFENTkwMUYyMDA5OUEx
QjYgLyogV2FzbVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTNGNDBFOEMxRDU5MDFGMjAwOTlBMUI2IC8qIFdhc21QYXJzZXIuaCAqLzsgfTsK
IAkJNTNGNDBFOEYxRDU5MDI4MjAwOTlBMUI2IC8qIFdhc21CM0lSR2VuZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRThFMUQ1OTAy
ODIwMDk5QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5jcHAgKi87IH07Ci0JCTUzRjQwRTkxMUQ1
OTAzMDIwMDk5QTFCNiAvKiBXYXNtT3BzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1M0Y0MEU5MDFENTkwMzAyMDA5OUExQjYgLyogV2FzbU9wcy5oICov
OyB9OwogCQk1M0Y0MEU5MzFENUE0QUIzMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRTkyMUQ1
QTRBQjMwMDk5QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5oICovOyB9OwogCQk1M0Y0MEU5NTFE
NUE3QUVGMDA5OUExQjYgLyogV2FzbU1vZHVsZVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNDBFOTQxRDVBN0FFRjAwOTlBMUI2IC8qIFdh
c21Nb2R1bGVQYXJzZXIuaCAqLzsgfTsKIAkJNTNGNDBFOTcxRDVBN0JFQzAwOTlBMUI2IC8qIFdh
c21Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTNGNDBFOTYxRDVBN0JFQzAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3Bw
ICovOyB9OwpAQCAtMTI1OSwxMyArMTI1OSwxNiBAQAogCQk1M0ZBMkFFMzFDRjM4MDM5MDAyMjcx
MUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkEyQUUyMUNG
MzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNo
cG9pbnQuY3BwICovOyB9OwogCQk1M0ZEMDREMzFEN0FCMjc3MDAzMjg3RDMgLyogV2FzbUNhbGxp
bmdDb252ZW50aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRkQwNEQxMUQ3QUIxODcwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24u
Y3BwICovOyB9OwogCQk1M0ZEMDRENDFEN0FCMjkxMDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252
ZW50aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
M0ZEMDREMjFEN0FCMTg3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmggKi87IH07
Ci0JCTVDNEU4RTk2MURCRUJFNjIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEU4RTk0MURCRUJEQTIw
MDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmNwcCAqLzsgfTsKKwkJNTNGRjdGOTkxREJGQ0Q5MDAw
QTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTNGRjdGOTgxREJGQ0Q5MDAwQTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5o
ICovOyB9OworCQk1M0ZGN0Y5QjFEQkZEMkI5MDBBMjZDQ0MgLyogV2FzbVZhbGlkYXRlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkY3RjlBMURC
RkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuY3BwICovOyB9OworCQk1M0ZGN0Y5RDFEQzAw
REIxMDBBMjZDQ0MgLyogV2FzbUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZGN0Y5QzFEQzAwREIxMDBBMjZDQ0MgLyogV2FzbUZvcm1h
dC5jcHAgKi87IH07CiAJCTVCNzBDRkRFMURCNjlFNjYwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNzBD
RkQ4MURCNjlFNUMwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rpb24uaCAqLzsgfTsKIAkJNUI3MENG
REYxREI2OUU2NjAwRUMyM0Y5IC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjcwQ0ZEOTFEQjY5RTVDMDBFQzIzRjkg
LyogSlNBc3luY0Z1bmN0aW9uLmNwcCAqLzsgfTsKIAkJNUI3MENGRTAxREI2OUU2NjAwRUMyM0Y5
IC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVCNzBDRkRBMURCNjlFNUMwMEVDMjNGOSAvKiBBc3luY0Z1bmN0
aW9uUHJvdG90eXBlLmggKi87IH07CiAJCTVCNzBDRkUxMURCNjlFNjYwMEVDMjNGOSAvKiBBc3lu
Y0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVCNzBDRkRCMURCNjlFNUMwMEVDMjNGOSAvKiBBc3luY0Z1bmN0aW9uUHJv
dG90eXBlLmNwcCAqLzsgfTsKIAkJNUI3MENGRTIxREI2OUU2NjAwRUMyM0Y5IC8qIEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUI3MENGREMxREI2OUU1QzAwRUMyM0Y5IC8qIEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3Rvci5oICovOyB9OwogCQk1QjcwQ0ZFMzFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVCNzBDRkREMURCNjlFNUMwMEVDMjNGOSAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IuY3BwICovOyB9OworCQk1QzRFOEU5NjFEQkVCRTYyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRF
OEU5NDFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVzdC5jcHAgKi87IH07CiAJCTVENUQ4
QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8q
IGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQzNiAvKiB0ZXN0
YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMgKi87IH07CiAJ
CTVEQkIxNTI1MTMxRDBCRDcwMDU2QUQzNiAvKiBtaW5pZG9tLmpzIGluIENvcHkgU3VwcG9ydCBT
Y3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMjExMEQwQTQ4Nzg4
NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi87IH07CkBAIC0zNTUyLDYgKzM1NTUsNyBAQAogCQk1
MkM5NTJCODE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVByb2ZpbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFR5cGVQcm9maWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUz
MTM3NEJDMUQ1Q0U2NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXYXNtUGxhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MzEzNzRCRTFENUNFOTUwMDBBRjdBMEIgLyogV2FzbVBsYW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbVBsYW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MzNCMTVERTFEQzdGNDYzMDA0RDUwMEEgLyogV2FzbU9wcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtT3BzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUzNDFGQzZGMURBQzMzRTUwMEU3RTRENyAvKiBCM1dhc21Cb3VuZHNDaGVja1ZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzV2FzbUJvdW5kc0No
ZWNrVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNDFGQzcxMURBQzM0M0MwMEU3RTRENyAvKiBCM1dh
c21Cb3VuZHNDaGVja1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIz
V2FzbUJvdW5kc0NoZWNrVmFsdWUuaDsgcGF0aCA9IGIzL0IzV2FzbUJvdW5kc0NoZWNrVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM0ODZCQjYxQzE3OTVDMzAwRjZGM0FG
IC8qIEpTVHlwZWRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1R5
cGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzksNyArMzU4Myw2
IEBACiAJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rpb25QYXJzZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUZ1bmN0aW9uUGFyc2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjQwRThDMUQ1OTAxRjIwMDk5QTFCNiAvKiBX
YXNtUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21QYXJzZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOEUxRDU5MDI4MjAwOTlBMUI2
IC8qIFdhc21CM0lSR2VuZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdhc21CM0lSR2VuZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTNGNDBFOTAxRDU5MDMwMjAwOTlBMUI2IC8qIFdhc21PcHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2FzbU9wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1M0Y0MEU5MjFENUE0QUIzMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUIzSVJHZW5lcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOTQxRDVBN0FFRjAwOTlBMUI2IC8qIFdhc21Nb2R1
bGVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbU1vZHVsZVBh
cnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0Y0MEU5NjFENUE3QkVDMDA5
OUExQjYgLyogV2FzbU1vZHVsZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXYXNtTW9kdWxlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTM1ODgsOCArMzU5MSw5IEBACiAJCTUzRkEyQUUyMUNGMzgwMzkwMDIyNzExRCAvKiBM
TEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNG
RDA0RDExRDdBQjE4NzAwMzI4N0QzIC8qIFdhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0ZEMDREMjFEN0FCMTg3MDAzMjg3RDMg
LyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdhc21DYWxsaW5nQ29udmVudGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1QzRFOEU5NDFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU09OUGFyc2VUZXN0LmNwcDsgcGF0aCA9IEFQ
SS90ZXN0cy9KU09OUGFyc2VUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NUM0RThFOTUxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJzZVRlc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNPTlBhcnNlVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0pT
T05QYXJzZVRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNGRjdGOTgxREJG
Q0Q5MDAwQTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXYXNtVmFsaWRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNG
RjdGOUExREJGRDJCOTAwQTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtVmFsaWRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1M0ZGN0Y5QzFEQzAwREIxMDBBMjZDQ0MgLyogV2FzbUZvcm1hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtRm9ybWF0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUI3MENGRDgxREI2OUU1QzAwRUMyM0Y5IC8qIEpT
QXN5bmNGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FzeW5j
RnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUI3MENGRDkxREI2OUU1
QzAwRUMyM0Y5IC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0FzeW5jRnVuY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QjcwQ0ZEQTFEQjY5RTVDMDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0Z1bmN0aW9uUHJvdG90
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTk3LDYgKzM2MDEsOCBAQAog
CQk1QjcwQ0ZEQzFEQjY5RTVDMDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QjcwQ0ZERDFEQjY5RTVDMDBFQzIz
RjkgLyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVCODI0MzA0MURCN0FBNDkwMEVBNjM4NCAvKiBBc3luY0Z1bmN0
aW9uUHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
QXN5bmNGdW5jdGlvblByb3RvdHlwZS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NUM0RThFOTQxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJzZVRlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNPTlBhcnNlVGVzdC5jcHA7IHBhdGggPSBBUEkv
dGVzdHMvSlNPTlBhcnNlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
NEU4RTk1MURCRUJEQTIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEpTT05QYXJzZVRlc3QuaDsgcGF0aCA9IEFQSS90ZXN0cy9KU09O
UGFyc2VUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENUQ4QUQwMEUwRDBF
QkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJl
ZGl0LmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliZWRpdC5keWxpYjsgc291cmNlVHJlZSA9ICI8
YWJzb2x1dGU+IjsgfTsKIAkJNURBRkQ2Q0IxNDZCNjg2MzAwRkJFRkI0IC8qIEpTQy54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
eGNjb25maWc7IHBhdGggPSBKU0MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVERERGNDQ2MTRGRUU3MjIwMEI0RkI0RCAvKiBMTEludERlc2lyZWRPZmZzZXRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50RGVzaXJlZE9mZnNldHMuaDsgcGF0
aCA9IExMSW50T2Zmc2V0cy9MTEludERlc2lyZWRPZmZzZXRzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CkBAIC01ODM5LDYgKzU4NDUsNyBAQAogCQkJCTk5NkI3MzEzMUJE
OUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQk5OTZCNzMx
NDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTY1QTk0
NjE0MUM4RTlGNkYwMEE3MjA5QSAvKiBZYXJyQ2Fub25pY2FsaXplVW5pY29kZS5jcHAgKi8sCisJ
CQkJNTMzQjE1REUxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21PcHMuaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gIkRlcml2ZWQgU291cmNlcyI7CiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmU7CkBAIC01ODc1LDcgKzU4ODIsNyBAQAogCQkJCTUzRjQwRTkyMUQ1QTRBQjMwMDk5
QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5oICovLAogCQkJCTUzRkQwNEQxMUQ3QUIxODcwMDMy
ODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwICovLAogCQkJCTUzRkQwNEQyMUQ3QUIx
ODcwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCAqLywKLQkJCQk1M0Y0MEU5MDFE
NTkwMzAyMDA5OUExQjYgLyogV2FzbU9wcy5oICovLAorCQkJCTUzRkY3RjlDMURDMDBEQjEwMEEy
NkNDQyAvKiBXYXNtRm9ybWF0LmNwcCAqLywKIAkJCQk3QkM1NDdEMjFCNjk1OTlCMDA5NTlCNTgg
LyogV2FzbUZvcm1hdC5oICovLAogCQkJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNt
RnVuY3Rpb25QYXJzZXIuaCAqLywKIAkJCQk1MzU1NTcxNTFEOURGQTMyMDA2RDU4M0IgLyogV2Fz
bU1lbW9yeS5jcHAgKi8sCkBAIC01ODg2LDYgKzU4OTMsOCBAQAogCQkJCTUzMTM3NEJDMUQ1Q0U2
NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oICovLAogCQkJCTUzRjQwRThDMUQ1OTAxRjIwMDk5QTFC
NiAvKiBXYXNtUGFyc2VyLmggKi8sCiAJCQkJNTNGNDBFODQxRDU4Rjk3NzAwOTlBMUI2IC8qIFdh
c21TZWN0aW9ucy5oICovLAorCQkJCTUzRkY3RjlBMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFs
aWRhdGUuY3BwICovLAorCQkJCTUzRkY3Rjk4MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRh
dGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2FzbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC03OTg2LDYgKzc5OTUsNyBAQAogCQkJCTBGMkJEQzQ5MTUyMjgwOTYwMENEODkxMCAv
KiBERkdWYXJpYWJsZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0QjE1MjI4MDlE
MDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZGRkM5NjAxNEVGOTBCRDAwQzcyNTMyIC8qIERGR1ZpcnR1YWxSZWdpc3RlckFsbG9jYXRpb25Q
aGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNGRjdGOTkxREJGQ0Q5MDAwQTI2Q0NDIC8qIFdh
c21WYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGNDIxODIwMjExOTAwMkM5QjI2
IC8qIERGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
REIyQ0U4MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQ3MzQxREExREMwMzAwMTAwQUEyOUJBIC8qIFdlYkFzc2VtYmx5RXhlY3V0YWJsZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04Mzg5LDcgKzgzOTksNiBAQAogCQkJCUE3QzBDNEFDMTY4MTAzMDIw
MDE3MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMTIy
MDI3MUJFN0Y1OEMwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGOTE5RDExMTU3RjMzMkMwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1M0Y0MEU5MTFENTkwMzAyMDA5OUExQjYgLyogV2FzbU9w
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyOTlEOUUxN0QxMjgzNzAwNUY1RkY5IC8qIEpTU2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NUUwRTE2RjVDRDAwQjM0NDYwIC8q
IENMb29wU3RhY2suaCBpbiBIZWFkZXJzICovLApAQCAtODc2OSw2ICs4Nzc4LDcgQEAKIAkJCQkx
NEY3MjU2NjE0RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNEU4NEZBMjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0ltcGwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0QkU3RDMzMTcxMzVDRjQwMEQxODA3QSAvKiBXZWFrSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTMzQjE1REYxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21PcHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3Q0EzQUU0MTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFrTWFwQ29uc3Ry
dWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUVDMTdEQTUxNjgwMDY1MzhBRiAvKiBX
ZWFrTWFwRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDQTNBRTYxN0RBNDFBRTAwNjUzOEFG
IC8qIFdlYWtNYXBQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTkzMCw2ICs5OTQwLDcg
QEAKIAkJCQkwRkY0Mjc1NzE1OTE0QTIwMDA0Q0I5RkYgLyogTGlua0J1ZmZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0UyRUE2QzBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUExQTA5NTFEOENCMzQxMDA0QzJFQjggLyogRGVidWdn
ZXJQYXJzZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTNGRjdGOUQxREMwMERCMTAwQTI2
Q0NDIC8qIFdhc21Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkUzOTEzNTQxQjc5NEY2
RTAwRURBRjcxIC8qIExpdmVPYmplY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFMjBD
RTlEMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNDY4MEQyMTRCQkQxNjUwMEJGRTI3MiAvKiBMTEludERhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMDA4OCw2ICsxMDA5OSw3IEBACiAJCQkJMTQ0NjlERUIxMDdFQzdFNzAwNjUwNDQ2IC8q
IFN0cmluZ0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2MUFBMEQ3
REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDQ2OURFQzEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nT2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUzRkY3RjlCMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ1By
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVCMDAyQjU1NTMg
LyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RFM0I0
MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RXYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0V2FzbS5jcHAKaW5kZXggMzRhZWE4NTY2ZDM2OWZmMWFkYTQwNjE1ZWJkNjVm
OTg1NjkzM2NhYi4uZDFiODhkOGQ1NzhmMzdjYTdiNTNkMzU2MzJkOGVhNjQ2N2U3YzNkMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RXYXNtLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdFdhc20uY3BwCkBAIC0yNjksNiArMjY5LDI3IEBAIGlubGluZSBK
U1ZhbHVlIGJveGQoZG91YmxlIHZhbHVlKQogICAgIHJldHVybiBib3goYml0d2lzZV9jYXN0PHVp
bnQ2NF90Pih2YWx1ZSkpOwogfQogCitzdGF0aWMgdm9pZCBjaGVja1BsYW4oUGxhbiYgcGxhbiwg
dW5zaWduZWQgZXhwZWN0ZWROdW1iZXJPZkZ1bmN0aW9ucykKK3sKKyAgICBpZiAocGxhbi5mYWls
ZWQoKSkgeworICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSB3aXRo
IGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9
CisKKyAgICBpZiAocGxhbi5yZXN1bHRTaXplKCkgIT0gZXhwZWN0ZWROdW1iZXJPZkZ1bmN0aW9u
cykgeworICAgICAgICBkYXRhTG9nTG4oIkluY29ycmVjdCBudW1iZXIgb2YgZnVuY3Rpb25zIik7
CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGV4cGVjdGVkTnVtYmVyT2ZGdW5jdGlvbnM7ICsraSkgeworICAgICAgICBpZiAoIXBsYW4ucmVz
dWx0KGkpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIkZ1bmN0aW9uIGF0IGluZGV4LCAiICwg
aSwgIiBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkiKTsKKyAgICAgICAgICAgIENSQVNIKCk7
CisgICAgICAgIH0KKyAgICB9CisKK30KKwogLy8gRm9yIG5vdyB3ZSBpbmxpbmUgdGhlIHRlc3Qg
ZmlsZXMuCiBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogewpAQCAtMjkwLDEwICszMTEsNyBA
QCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4g
cGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVz
dWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFuLnJlc3VsdCgxKSkgewot
ICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5
LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4o
cGxhbiwgMik7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAg
IENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKnBsYW4ucmVzdWx0KDEpLT5qc0VudHJ5
UG9pbnQsIHsgYm94ZigwLjApLCBib3hmKDEuNSkgfSksIC0xLjVmKSk7CkBAIC0zMTksMTAgKzMz
Nyw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAg
UGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxh
bi5yZXN1bHRTaXplKCkgIT0gMiB8fCAhcGxhbi5yZXN1bHQoMCkgfHwgIXBsYW4ucmVzdWx0KDEp
KSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3Jy
ZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAgIGNoZWNr
UGxhbihwbGFuLCAyKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KICAg
ICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqcGxhbi5yZXN1bHQoMSktPmpz
RW50cnlQb2ludCwgeyBib3hmKDAuMCksIGJveGYoMS41KSB9KSwgMS41ZikpOwpAQCAtMzUzLDEw
ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAg
ICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8
IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFuLnJlc3Vs
dCgxKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUg
Y29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBj
aGVja1BsYW4ocGxhbiwgMik7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2gu
CiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgxKS0+anNFbnRyeVBv
aW50LCB7IGJveCgwKSB9KSwgMCk7CkBAIC0zODcsMTAgKzM5OSw3IEBAIHN0YXRpYyB2b2lkIHJ1
bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9y
KTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8
fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxl
ZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAg
IH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBk
b2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQo
MCktPmpzRW50cnlQb2ludCwgeyBib3goMCkgfSksIDEpOwpAQCAtNDQ3LDEwICs0NTYsNyBAQCBz
dGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxh
bigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0
U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFuLnJlc3VsdCgxKSkgewotICAg
ICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIp
OwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxh
biwgMik7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENI
RUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgxKS0+anNFbnRyeVBvaW50LCB7IGJveCgw
KSB9KSwgMCk7CkBAIC00NjMsMjcgKzQ2OSwyMyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMo
KQogCiAgICAgewogICAgICAgICAvLyBHZW5lcmF0ZWQgZnJvbToKLSAgICAgICAgLy8gKG1vZHVs
ZQotICAgICAgICAvLyAgKG1lbW9yeSAxKQotICAgICAgICAvLyAgKGZ1bmMgKGV4cG9ydCAiaTMy
X2xvYWQ4X3MiKSAocGFyYW0gJGkgaTMyKSAocGFyYW0gJHB0ciBpMzIpIChyZXN1bHQgaTMyKQot
ICAgICAgICAvLyAgIChpNjQuc3RvcmUgKGdldF9sb2NhbCAkcHRyKSAoZ2V0X2xvY2FsICRpKSkK
LSAgICAgICAgLy8gICAocmV0dXJuIChpNjQubG9hZCAoZ2V0X2xvY2FsICRwdHIpKSkKLSAgICAg
ICAgLy8gICApCi0gICAgICAgIC8vICApCisgICAgICAgIC8vICAgIChtb2R1bGUKKyAgICAgICAg
Ly8gICAgIChtZW1vcnkgMSkKKyAgICAgICAgLy8gICAgIChmdW5jIChleHBvcnQgImk2NCIpIChw
YXJhbSAkaSBpNjQpIChwYXJhbSAkcHRyIGkzMikgKHJlc3VsdCBpNjQpCisgICAgICAgIC8vICAg
ICAgKGk2NC5zdG9yZSAoZ2V0X2xvY2FsICRwdHIpIChnZXRfbG9jYWwgJGkpKQorICAgICAgICAv
LyAgICAgIChyZXR1cm4gKGk2NC5sb2FkIChnZXRfbG9jYWwgJHB0cikpKQorICAgICAgICAvLyAg
ICAgICkKKyAgICAgICAgLy8gICAgICkKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3RvciA9
IHsKICAgICAgICAgICAgIDB4MDAsIDB4NjEsIDB4NzMsIDB4NmQsIDB4MGMsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDEsIDB4ODcsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4NDAsCiAg
ICAgICAgICAgICAweDAyLCAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAzLCAweDgyLCAweDgw
LCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDA1LCAweDgzLCAweDgwLAotICAgICAg
ICAgICAgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwNywgMHg4ZiwgMHg4
MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwYiwgMHg2OSwgMHgzMywKLSAgICAgICAgICAg
IDB4MzIsIDB4NWYsIDB4NmMsIDB4NmYsIDB4NjEsIDB4NjQsIDB4MzgsIDB4NWYsIDB4NzMsIDB4
MDAsIDB4MDAsIDB4MGEsIDB4OTUsIDB4ODAsIDB4ODAsIDB4ODAsCi0gICAgICAgICAgICAweDAw
LCAweDAxLCAweDhmLCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAwLCAweDE0LCAweDAxLCAw
eDE0LCAweDAwLCAweDM0LCAweDAzLCAweDAwLCAweDE0LAotICAgICAgICAgICAgMHgwMSwgMHgy
YiwgMHgwMywgMHgwMCwgMHgwOSwgMHgwZgorICAgICAgICAgICAgMHg4MCwgMHg4MCwgMHgwMCwg
MHgwMSwgMHgwMSwgMHgwMSwgMHgwNywgMHg4NywgMHg4MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgw
MSwgMHgwMywgMHg2OSwgMHgzNiwKKyAgICAgICAgICAgIDB4MzQsIDB4MDAsIDB4MDAsIDB4MGEs
IDB4OTUsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4OGYsIDB4ODAsIDB4ODAsIDB4
ODAsIDB4MDAsIDB4MDAsCisgICAgICAgICAgICAweDE0LCAweDAxLCAweDE0LCAweDAwLCAweDM0
LCAweDAzLCAweDAwLCAweDE0LCAweDAxLCAweDJiLCAweDAzLCAweDAwLCAweDA5LCAweDBmCiAg
ICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYg
KHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQo
MCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNv
cnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hl
Y2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgog
ICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2lu
dCwgeyBib3goMCksIGJveCgxMCkgfSksIDApOwpAQCAtNTEwLDEwICs1MTIsNyBAQCBzdGF0aWMg
dm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0s
IHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgp
ICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVs
ZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwot
ICAgICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0
IHRoaXMgZG9lc24ndCBjcmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4u
cmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApLCBib3goMTApIH0pLCAwKTsKQEAgLTU1
MCwxMCArNTQ5LDcgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAog
ICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQo
KSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAg
ICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwot
ICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwg
MSk7CiAgICAgICAgIEFTU0VSVChwbGFuLm1lbW9yeSgpLT5zaXplKCkpOwogCiAgICAgICAgIC8v
IFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgpAQCAtNjA1LDEwICs2MDEsNyBAQCBzdGF0aWMgdm9p
ZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZl
Y3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9
IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBm
YWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAg
ICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKICAgICAgICAgQVNTRVJUKHBsYW4u
bWVtb3J5KCktPnNpemUoKSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2gu
CkBAIC02NDksMTAgKzY0Miw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAg
IH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4u
ZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsK
LSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3Rs
eS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFu
KHBsYW4sIDEpOwogICAgICAgICBBU1NFUlQocGxhbi5tZW1vcnkoKS0+c2l6ZSgpKTsKIAogICAg
ICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KQEAgLTY4MCwxMCArNjcwLDcgQEAgc3Rh
dGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4o
KnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNp
emUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJN
b2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0go
KTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8g
VGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpw
bGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgwKSB9KSwgMCk7CkBAIC03MTAsMTAg
KzY5Nyw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAg
ICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwg
cGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAg
IGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAg
ICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwog
CiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMCksIGJveCgx
MCkgfSksIDApOwpAQCAtNzQxLDEwICs3MjUsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMo
KQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAg
IGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVz
dWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGls
ZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAg
IGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFz
aC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5
UG9pbnQsIHsgYm94KDApLCBib3goMTApIH0pLCAwKTsKQEAgLTc4MSwxMCArNzYyLDcgQEAgc3Rh
dGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4o
KnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNp
emUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJN
b2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0go
KTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAgICAgICAgIEFTU0VS
VChwbGFuLm1lbW9yeSgpLT5zaXplKCkpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0
IGNyYXNoLgpAQCAtODM2LDEwICs4MTQsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQog
ICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlm
IChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0
KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBj
b3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAgIGNo
ZWNrUGxhbihwbGFuLCAxKTsKICAgICAgICAgQVNTRVJUKHBsYW4ubWVtb3J5KCktPnNpemUoKSk7
CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCkBAIC04ODAsMTAgKzg1NSw3
IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxh
biBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5y
ZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFM
b2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAg
IENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogICAgICAg
ICBBU1NFUlQocGxhbi5tZW1vcnkoKS0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMg
ZG9lc24ndCBjcmFzaC4KQEAgLTkxMSwxMCArODgzLDcgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRl
c3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAg
ICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFu
LnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNv
bXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAg
ICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3Qg
Y3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNF
bnRyeVBvaW50LCB7IGJveCgwKSB9KSwgMCk7CkBAIC05NDEsMTAgKzkxMCw3IEBAIHN0YXRpYyB2
b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwg
dmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkg
IT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxl
IGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0g
ICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3Qg
dGhpcyBkb2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5y
ZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMCksIGJveCgxKSB9KSwgMSk7CkBAIC05ODIs
MTAgKzk0OCw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAg
ICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkg
fHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAg
ICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAg
ICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEp
OwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19F
UShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMCksIGJv
eCgxKSB9KSwgMSk7CkBAIC0xMDA5LDEwICs5NzIsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVz
dHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAg
ICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4u
cmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29t
cGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAg
ICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBj
cmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0Vu
dHJ5UG9pbnQsIHsgfSksIDUpOwpAQCAtMTAzMCwxMCArOTkwLDcgQEAgc3RhdGljIHZvaWQgcnVu
V2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3Ip
OwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8
ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVk
IHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAg
fQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRv
ZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgw
KS0+anNFbnRyeVBvaW50LCB7IH0pLCAxMSk7CkBAIC0xMDUwLDEwICsxMDA3LDcgQEAgc3RhdGlj
IHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZt
LCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUo
KSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1
bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsK
LSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVz
dCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFu
LnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IH0pLCAxMSk7CkBAIC0xMDcwLDEwICsxMDI0LDcg
QEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFu
IHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJl
c3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxv
Z0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAg
Q1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAg
ICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IH0pLCAxMSk7CkBAIC0xMDg5LDEw
ICsxMDQwLDcgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAg
ICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8
fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAg
ICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAg
ICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7
CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VR
KGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgwKSwgYm94
KDEpIH0pLCAxKTsKQEAgLTExMTgsMTAgKzEwNjYsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVz
dHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAg
ICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4u
cmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29t
cGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAg
ICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBj
cmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0Vu
dHJ5UG9pbnQsIHsgYm94KDApIH0pLCAwKTsKQEAgLTExNTQsMTAgKzEwOTksNyBAQCBzdGF0aWMg
dm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0s
IHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgp
ICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVs
ZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwot
ICAgICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0
IHRoaXMgZG9lc24ndCBjcmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4u
cmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApIH0pLCAwKTsKQEAgLTExOTgsMTAgKzEx
NDAsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAg
IFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBs
YW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBk
YXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAg
ICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAog
ICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApLCBib3goMSkg
fSksIDApOwpAQCAtMTI1MSwxMCArMTE5MCw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygp
CiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAg
aWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1
bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxl
IGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAg
Y2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNo
LgogICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQ
b2ludCwgeyBib3goMCksIGJveCgxKSB9KSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggYjVhYzdhNGQ0MTQ4MmFkNWQ3ZTAy
ZDdjYjZmMzg1MDMzMDljYTYzMC4uMDdiMzI5ZTlkY2Q0MzViYmRiZDc2YTA2MTg5Y2ZhOTczNjBm
NTY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcApAQCAtODcsNiArODcsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgewogICAgICAgICB9
CiAKKyAgICAgICAgTGF6eUJsb2NrKCkKKyAgICAgICAgeworICAgICAgICB9CisKICAgICAgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9ibG9jazsgfQogCiAg
ICAgICAgIEJhc2ljQmxvY2sqIGdldChQcm9jZWR1cmUmIHByb2MpCkBAIC0xMTgsNiArMTIyLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHByb2MuYWRkVmFyaWFi
bGUodG9CM1R5cGUoc2lnbmF0dXJlKSkpOwogICAgICAgICB9CiAKKyAgICAgICAgQ29udHJvbERh
dGEoKQorICAgICAgICB7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsK
QEAgLTE3Miw4ICsxODAsOCBAQCBwdWJsaWM6CiAKICAgICBCM0lSR2VuZXJhdG9yKE1lbW9yeSos
IFByb2NlZHVyZSYsIFZlY3RvcjxVbmxpbmtlZENhbGw+JiB1bmxpbmtlZENhbGxzKTsKIAotICAg
IHZvaWQgYWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBlPiYpOwotICAgIHZvaWQgYWRkTG9j
YWwoVHlwZSwgdWludDMyX3QpOworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEFyZ3Vt
ZW50cyhjb25zdCBWZWN0b3I8VHlwZT4mKTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBh
ZGRMb2NhbChUeXBlLCB1aW50MzJfdCk7CiAgICAgRXhwcmVzc2lvblR5cGUgYWRkQ29uc3RhbnQo
VHlwZSwgdWludDY0X3QpOwogCiAgICAgLy8gTG9jYWxzCkBAIC0xOTEsOCArMTk5LDggQEAgcHVi
bGljOgogICAgIC8vIENvbnRyb2wgZmxvdwogICAgIENvbnRyb2xEYXRhIFdBUk5fVU5VU0VEX1JF
VFVSTiBhZGRCbG9jayhUeXBlIHNpZ25hdHVyZSk7CiAgICAgQ29udHJvbERhdGEgV0FSTl9VTlVT
RURfUkVUVVJOIGFkZExvb3AoVHlwZSBzaWduYXR1cmUpOwotICAgIENvbnRyb2xEYXRhIFdBUk5f
VU5VU0VEX1JFVFVSTiBhZGRJZihFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIFR5cGUgc2lnbmF0
dXJlKTsKLSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRFbHNlKENvbnRyb2xEYXRhJik7
CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkSWYoRXhwcmVzc2lvblR5cGUgY29uZGl0
aW9uLCBUeXBlIHNpZ25hdHVyZSwgQ29udHJvbERhdGEmIHJlc3VsdCk7CisgICAgYm9vbCBXQVJO
X1VOVVNFRF9SRVRVUk4gYWRkRWxzZShDb250cm9sRGF0YSYsIGNvbnN0IEV4cHJlc3Npb25MaXN0
Jik7CiAKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRSZXR1cm4oY29uc3QgRXhwcmVz
c2lvbkxpc3QmIHJldHVyblZhbHVlcyk7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRk
QnJhbmNoKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBjb25zdCBFeHBy
ZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKQEAgLTI0NSwxNiArMjUzLDIyIEBAIEIzSVJHZW5l
cmF0b3I6OkIzSVJHZW5lcmF0b3IoTWVtb3J5KiBtZW1vcnksIFByb2NlZHVyZSYgcHJvY2VkdXJl
LCBWZWN0b3I8VW5saW5rCiAgICAgfQogfQogCi12b2lkIEIzSVJHZW5lcmF0b3I6OmFkZExvY2Fs
KFR5cGUgdHlwZSwgdWludDMyX3QgY291bnQpCitib29sIEIzSVJHZW5lcmF0b3I6OmFkZExvY2Fs
KFR5cGUgdHlwZSwgdWludDMyX3QgY291bnQpCiB7Ci0gICAgbV9sb2NhbHMucmVzZXJ2ZUNhcGFj
aXR5KG1fbG9jYWxzLnNpemUoKSArIGNvdW50KTsKKyAgICBpZiAoIW1fbG9jYWxzLnRyeVJlc2Vy
dmVDYXBhY2l0eShtX2xvY2Fscy5zaXplKCkgKyBjb3VudCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICBt
X2xvY2Fscy5hcHBlbmQobV9wcm9jLmFkZFZhcmlhYmxlKHRvQjNUeXBlKHR5cGUpKSk7CisgICAg
ICAgIG1fbG9jYWxzLnVuY2hlY2tlZEFwcGVuZChtX3Byb2MuYWRkVmFyaWFibGUodG9CM1R5cGUo
dHlwZSkpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBCM0lSR2VuZXJhdG9yOjphZGRB
cmd1bWVudHMoY29uc3QgVmVjdG9yPFR5cGU+JiB0eXBlcykKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6
YWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBlPiYgdHlwZXMpCiB7CiAgICAgQVNTRVJUKCFt
X2xvY2Fscy5zaXplKCkpOworICAgIGlmICghbV9sb2NhbHMudHJ5UmVzZXJ2ZUNhcGFjaXR5KHR5
cGVzLnNpemUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIG1fbG9jYWxzLmdyb3co
dHlwZXMuc2l6ZSgpKTsKICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5sb2FkQXJndW1lbnRz
KHR5cGVzLCBtX3Byb2MsIG1fY3VycmVudEJsb2NrLCBPcmlnaW4oKSwKICAgICAgICAgWyZdIChF
eHByZXNzaW9uVHlwZSBhcmd1bWVudCwgdW5zaWduZWQgaSkgewpAQCAtMjYyLDYgKzI3Niw3IEBA
IHZvaWQgQjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBlPiYgdHlw
ZXMpCiAgICAgICAgICAgICBtX2xvY2Fsc1tpXSA9IGFyZ3VtZW50VmFyaWFibGU7CiAgICAgICAg
ICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0
LCBPcmlnaW4oKSwgYXJndW1lbnRWYXJpYWJsZSwgYXJndW1lbnQpOwogICAgICAgICB9KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBCM0lSR2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJf
dCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkKQEAgLTQ5Myw3ICs1MDgsNyBAQCBCM0lS
R2VuZXJhdG9yOjpDb250cm9sRGF0YSBCM0lSR2VuZXJhdG9yOjphZGRMb29wKFR5cGUgc2lnbmF0
dXJlKQogICAgIHJldHVybiBDb250cm9sRGF0YShtX3Byb2MsIHNpZ25hdHVyZSwgYm9keSk7CiB9
CiAKLUIzSVJHZW5lcmF0b3I6OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZElmKEV4cHJl
c3Npb25UeXBlIGNvbmRpdGlvbiwgVHlwZSBzaWduYXR1cmUpCitib29sIEIzSVJHZW5lcmF0b3I6
OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgVHlwZSBzaWduYXR1cmUsIENvbnRyb2xU
eXBlJiByZXN1bHQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gZG8gc29tZSBraW5k
IG9mIHN0YWNrIHBhc3NpbmcuCiAKQEAgLTUwNywxMCArNTIyLDExIEBAIEIzSVJHZW5lcmF0b3I6
OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlv
biwgVHlwZSBzCiAgICAgbm90VGFrZW4tPmFkZFByZWRlY2Vzc29yKG1fY3VycmVudEJsb2NrKTsK
IAogICAgIG1fY3VycmVudEJsb2NrID0gdGFrZW47Ci0gICAgcmV0dXJuIENvbnRyb2xEYXRhKG1f
cHJvYywgc2lnbmF0dXJlLCBub3RUYWtlbiwgY29udGludWF0aW9uKTsKKyAgICByZXN1bHQgPSBD
b250cm9sRGF0YShtX3Byb2MsIHNpZ25hdHVyZSwgbm90VGFrZW4sIGNvbnRpbnVhdGlvbik7Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQjNJUkdlbmVyYXRvcjo6YWRkRWxzZShDb250cm9s
RGF0YSYgZGF0YSkKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6YWRkRWxzZShDb250cm9sRGF0YSYgZGF0
YSwgY29uc3QgRXhwcmVzc2lvbkxpc3QmKQogewogICAgIEFTU0VSVChkYXRhLmNvbnRpbnVhdGlv
bik7CiAgICAgbV9jdXJyZW50QmxvY2sgPSBkYXRhLnNwZWNpYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZGM4MDAwZjI5Zjk0MzNhNTRm
ZWYzODBhY2U2YjczZmRkMzY2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldhc21Gb3JtYXQuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworY29uc3QgY2hhciogdG9TdHJpbmcoVHlwZSB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgVm9pZDoKKyAgICAgICAgcmV0
dXJuICJ2b2lkIjsKKyAgICBjYXNlIEkzMjoKKyAgICAgICAgcmV0dXJuICJpMzIiOworICAgIGNh
c2UgSTY0OgorICAgICAgICByZXR1cm4gImk2NCI7CisgICAgY2FzZSBGMzI6CisgICAgICAgIHJl
dHVybiAiZjMyIjsKKyAgICBjYXNlIEY2NDoKKyAgICAgICAgcmV0dXJuICJmNjQiOworICAgIH0K
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KKworI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggN2ViNWIxYWRk
OTcyODg3NzU4NWY1ZGViN2VkZWZjY2EwYTIzYmI4YS4uODI4NmFlZjNhZWZjMTJhNWQxZmRkNDlm
ZGNlNGNlOTUwMzU1NGIxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQu
aApAQCAtOTcsNiArOTcsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitjb25zdCBjaGFyKiB0b1N0cmluZyhUeXBlKTsKIAogc3Ry
dWN0IFNpZ25hdHVyZSB7CiAgICAgVHlwZSByZXR1cm5UeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAppbmRleCA1MWUyZjhiNzhiMTdjMmI5
ZDhhZmE5NDZjNDFiZWNkOGU3NzIwNTA2Li42ZTBmMmIxNGQwNTZmYjljODdhNDMyMzE5YjU2Nzg4
NTJmMzNhZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVu
Y3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rp
b25QYXJzZXIuaApAQCAtNzMsMTIgKzczLDE0IEBAIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpG
dW5jdGlvblBhcnNlcihDb250ZXh0JiBjb250ZXh0LCBjb25zdCB1aW50OF90KiBmdW5jdGlvCiB7
CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2dMbigiUGFyc2luZyBmdW5jdGlvbiBz
dGFydGluZyBhdDogIiwgKHVpbnRwdHJfdClmdW5jdGlvblN0YXJ0LCAiIG9mIGxlbmd0aDogIiwg
ZnVuY3Rpb25MZW5ndGgpOwotICAgIG1fY29udGV4dC5hZGRBcmd1bWVudHMobV9zaWduYXR1cmUt
PmFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRleHQ+CiBib29sIEZ1bmN0
aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZSgpCiB7CisgICAgaWYgKCFtX2NvbnRleHQuYWRkQXJn
dW1lbnRzKG1fc2lnbmF0dXJlLT5hcmd1bWVudHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICB1aW50MzJfdCBsb2NhbENvdW50OwogICAgIGlmICghcGFyc2VWYXJVSW50MzIobG9jYWxD
b3VudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkyLDcgKzk0LDggQEAgYm9vbCBGdW5j
dGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2UoKQogICAgICAgICBpZiAoIXBhcnNlVmFsdWVUeXBl
KHR5cGVPZkxvY2FsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBtX2Nv
bnRleHQuYWRkTG9jYWwodHlwZU9mTG9jYWwsIG51bWJlck9mTG9jYWxzKTsKKyAgICAgICAgaWYg
KCFtX2NvbnRleHQuYWRkTG9jYWwodHlwZU9mTG9jYWwsIG51bWJlck9mTG9jYWxzKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICByZXR1cm4gcGFyc2VCbG9jaygpOwpA
QCAtMjgyLDEyICsyODUsMTYgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VF
eHByZXNzaW9uKE9wVHlwZSBvcCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24gPSBtX2V4cHJlc3Npb25TdGFjay50YWtlTGFzdCgp
OwotICAgICAgICBtX2NvbnRyb2xTdGFjay5hcHBlbmQobV9jb250ZXh0LmFkZElmKGNvbmRpdGlv
biwgaW5saW5lU2lnbmF0dXJlKSk7CisgICAgICAgIENvbnRyb2xUeXBlIGNvbnRyb2w7CisgICAg
ICAgIGlmICghbV9jb250ZXh0LmFkZElmKGNvbmRpdGlvbiwgaW5saW5lU2lnbmF0dXJlLCBjb250
cm9sKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX2NvbnRyb2xTdGFj
ay5hcHBlbmQoY29udHJvbCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGNh
c2UgT3BUeXBlOjpFbHNlOiB7Ci0gICAgICAgIHJldHVybiBtX2NvbnRleHQuYWRkRWxzZShtX2Nv
bnRyb2xTdGFjay5sYXN0KCkpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LmFkZEVsc2UobV9j
b250cm9sU3RhY2subGFzdCgpLCBtX2V4cHJlc3Npb25TdGFjayk7CiAgICAgfQogCiAgICAgY2Fz
ZSBPcFR5cGU6OkJyOgpAQCAtMzQ5LDcgKzM1Niw3IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29u
dGV4dD46OnBhcnNlVW5yZWFjaGFibGVFeHByZXNzaW9uKE9wVHlwZSBvcCkKICAgICAgICAgQ29u
dHJvbFR5cGUmIGRhdGEgPSBtX2NvbnRyb2xTdGFjay5sYXN0KCk7CiAgICAgICAgIEFTU0VSVChk
YXRhLnR5cGUoKSA9PSBCbG9ja1R5cGU6OklmKTsKICAgICAgICAgbV91bnJlYWNoYWJsZUJsb2Nr
cyA9IDA7Ci0gICAgICAgIHJldHVybiBtX2NvbnRleHQuYWRkRWxzZShkYXRhKTsKKyAgICAgICAg
cmV0dXJuIG1fY29udGV4dC5hZGRFbHNlKGRhdGEsIG1fZXhwcmVzc2lvblN0YWNrKTsKICAgICB9
CiAKICAgICBjYXNlIE9wVHlwZTo6RW5kOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
UGxhbi5jcHAKaW5kZXggZjljOGE1NDU5ZjJiYTg2ZjQ5ZWVjMWUzZGIwN2I1ZTQ4OTZiOTcxOS4u
NzM5YmU0MjUzYzBlNGE3NGIzZWQ5MTA3ZWI3N2MyNTE3ZTA1NzljNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldh
c21CM0lSR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAj
aW5jbHVkZSAiV2FzbU1vZHVsZVBhcnNlci5oIgorI2luY2x1ZGUgIldhc21WYWxpZGF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2Fz
bSB7CkBAIC02Myw2ICs2NCwxMyBAQCBQbGFuOjpQbGFuKFZNJiB2bSwgY29uc3QgdWludDhfdCog
c291cmNlLCBzaXplX3Qgc291cmNlTGVuZ3RoKQogICAgICAgICBjb25zdCB1aW50OF90KiBmdW5j
dGlvblN0YXJ0ID0gc291cmNlICsgaW5mby5zdGFydDsKICAgICAgICAgc2l6ZV90IGZ1bmN0aW9u
TGVuZ3RoID0gaW5mby5lbmQgLSBpbmZvLnN0YXJ0OwogICAgICAgICBBU1NFUlQoZnVuY3Rpb25M
ZW5ndGggPD0gc291cmNlTGVuZ3RoKTsKKworICAgICAgICBTdHJpbmcgZXJyb3IgPSB2YWxpZGF0
ZUZ1bmN0aW9uKGZ1bmN0aW9uU3RhcnQsIGZ1bmN0aW9uTGVuZ3RoLCBpbmZvLnNpZ25hdHVyZSwg
bW9kdWxlUGFyc2VyLmZ1bmN0aW9uSW5mb3JtYXRpb24oKSk7CisgICAgICAgIGlmICghZXJyb3Iu
aXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3I7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBtX3Jlc3VsdC5hcHBlbmQocGFyc2VB
bmRDb21waWxlKHZtLCBmdW5jdGlvblN0YXJ0LCBmdW5jdGlvbkxlbmd0aCwgbW9kdWxlUGFyc2Vy
Lm1lbW9yeSgpLmdldCgpLCBpbmZvLnNpZ25hdHVyZSwgbW9kdWxlUGFyc2VyLmZ1bmN0aW9uSW5m
b3JtYXRpb24oKSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21W
YWxpZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY5N2U0NDhmMTgyNDM4MjI3ODY1MzhhNzY2YmFiZTlm
Y2U1ZmExYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21WYWxpZGF0ZS5jcHAKQEAgLTAsMCArMSwzMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Fz
bVZhbGlkYXRlLmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJXYXNt
RnVuY3Rpb25QYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisK
K25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CisKK2NsYXNzIFZhbGlkYXRlIHsKK3B1
YmxpYzoKKyAgICBjbGFzcyBDb250cm9sRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBDb250
cm9sRGF0YShCbG9ja1R5cGUgdHlwZSwgVHlwZSBzaWduYXR1cmUpCisgICAgICAgICAgICA6IG1f
YmxvY2tUeXBlKHR5cGUpCisgICAgICAgICAgICAsIG1fc2lnbmF0dXJlKHNpZ25hdHVyZSkKKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgQ29udHJvbERhdGEoKQorICAgICAgICB7Cisg
ICAgICAgIH0KKworICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKKyAg
ICAgICAgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2Ug
QmxvY2tUeXBlOjpJZjoKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIklmOiAgICAiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlOjpCbG9jazoK
KyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIkJsb2NrOiAiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlOjpMb29wOgorICAgICAgICAgICAgICAg
IG91dC5wcmludCgiTG9vcDogICIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgQmxvY2tUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX2Jsb2NrVHlwZTsgfQorICAgICAgICBUeXBlIHNpZ25hdHVyZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2lnbmF0dXJlOyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgQmxvY2tUeXBlIG1fYmxvY2tU
eXBlOworICAgICAgICBUeXBlIG1fc2lnbmF0dXJlOworICAgIH07CisgICAgdHlwZWRlZiBUeXBl
IEV4cHJlc3Npb25UeXBlOworICAgIHR5cGVkZWYgQ29udHJvbERhdGEgQ29udHJvbFR5cGU7Cisg
ICAgdHlwZWRlZiBWZWN0b3I8RXhwcmVzc2lvblR5cGUsIDE+IEV4cHJlc3Npb25MaXN0OworICAg
IHN0YXRpYyBjb25zdCBFeHByZXNzaW9uVHlwZSBlbXB0eUV4cHJlc3Npb24gPSBWb2lkOworCisg
ICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBl
PiYpOworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZExvY2FsKFR5cGUsIHVpbnQzMl90
KTsKKyAgICBFeHByZXNzaW9uVHlwZSBhZGRDb25zdGFudChUeXBlIHR5cGUsIHVpbnQ2NF90KSB7
IHJldHVybiB0eXBlOyB9CisKKyAgICAvLyBMb2NhbHMKKyAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiBnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7Cisg
ICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJl
c3Npb25UeXBlIHZhbHVlKTsKKworICAgIC8vIE1lbW9yeQorICAgIGJvb2wgV0FSTl9VTlVTRURf
UkVUVVJOIGxvYWQoTG9hZE9wVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCwgdWludDMyX3Qgb2Zmc2V0KTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiBzdG9yZShTdG9yZU9wVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lv
blR5cGUgdmFsdWUsIHVpbnQzMl90IG9mZnNldCk7CisKKyAgICAvLyBCYXNpYyBvcGVyYXRvcnMK
KyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBiaW5hcnlPcChCaW5hcnlPcFR5cGUsIEV4cHJl
c3Npb25UeXBlIGxlZnQsIEV4cHJlc3Npb25UeXBlIHJpZ2h0LCBFeHByZXNzaW9uVHlwZSYgcmVz
dWx0KTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiB1bmFyeU9wKFVuYXJ5T3BUeXBlLCBF
eHByZXNzaW9uVHlwZSBhcmcsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworCisgICAgLy8gQ29u
dHJvbCBmbG93CisgICAgQ29udHJvbERhdGEgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEJsb2NrKFR5
cGUgc2lnbmF0dXJlKTsKKyAgICBDb250cm9sRGF0YSBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkTG9v
cChUeXBlIHNpZ25hdHVyZSk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkSWYoRXhw
cmVzc2lvblR5cGUgY29uZGl0aW9uLCBUeXBlIHNpZ25hdHVyZSwgQ29udHJvbERhdGEmIHJlc3Vs
dCk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkRWxzZShDb250cm9sRGF0YSYsIGNv
bnN0IEV4cHJlc3Npb25MaXN0Jik7CisKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRS
ZXR1cm4oY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcyk7CisgICAgYm9vbCBXQVJO
X1VOVVNFRF9SRVRVUk4gYWRkQnJhbmNoKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvblR5cGUgY29u
ZGl0aW9uLCBjb25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKKyAgICBib29sIFdB
Uk5fVU5VU0VEX1JFVFVSTiBlbmRCbG9jayhDb250cm9sRGF0YSYsIEV4cHJlc3Npb25MaXN0JiBl
eHByZXNzaW9uU3RhY2spOworCisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQ2FsbCh1
bnNpZ25lZCBjYWxsZWVJbmRleCwgY29uc3QgRnVuY3Rpb25JbmZvcm1hdGlvbiYsIGNvbnN0IFZl
Y3RvcjxFeHByZXNzaW9uVHlwZT4mIGFyZ3MsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAg
IGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGlzQ29udGludWF0aW9uUmVhY2hhYmxlKENvbnRyb2xE
YXRhJikgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdm9pZCBkdW1wKGNvbnN0IFZlY3RvcjxDb250
cm9sVHlwZT4mIGNvbnRyb2xTdGFjaywgY29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25T
dGFjayk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
ck1lc3NhZ2U7IH0KKyAgICBWYWxpZGF0ZShFeHByZXNzaW9uVHlwZSByZXR1cm5UeXBlKQorICAg
ICAgICA6IG1fcmV0dXJuVHlwZShyZXR1cm5UeXBlKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgYm9vbCB1bmlmeShUeXBlLCBUeXBlKTsKKyAgICBib29sIHVuaWZ5KGNvbnN0IEV4cHJl
c3Npb25MaXN0JiwgY29uc3QgQ29udHJvbERhdGEmKTsKKworICAgIEV4cHJlc3Npb25UeXBlIG1f
cmV0dXJuVHlwZTsKKyAgICBWZWN0b3I8VHlwZT4gbV9sb2NhbHM7CisgICAgU3RyaW5nIG1fZXJy
b3JNZXNzYWdlOworfTsKKworYm9vbCBWYWxpZGF0ZTo6YWRkQXJndW1lbnRzKGNvbnN0IFZlY3Rv
cjxUeXBlPiYgYXJncykKK3sKKyAgICBmb3IgKFR5cGUgYXJnIDogYXJncykgeworICAgICAgICBp
ZiAoIWFkZExvY2FsKGFyZywgMSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZhbGlkYXRlOjphZGRMb2NhbChUeXBlIHR5cGUs
IHVpbnQzMl90IGNvdW50KQoreworICAgIGlmICghbV9sb2NhbHMudHJ5UmVzZXJ2ZUNhcGFjaXR5
KG1fbG9jYWxzLnNpemUoKSArIGNvdW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Zm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIG1fbG9jYWxzLnVu
Y2hlY2tlZEFwcGVuZCh0eXBlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBWYWxpZGF0
ZTo6Z2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpCit7Cisg
ICAgaWYgKGluZGV4IDwgbV9sb2NhbHMuc2l6ZSgpKSB7CisgICAgICAgIHJlc3VsdCA9IG1fbG9j
YWxzW2luZGV4XTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1fZXJyb3JNZXNz
YWdlID0gQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIHVzZSB1bmtub3duIGxvY2FsLiIpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6c2V0TG9jYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKQoreworICAgIEV4cHJlc3Npb25UeXBlIGxvY2FsVHlw
ZTsKKyAgICBpZiAoIWdldExvY2FsKGluZGV4LCBsb2NhbFR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAobG9jYWxUeXBlID09IHZhbHVlKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQXR0ZW1wdCB0byBzZXQgbG9j
YWwgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhsb2NhbFR5cGUpLCAiIHdpdGggYSB2YXJpYWJsZSBv
ZiB0eXBlOiAiLCB0b1N0cmluZyh2YWx1ZSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKworVmFs
aWRhdGU6OkNvbnRyb2xUeXBlIFZhbGlkYXRlOjphZGRCbG9jayhUeXBlIHNpZ25hdHVyZSkKK3sK
KyAgICByZXR1cm4gQ29udHJvbERhdGEoQmxvY2tUeXBlOjpCbG9jaywgc2lnbmF0dXJlKTsKK30K
KworVmFsaWRhdGU6OkNvbnRyb2xUeXBlIFZhbGlkYXRlOjphZGRMb29wKFR5cGUgc2lnbmF0dXJl
KQoreworICAgIHJldHVybiBDb250cm9sRGF0YShCbG9ja1R5cGU6Okxvb3AsIHNpZ25hdHVyZSk7
Cit9CisKK2Jvb2wgVmFsaWRhdGU6OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgVHlw
ZSBzaWduYXR1cmUsIENvbnRyb2xUeXBlJiByZXN1bHQpCit7CisgICAgaWYgKGNvbmRpdGlvbiAh
PSBJMzIpIHsKKyAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5n
IHRvIHVzZSAiLCB0b1N0cmluZyhjb25kaXRpb24pLCAiIGFzIHRoZSBjb25kaXRpb24gZm9yIGFu
IGlmIGJsb2NrIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmVzdWx0ID0g
Q29udHJvbERhdGEoQmxvY2tUeXBlOjpJZiwgc2lnbmF0dXJlKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBWYWxpZGF0ZTo6YWRkRWxzZShDb250cm9sVHlwZSYgY3VycmVudCwgY29uc3Qg
RXhwcmVzc2lvbkxpc3QmIHZhbHVlcykKK3sKKyAgICBpZiAoY3VycmVudC50eXBlKCkgIT0gQmxv
Y2tUeXBlOjpJZikgeworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkF0dGVt
cHRpbmcgdG8gYWRkIGVsc2UgYmxvY2sgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaWYiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghdW5pZnkodmFsdWVzLCBj
dXJyZW50KSkgeworICAgICAgICBBU1NFUlQoZXJyb3JNZXNzYWdlKCkpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgY3VycmVudCA9IENvbnRyb2xEYXRhKEJsb2NrVHlwZTo6
QmxvY2ssIGN1cnJlbnQuc2lnbmF0dXJlKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IFZhbGlkYXRlOjphZGRSZXR1cm4oY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcykK
K3sKKyAgICBpZiAobV9yZXR1cm5UeXBlID09IFZvaWQpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIEFTU0VSVChyZXR1cm5WYWx1ZXMuc2l6ZSgpID09IDEpOworCisgICAgaWYgKG1fcmV0dXJu
VHlwZSA9PSByZXR1cm5WYWx1ZXNbMF0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9l
cnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGFkZCByZXR1cm4gd2l0aCB0
eXBlOiAiLCB0b1N0cmluZyhyZXR1cm5WYWx1ZXNbMF0pLCAiIGJ1dCBmdW5jdGlvbiBleHBlY3Rz
IHJldHVybiB3aXRoIHR5cGU6ICIsIHRvU3RyaW5nKG1fcmV0dXJuVHlwZSkpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6YWRkQnJhbmNoKENvbnRyb2xUeXBlJiB0YXJn
ZXQsIEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIHN0YWNr
KQoreworICAgIC8vIFZvaWQgbWVhbnMgdGhpcyBpcyBub3QgYSBjb25kaXRpb25hbCBicmFuY2gu
CisgICAgaWYgKGNvbmRpdGlvbiAhPSBWb2lkICYmIGNvbmRpdGlvbiAhPSBJMzIpIHsKKyAgICAg
ICAgbV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGNvbmRp
dGlvbmFsIGJyYW5jaCB3aXRoIGNvbmRpdGlvbiB0eXBlOiAiLCB0b1N0cmluZyhjb25kaXRpb24p
LCAiIGJ1dCBleHBlY3RlZCBpMzIuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICBpZiAodGFyZ2V0LnR5cGUoKSA9PSBCbG9ja1R5cGU6OklmKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmICh0YXJnZXQuc2lnbmF0dXJlKCkgPT0gVm9pZCkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBBU1NFUlQoc3RhY2suc2l6ZSgpID09IDEpOworICAgIGlmICh0YXJn
ZXQuc2lnbmF0dXJlKCkgPT0gc3RhY2tbMF0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
bV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGJyYW5jaCB0byBibG9j
ayB3aXRoIGV4cGVjdGVkIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSksICIg
YnV0IGJyYW5jaGluZyB3aXRoIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSkp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6ZW5kQmxvY2soQ29udHJv
bFR5cGUmIGJsb2NrLCBFeHByZXNzaW9uTGlzdCYgc3RhY2spCit7CisgICAgaWYgKGJsb2NrLnNp
Z25hdHVyZSgpID09IFZvaWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisKKyAgICBBU1NFUlQo
c3RhY2suc2l6ZSgpID09IDEpOworICAgIGlmIChibG9jay5zaWduYXR1cmUoKSA9PSBzdGFja1sw
XSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJp
bmcoIkJsb2NrIGZhbGx0aHJvdWdoIGhhcyBleHBlY3RlZCB0eXBlOiAiLCB0b1N0cmluZyhibG9j
ay5zaWduYXR1cmUoKSksICIgYnV0IHByb2R1Y2VkIHR5cGU6ICIsIHRvU3RyaW5nKGJsb2NrLnNp
Z25hdHVyZSgpKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbGlkYXRlOjphZGRD
YWxsKHVuc2lnbmVkLCBjb25zdCBGdW5jdGlvbkluZm9ybWF0aW9uJiBpbmZvLCBjb25zdCBWZWN0
b3I8RXhwcmVzc2lvblR5cGU+JiBhcmdzLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQoreworICAg
IGlmIChpbmZvLnNpZ25hdHVyZS0+YXJndW1lbnRzLnNpemUoKSAhPSBhcmdzLnNpemUoKSkgewor
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJB
cml0eSBtaXNtYXRjaCBpbiBjYWxsLCBleHBlY3RlZDogIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGluZm8uc2lnbmF0dXJlLT5hcmd1bWVudHMuc2l6ZSgpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiBidXQgZ290OiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
YXJncy5zaXplKCkpOworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBhcmdzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChhcmdzW2ldICE9IGluZm8u
c2lnbmF0dXJlLT5hcmd1bWVudHNbaV0pIHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0g
bWFrZVN0cmluZygiRXhwZWN0ZWQgYXJndW1lbnQgdHlwZTogIiwgdG9TdHJpbmcoaW5mby5zaWdu
YXR1cmUtPmFyZ3VtZW50c1tpXSksICIgZG9lcyBub3QgbWF0Y2ggcGFzc2VkIGFyZ3VtZW50IHR5
cGU6ICIsIHRvU3RyaW5nKGFyZ3NbaV0pKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHJlc3VsdCA9IGluZm8uc2lnbmF0dXJlLT5yZXR1cm5UeXBl
OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZhbGlkYXRlOjp1bmlmeShjb25zdCBFeHBy
ZXNzaW9uTGlzdCYgdmFsdWVzLCBjb25zdCBDb250cm9sVHlwZSYgYmxvY2spCit7CisgICAgQVNT
RVJUKHZhbHVlcy5zaXplKCkgPD0gMSk7CisgICAgaWYgKGJsb2NrLnNpZ25hdHVyZSgpID09IFZv
aWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCF2YWx1ZXMuc2l6ZSgpKSB7Cisg
ICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2sgaGFzIG5vbi12b2lkIHNp
Z25hdHVyZSBidXQgaGFzIG5vIHN0YWNrIGVudHJpZXMgb24gZXhpdCIpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHZhbHVlc1swXSA9PSBibG9jay5zaWduYXR1cmUo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJp
bmcoIkV4cGVjdGVkIGNvbnRyb2wgZmxvdyB0byByZXR1cm4gdmFsdWUgd2l0aCB0eXBlOiAiLCB0
b1N0cmluZyhibG9jay5zaWduYXR1cmUoKSksICIgYnV0IGdvdCB2YWx1ZSB3aXRoIHR5cGU6ICIs
IHRvU3RyaW5nKHZhbHVlc1swXSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBWYWxp
ZGF0ZTo6ZHVtcChjb25zdCBWZWN0b3I8Q29udHJvbFR5cGU+JiwgY29uc3QgRXhwcmVzc2lvbkxp
c3QmKQoreworICAgIGRhdGFMb2dMbigiVmFsaWRhdGluZyIpOworfQorCitTdHJpbmcgdmFsaWRh
dGVGdW5jdGlvbihjb25zdCB1aW50OF90KiBzb3VyY2UsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFNp
Z25hdHVyZSogc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8RnVuY3Rpb25JbmZvcm1hdGlvbj4mIGZ1
bmN0aW9ucykKK3sKKyAgICBWYWxpZGF0ZSBjb250ZXh0KHNpZ25hdHVyZS0+cmV0dXJuVHlwZSk7
CisgICAgRnVuY3Rpb25QYXJzZXI8VmFsaWRhdGU+IHZhbGlkYXRvcihjb250ZXh0LCBzb3VyY2Us
IGxlbmd0aCwgc2lnbmF0dXJlLCBmdW5jdGlvbnMpOworICAgIGlmICghdmFsaWRhdG9yLnBhcnNl
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBiZXR0ZXIgbG9jYXRpb24gaW5mb3JtYXRpb24g
aGVyZS4gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0Mjg4
CisgICAgICAgIHJldHVybiBjb250ZXh0LmVycm9yTWVzc2FnZSgpOworICAgIH0KKworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KKworI2luY2x1
ZGUgIldhc21WYWxpZGF0ZUlubGluZXMuaCIKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzYxMjRmMDk2N2FhYmZhNmRhZjIxMjZmZDgwMDJlYzNhMTE3ZTQxNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5oCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIldhc21Gb3Jt
YXQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworU3RyaW5nIHZhbGlk
YXRlRnVuY3Rpb24oY29uc3QgdWludDhfdCosIHNpemVfdCwgY29uc3QgU2lnbmF0dXJlKiwgY29u
c3QgVmVjdG9yPEZ1bmN0aW9uSW5mb3JtYXRpb24+Jik7CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpXYXNtCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIu
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGlu
ZXNIZWFkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2MzkzMzBmMWJhMWIzYmFkZDRlYjEwZTdiODQ2ZWJh
OWEwNzBkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dl
bmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQpAQCAtMCwwICsxLDE3NCBAQAorIyEg
L3Vzci9iaW4vcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlz
IHRvb2wgaGFzIGEgY291cGxlIG9mIGhlbHBmdWwgbWFjcm9zIHRvIHByb2Nlc3MgV2FzbSBmaWxl
cyBmcm9tIHRoZSB3YXNtLmpzb24uCisKK2Zyb20gZ2VuZXJhdGVXYXNtIGltcG9ydCAqCitpbXBv
cnQgb3B0cGFyc2UKK2ltcG9ydCBzeXMKKworcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2Vy
KHVzYWdlPSJ1c2FnZTogJXByb2cgPHdhc20uanNvbj4gPFdhc21PcHMuaD4iKQorKG9wdGlvbnMs
IGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3Moc3lzLmFyZ3ZbMDpdKQoraWYgbGVuKGFyZ3MpICE9
IDM6CisgICAgcGFyc2VyLmVycm9yKHBhcnNlci51c2FnZSkKKword2FzbSA9IFdhc20oYXJnc1sw
XSwgYXJnc1sxXSkKK29wY29kZXMgPSB3YXNtLm9wY29kZXMKK3dhc21WYWxpZGF0ZUlubGluZXNI
RmlsZSA9IG9wZW4oYXJnc1syXSwgInciKQorCisKK2RlZiBjcHBUeXBlKG5hbWUpOgorICAgIHJl
c3VsdCA9IHsKKyAgICAgICAgImJvb2wiOiAiSTMyIiwKKyAgICAgICAgImFkZHIiOiAiSTMyIiwK
KyAgICAgICAgImkzMiI6ICJJMzIiLAorICAgICAgICAiaTY0IjogIkk2NCIsCisgICAgICAgICJm
MzIiOiAiRjMyIiwKKyAgICAgICAgImY2NCI6ICJGNjQiLAorICAgIH0uZ2V0KG5hbWUsIE5vbmUp
CisgICAgaWYgcmVzdWx0ID09IE5vbmU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25v
d24gdHlwZSBuYW1lOiAiICsgbmFtZSkKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIHRvQ3Bw
KG5hbWUpOgorICAgIHJldHVybiB3YXNtLnRvQ3BwKG5hbWUpCisKKworZGVmIHVuYXJ5TWFjcm8o
bmFtZSk6CisgICAgb3AgPSBvcGNvZGVzW25hbWVdCisgICAgcmV0dXJuICIiIgorICAgIGNhc2Ug
VW5hcnlPcFR5cGU6OiIiIiArIHRvQ3BwKG5hbWUpICsgIiIiOiB7CisgICAgICAgIGlmICh2YWx1
ZSAhPSAiIiIgKyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIpIHsKKyAgICAgICAg
ICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZyhcIiIiIiArIG5hbWUgKyAiIiIgZXhwZWN0
cyB0aGUgdmFsdWUgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmcoIiIiICsgY3BwVHlwZShvcFsi
cGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFsdWUgd2l0aCB0eXBlOiAiLCB0
b1N0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisK
KyAgICAgICAgcmVzdWx0ID0gIiIiICsgY3BwVHlwZShvcFsicmV0dXJuIl1bMF0pICsgIiIiOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IiIiCisKKworZGVmIGJpbmFyeU1hY3JvKG5hbWUp
OgorICAgIG9wID0gb3Bjb2Rlc1tuYW1lXQorICAgIHJldHVybiAiIiIKKyAgICBjYXNlIEJpbmFy
eU9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsKKyAgICAgICAgaWYgKGxlZnQgIT0g
IiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSB7CisgICAgICAgICAgICBt
X2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIgKyBuYW1lICsgIiIiIGV4cGVjdHMgdGhl
IGxlZnQgdmFsdWUgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmcoIiIiICsgY3BwVHlwZShvcFsi
cGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFsdWUgd2l0aCB0eXBlOiAiLCB0
b1N0cmluZyhsZWZ0KSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAocmlnaHQgIT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMV0pICsg
IiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIgKyBu
YW1lICsgIiIiIGV4cGVjdHMgdGhlIHJpZ2h0IHZhbHVlIHRvIGJlIG9mIHR5cGU6ICIsIHRvU3Ry
aW5nKCIiIiArIGNwcFR5cGUob3BbInBhcmFtZXRlciJdWzBdKSArICIiIiksICIgYnV0IGdvdCBh
IHZhbHVlIHdpdGggdHlwZTogIiwgdG9TdHJpbmcocmlnaHQpKTsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9ICIiIiArIGNwcFR5cGUob3Bb
InJldHVybiJdWzBdKSArICIiIjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSIiIgorCisK
K2RlZiBsb2FkTWFjcm8obmFtZSk6CisgICAgb3AgPSBvcGNvZGVzW25hbWVdCisgICAgcmV0dXJu
ICIiIgorICAgIGNhc2UgTG9hZE9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsKKyAg
ICAgICAgaWYgKHBvaW50ZXIgIT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsg
IiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIgKyBu
YW1lICsgIiIiIGV4cGVjdHMgdGhlIHBvaW50ZXIgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmco
IiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFs
dWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhwb2ludGVyKSk7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSAiIiIgKyBjcHBUeXBlKG9wWyJy
ZXR1cm4iXVswXSkgKyAiIiI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0iIiIKKworCitk
ZWYgc3RvcmVNYWNybyhuYW1lKToKKyAgICBvcCA9IG9wY29kZXNbbmFtZV0KKyAgICByZXR1cm4g
IiIiCisgICAgY2FzZSBTdG9yZU9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsKKyAg
ICAgICAgaWYgKHBvaW50ZXIgIT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsg
IiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIgKyBu
YW1lICsgIiIiIGV4cGVjdHMgdGhlIHBvaW50ZXIgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmco
IiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFs
dWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhwb2ludGVyKSk7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFsdWUgIT0gIiIiICsgY3BwVHlwZShv
cFsicGFyYW1ldGVyIl1bMV0pICsgIiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9
IG1ha2VTdHJpbmcoXCIiIiIgKyBuYW1lICsgIiIiIGV4cGVjdHMgdGhlIHZhbHVlIHRvIGJlIG9m
IHR5cGU6ICIsIHRvU3RyaW5nKCIiIiArIGNwcFR5cGUob3BbInBhcmFtZXRlciJdWzBdKSArICIi
IiksICIgYnV0IGdvdCBhIHZhbHVlIHdpdGggdHlwZTogIiwgdG9TdHJpbmcodmFsdWUpKTsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0iIiIKKworCit1bmFyeUNhc2VzID0gIiIuam9pbihbb3AgZm9yIG9wIGluIHdhc20u
b3Bjb2RlSXRlcmF0b3IoaXNVbmFyeSwgdW5hcnlNYWNybyldKQorYmluYXJ5Q2FzZXMgPSAiIi5q
b2luKFtvcCBmb3Igb3AgaW4gd2FzbS5vcGNvZGVJdGVyYXRvcihpc0JpbmFyeSwgYmluYXJ5TWFj
cm8pXSkKK2xvYWRDYXNlcyA9ICIiLmpvaW4oW29wIGZvciBvcCBpbiB3YXNtLm9wY29kZUl0ZXJh
dG9yKGxhbWJkYSBvcDogb3BbImNhdGVnb3J5Il0gPT0gIm1lbW9yeSIgYW5kIGxlbihvcFsicmV0
dXJuIl0pID09IDEsIGxvYWRNYWNybyldKQorc3RvcmVDYXNlcyA9ICIiLmpvaW4oW29wIGZvciBv
cCBpbiB3YXNtLm9wY29kZUl0ZXJhdG9yKGxhbWJkYSBvcDogb3BbImNhdGVnb3J5Il0gPT0gIm1l
bW9yeSIgYW5kIGxlbihvcFsicmV0dXJuIl0pID09IDAsIHN0b3JlTWFjcm8pXSkKKworY29udGVu
dHMgPSB3YXNtLmhlYWRlciArICIiIgorLy8gVGhpcyBmaWxlIGlzIGludGVuZGVkIHRvIGJlIGlu
bGluZWQgYnkgV2FzbVZhbGlkYXRlLmNwcCBvbmx5ISBJdCBzaG91bGQgbm90IGJlIGluY2x1ZGVk
IGVsc2V3aGVyZS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisK
K25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CisKK2Jvb2wgVmFsaWRhdGU6OnVuYXJ5
T3AoVW5hcnlPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYg
cmVzdWx0KQoreworICAgIHN3aXRjaCAob3ApIHsKKyIiIiArIHVuYXJ5Q2FzZXMgKyAiIiIKKyAg
ICB9Cit9CisKK2Jvb2wgVmFsaWRhdGU6OmJpbmFyeU9wKEJpbmFyeU9wVHlwZSBvcCwgRXhwcmVz
c2lvblR5cGUgbGVmdCwgRXhwcmVzc2lvblR5cGUgcmlnaHQsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQpCit7CisgICAgc3dpdGNoIChvcCkgeworIiIiICsgYmluYXJ5Q2FzZXMgKyAiIiIKKyAgICB9
Cit9CisKK2Jvb2wgVmFsaWRhdGU6OmxvYWQoTG9hZE9wVHlwZSBvcCwgRXhwcmVzc2lvblR5cGUg
cG9pbnRlciwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3QpCit7CisgICAgc3dpdGNo
IChvcCkgeworIiIiICsgbG9hZENhc2VzICsgIiIiCisgICAgfQorfQorCitib29sIFZhbGlkYXRl
OjpzdG9yZShTdG9yZU9wVHlwZSBvcCwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lv
blR5cGUgdmFsdWUsIHVpbnQzMl90KQoreworICAgIHN3aXRjaCAob3ApIHsKKyIiIiArIHN0b3Jl
Q2FzZXMgKyAiIiIKKyAgICB9Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyIiIgorCit3YXNtVmFsaWRhdGVJbmxpbmVz
SEZpbGUud3JpdGUoY29udGVudHMpCit3YXNtVmFsaWRhdGVJbmxpbmVzSEZpbGUuY2xvc2UoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293579</attachid>
            <date>2016-11-01 13:08:20 -0700</date>
            <delta_ts>2016-11-01 13:43:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161707-20161101130422.patch</filename>
            <type>text/plain</type>
            <size>107447</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
Mjg3YjczYTM4MjBlY2YxYmIyYzY5YjNjN2YzMGU4MGU4YWEzOGU1Li5jZDY0MTBiN2VlZDM5NTMy
NDkwYjdmYjViOGNlNWIyNDIwYWEzMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw3MCBAQAogMjAxNi0xMC0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KIAorICAgICAgICBBZGQgYSBXQVNNIGZ1bmN0aW9uIHZhbGlkYXRvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTcwNworCisgICAgICAg
IFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIFRoaXMgaXMgYSBuZXcgdGVtcGxh
dGUgc3BlY2lhbGl6YXRpb24gb2YgdGhlIFdhc20gRnVuY3Rpb25QYXJzZXIgY2xhc3MuICBJbnN0
ZWFkIG9mIGhhdmluZworICAgICAgICB0aGUgRnVuY3Rpb25QYXJzZXIgdHJhY2sgd2hhdCBCMyB2
YWx1ZXMgZWFjaCBzdGFjayBlbnRyeSByZWZlcnMgdG8gdGhlIHZhbGlkYXRvciBoYXMgZWFjaAor
ICAgICAgICBlbnRyeSByZWZlciB0byB0aGUgdHlwZSBvZiB0aGUgc3RhY2sgZW50cnkuIEFkZGl0
aW9uYWxseSwgdGhlIGNvbnRyb2wgc3RhY2sgdHJhY2tzIHdoYXQgdHlwZQorICAgICAgICBvZiBi
bG9jayB0aGUgb2JqZWN0IGlzIGFuZCB3aGF0IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgYmxvY2sg
aXMuIFRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9ucworICAgICAgICBmb3IgdW5hcnksIGJpbmFyeSwg
YW5kIG1lbW9yeSBvcGVyYXRpb25zIGFyZSBhdXRvZ2VuZXJhdGVkIGJ5IHRoZQorICAgICAgICBn
ZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkgc2NyaXB0LgorCisgICAgICAgIFRo
ZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBpc3N1ZSB3aXRoIHZhbGlkYXRpbmcgdGhhdCB3aWxsIGJl
IGFkZHJlc3NlZCBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4KKyAgICAgICAgMSkgV2UgbmVlZCB0byBo
YW5kbGUgcmVzdWx0IHR5cGVzIGZyb20gYmFzaWMgYmxvY2tzLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTAwCisgICAgICAgIDIpIFdlIG5lZWQgdG8gaGFuZGxl
IHBvcHBpbmcgdGhpbmdzIGZyb20gc3RhY2tzIHdoZW4gdGhleSBkb24ndCBleGlzdC4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDI3NQorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHRlc3RX
YXNtLmNwcDoKKyAgICAgICAgKHJ1bldhc21UZXN0cyk6CisgICAgICAgICogd2FzbS9XYXNtQjNJ
UkdlbmVyYXRvci5jcHA6CisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0LmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0M6Oldhc206OnRvU3RyaW5nKToKKyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQu
aDoKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlVW5yZWFjaGFibGVFeHBy
ZXNzaW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21QbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGxhbjo6UGxhbik6CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OkNvbnRyb2xEYXRhOjpDb250cm9sRGF0YSk6
CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpDb250cm9sRGF0YTo6ZHVtcCk6CisgICAg
ICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpDb250cm9sRGF0YTo6dHlwZSk6CisgICAgICAgIChK
U0M6Oldhc206OlZhbGlkYXRlOjpDb250cm9sRGF0YTo6c2lnbmF0dXJlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6VmFsaWRhdGU6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFs
aWRhdGU6OmlzQ29udGludWF0aW9uUmVhY2hhYmxlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6VmFs
aWRhdGU6OmVycm9yTWVzc2FnZSk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpWYWxp
ZGF0ZSk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRBcmd1bWVudHMpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkTG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNt
OjpWYWxpZGF0ZTo6Z2V0TG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6c2V0
TG9jYWwpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkQmxvY2spOgorICAgICAg
ICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkTG9vcCk6CisgICAgICAgIChKU0M6Oldhc206OlZh
bGlkYXRlOjphZGRJZik6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRFbHNlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6VmFsaWRhdGU6OmFkZFJldHVybik6CisgICAgICAgIChKU0M6
Oldhc206OlZhbGlkYXRlOjphZGRCcmFuY2gpOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0
ZTo6ZW5kQmxvY2spOgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkQ2FsbCk6Cisg
ICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjp1bmlmeSk6CisgICAgICAgIChKU0M6Oldhc206
OlZhbGlkYXRlOjpkdW1wKToKKyAgICAgICAgKEpTQzo6V2FzbTo6dmFsaWRhdGVGdW5jdGlvbik6
CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUuaDogQWRkZWQuCisgICAgICAgICogd2FzbS9n
ZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHk6IEFkZGVkLgorICAgICAgICAoY3Bw
VHlwZSk6CisgICAgICAgICh0b0NwcCk6CisgICAgICAgICh1bmFyeU1hY3JvKToKKyAgICAgICAg
KGJpbmFyeU1hY3JvKToKKyAgICAgICAgKGxvYWRNYWNybyk6CisgICAgICAgIChzdG9yZU1hY3Jv
KToKKworMjAxNi0xMC0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
KwogICAgICAgICBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZyb20gd2FzbS5qc29uIHNob3VsZCBiZSBp
biBkZXJpdmVkIHNvdXJjZXMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjQxNTIKIApAQCAtMTA3MSw3ICsxMTM2LDcgQEAKIAogICAgICAgICBBc3lu
YyBmdW5jdGlvbnMgZ2VuZXJhdGUgYnl0ZWNvZGUgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5n
LCB3aGljaCBpcwogICAgICAgICBoaWdobHkgZGVwZW5kZW50IG9uIHRoZSBHZW5lcmF0b3IgaW1w
bGVtZW50YXRpb246Ci0gICAgICAgIAorCiAgICAgICAgIGBgYAogICAgICAgICAvLyBCZWZvcmUg
dHJhbnNsYXRpb246CiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGFzeW5jZm4oKSB7fQpAQCAtMTA5
Myw5ICsxMTU4LDkgQEAKICAgICAgICAgQXdhaXQgRXhwcmVzc2lvbnMgYXJlIGVxdWl2YWxlbnQg
dG8gbm9uLWRlbGVnYXRpbmcgWWllbGQgZXhwcmVzc2lvbnMsIGFuZCBlbWl0IGlkZW50aWNhbCBi
eXRlY29kZS4KIAogICAgICAgICBUaGVyZSBhcmUgc29tZSBjYXZlYXRzIHRvIGJlIGFkZHJlc3Nl
ZCBsYXRlcjoKLSAgICAgICAgCisKICAgICAgICAgMSkgdGhlIGBvcF90b190aGlzYCBpcyBhbHdh
eXMgcGVyZm9ybWVkLCB3aGV0aGVyIGl0J3MgdXNlZCBvciBub3QsIGxpa2Ugbm9ybWFsIGdlbmVy
YXRvcnMuIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTg2KQot
ICAgICAgICAKKwogICAgICAgICAyKSBmb3IgYXN5bmMgYXJyb3cgZnVuY3Rpb25zLCB0aGUgaG9t
ZSBvYmplY3QgaXMgYWx3YXlzIHN0b3JlZCBvbiB0aGUgImJvZHkiIGZ1bmN0aW9uLCByZWdhcmRs
ZXNzIG9mIHdoZXRoZXIgaXQncyBuZWVkZWQgb3IKICAgICAgICAgbm90LCBmb3IgdGhlIHNhbWUg
cmVhc29uIGFzICMxIChhbmQgc2hvdWxkIGFsc28gYmUgZml4ZWQgYXMgcGFydCBvZiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNTg2KQogCkBAIC0xMjAzLDcgKzEy
NjgsNyBAQAogICAgICAgICAgICBGb3IgbGF6aWx5IHJlaWZpZWQgcHJvcGVydGllcywgSlNGdW5j
dGlvbjo6cHV0KCkgaW1wbGVtZW50cyBjb21wbGV4IGNvbmRpdGlvbmFsCiAgICAgICAgICAgIGJl
aGF2aW9yIHRoYXQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIHNldCBvZiBjYWNoZWFibGUgcHV0IG9w
ZXJhdGlvbnMgYWJvdmUuCiAgICAgICAgICAgIEhlbmNlLCBpdCBzaG91bGQgbm90IGNsYWltIHRo
YXQgdGhlIHByb3BlcnR5IHB1dCBpcyBjYWNoZWFibGUuCi0gICAgCisKICAgICAgICAgMi4gQ2Fj
aGVhYmxlIHB1dHMgYXJlIGNhY2hlZCBvbiB0aGUgb3JpZ2luYWwgc3RydWN0dXJlIG9mIHRoZSBv
YmplY3QgYmVmb3JlIHRoZQogICAgICAgICAgICBwdXQgb3BlcmF0aW9uLgogCkBAIC0xNDYxLDcg
KzE1MjYsNyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzOTQ3CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCi0gICAgICAg
IAorCiAgICAgICAgIEkgd2FudCB0byBpbnRyb2R1Y2UgYW5vdGhlciBIZWFwVGltZXIuIFByaW9y
IHRvIHRoaXMgY2hhbmdlLCB0aGF0IHdvdWxkIGhhdmUgbWVhbnQgd3JpdGluZwogICAgICAgICBl
eGFjdCBjb3BpZXMgb2YgdGhhdCB0aW1lcidzIGxvZ2ljIGZvciBlYWNoIHBsYXRmb3JtIHRoYXQg
aGFzIGEgSGVhcFRpbWVyIChDRiwgR0xJQiwgYW5kCiAgICAgICAgIEVGTCkuIFRoYXQgbG9naWMg
d291bGQgaW4gdHVybiBiZSBhIGR1cGxpY2F0ZSBvZiB0aGUgbG9naWMgYWxyZWFkeSBwcmVzZW50
IGluCkBAIC0xNDY5LDEzICsxNTM0LDEzIEBACiAgICAgICAgIG93biBjb2RlIGZvciBzY2hlZHVs
aW5nIHRpbWVycywgc28gYSBuZXcgc3ViY2xhc3Mgd291bGQgaGF2ZSB0byBkdXBsaWNhdGUgdGhh
dCBjb2RlLiBUaGVuLAogICAgICAgICB0byBhZGQgaW5zdWx0IHRvIGluanVyeSwgdGhlIFVTRShD
RikgdmVyc2lvbiBvZiBIZWFwVGltZXIgd291bGQgaGF2ZSB0byBoYXZlIGFuIGV4dHJhIGNhc2UK
ICAgICAgICAgZm9yIHRoYXQgbmV3IHN1YmNsYXNzIHNpbmNlIGl0IGRvZXNuJ3QgdXNlIHZpcnR1
YWwgbWV0aG9kcyBlZmZlY3RpdmVseS4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBjaGFuZ2Vz
IEhlYXBUaW1lciBvbiBVU0UoQ0YpIHRvIGtub3cgdG8gZ2V0IGl0cyBydW5sb29wIGZyb20gSGVh
cCBhbmQgdG8gdXNlIHZpcnR1YWwKICAgICAgICAgbWV0aG9kcyBlZmZlY3RpdmVseSBzbyB0aGF0
IGl0IGRvZXNuJ3QgaGF2ZSB0byBrbm93IGFib3V0IGFsbCBvZiBpdHMgc3ViY2xhc3Nlcy4KLSAg
ICAgICAgCisKICAgICAgICAgVGhpcyBhbHNvIG1vdmVzIEluY3JlbWVudGFsU3dlZXBlcidzIGNv
ZGUgZm9yIHNjaGVkdWxpbmcgdGltZXJzIGludG8gSGVhcFRpbWVyLiBUaGlzIG1lYW5zCiAgICAg
ICAgIHRoYXQgZnV0dXJlIHN1YmNsYXNzZXMgb2YgSGVhcFRpbWVyIGNvdWxkIHNpbXBseSB1c2Ug
dGhhdCBsb2dpYy4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBrZWVwcyBjaGFuZ2VzIHRvIEdD
QWN0aXZpdHlDYWxsYmFjayB0byBhIG1pbmltdW0uIEl0IHN0aWxsIGhhcyBhIGxvdCBvZgogICAg
ICAgICBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCBJJ20gbm90IHN1cmUgdGhhdCB0aGlzIGNv
ZGUgY2FuIGJlIHRyaXZpYWxseSBkZWR1cGxpY2F0ZWQgc2luY2UKICAgICAgICAgdGhhdCBjb2Rl
IGhhcyBtb3JlIHF1aXJrcy4gVGhhdCdzIGZpbmUgZm9yIG5vdywgc2luY2UgSSBtYWlubHkganVz
dCBuZWVkIGEgc2FuZSB3YXkgb2YKQEAgLTIxMDQsMTQgKzIxNjksMTQgQEAKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzgwMgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KLSAgICAgICAgCisKICAgICAgICAgSlNDIG9mdGVuIHN1
ZmZlcnMgZnJvbSB0aGUgaW5saW5lIGNhcmdvIGN1bHQsIGFuZCBIZWFwIGlzIGEgcHJpbWUgZXhh
bXBsZS4gVGhpcyBvdXRsaW5lcyBhCiAgICAgICAgIGJ1bmNoIG9mIEhlYXAgbWV0aG9kcyB0aGF0
IGFyZSBlaXRoZXIgYWxyZWFkeSB2ZXJ5IGJpZywgb3IgY2FsbCBvdXQtb2YtbGluZSBtZXRob2Rz
LCBvciBjYWxsCiAgICAgICAgIHZlcnkgYmlnIG1ldGhvZHMsIG9yIGFyZSBub3QgY2FsbGVkIG9m
dGVuIGVub3VnaCBmb3IgaW5saW5pbmcgdG8gbWF0dGVyLgotICAgICAgICAKKwogICAgICAgICBU
aGlzIHNpbXBsaWZpZXMgY29uY3VycmVudCBHQyB3b3JrIGJlY2F1c2UgSSdtIHNvIHRpcmVkIG9m
IHJlY29tcGlsaW5nIHRoZSB3b3JsZCB3aGVuIEkgdG91Y2gKICAgICAgICAgb25lIG9mIHRoZXNl
IG1ldGhvZHMuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgbG9va3MgdG8gYmUgcGVyZi1uZXV0
cmFsLgogCiAgICAgICAgICogaGVhcC9IZWFwLmNwcDoKQEAgLTI0ODEsNyArMjU0Niw3IEBACiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM3MzgKIAog
ICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KLSAgICAgICAgCisKICAgICAgICAg
V2UgbmVlZCB0byBrbm93IGlmIHdlJ3JlIGN1cnJlbnRseSBpbiBhbiBhbGxvY2F0aW9uIHNsb3cg
cGF0aCwgc28gdGhhdCBjb2RlIGNhbiBhc3NlcnQgdGhhdAogICAgICAgICBpdCdzIG5vdCBiZWlu
ZyB1c2VkIGZyb20gaW5zaWRlIGEgZGVzdHJ1Y3RvciB0aGF0IHJ1bnMgZHVyaW5nIGEgc3dlZXAu
IFdlIG5lZWQgdG8ga25vdyBpZgogICAgICAgICB3ZSdyZSBjdXJyZW50bHkgY29sbGVjdGluZywg
YmVjYXVzZSBzb21lIGNvZGUgYmVoYXZlcyBkaWZmZXJlbnRseSBkdXJpbmcgY29sbGVjdGlvbiwg
YW5kCkBAIC0yNDg5LDcgKzI1NTQsNyBAQAogICAgICAgICBydW5zIGR1cmluZyBtYXJraW5nLiBJ
ZiB3ZSBhcmUgY29sbGVjdGluZywgd2UgbmVlZCB0byBrbm93IGlmIGl0J3MgYW4gZWRlbiBjb2xs
ZWN0aW9uIG9yIGEKICAgICAgICAgZnVsbCBjb2xsZWN0aW9uLiBJZiB3ZSBhcmUgcmVxdWVzdGlu
ZyBhIGNvbGxlY3Rpb24sIHdlIG5lZWQgdG8ga25vdyBpZiB3ZSdyZSByZXF1ZXN0aW5nIGFuCiAg
ICAgICAgIGVkZW4gY29sbGVjdGlvbiwgYSBmdWxsIGNvbGxlY3Rpb24sIG9yIGFueSBraW5kIG9m
IGNvbGxlY3Rpb24uCi0gICAgICAgIAorCiAgICAgICAgIFByaW9yIHRvIHRoaXMgY2hhbmdlLCB5
b3Ugd291bGQgcmVhc29uIGFib3V0IGFsbCBvZiB0aGVzZSB0aGluZ3MgdXNpbmcgdGhlIEhlYXBP
cGVyYXRpb24uIEl0CiAgICAgICAgIGhhZCB0aGUgZm9sbG93aW5nIHN0YXRlczogTm9PcGVyYXRp
b24sIEFsbG9jYXRpb24sIEZ1bGxDb2xsZWN0aW9uLCBFZGVuQ29sbGVjdGlvbiwgYW5kCiAgICAg
ICAgIEFueUNvbGxlY3Rpb24uIE5vT3BlcmF0aW9uIHZlcnN1cyBBbGxvY2F0aW9uIHdhcyBwcmlt
YXJpbHkgZm9yIGFzc2VydGluZyB0aGF0IHN3ZWVwIGRpZG4ndApAQCAtMjQ5Nyw3ICsyNTYyLDcg
QEAKICAgICAgICAgd291bGQgZXZlbiB1c2UgSGVhcE9wZXJhdGlvbiBpbiBwbGFjZXMgd2hlcmUg
d2Uga25ldyB0aGF0IGl0IGNvdWxkIG9ubHkgYmUgZWl0aGVyIEZ1bGwgb3IKICAgICAgICAgRWRl
biwgYmVjYXVzZSB3ZSBqdXN0IG5lZWRlZCBhIHZhcmlhYmxlIHRvIHRlbGwgdXMgd2hpY2ggZ2Vu
ZXJhdGlvbiB3ZSB3ZXJlIHRhbGtpbmcgYWJvdXQuCiAgICAgICAgIEl0IHdhcyBhbGwgdmVyeSBj
b25mdXNpbmcuCi0gICAgICAgIAorCiAgICAgICAgIFdoZXJlIGl0IGNvbXBsZXRlbHkgYnJlYWtz
IGRvd24gaXMgdGhlIGZhY3QgdGhhdCBhIGNvbmN1cnJlbnQgR0MgaGFzIHR3byBsb2dpY2FsIHRo
cmVhZHMsIHRoZQogICAgICAgICBtdXRhdG9yIGFuZCB0aGUgY29sbGVjdG9yLCB3aGljaCBjYW4g
Y2hhbmdlIHN0YXRlIGluZGVwZW5kZW50bHkuIFRoZSBtdXRhdG9yIGNhbiBiZQogICAgICAgICBh
bGxvY2F0aW5nLiBJdCBjYW4gYWxzbyBiZSBkb2luZyBzb21lIHdvcmsgdG8gaGVscCB0aGUgR0Mu
IFRoYXQncyB0aHJlZSBzdGF0ZXM6IHJ1bm5pbmcsCkBAIC0yNTA3LDEwICsyNTcyLDEwIEBACiAg
ICAgICAgIHN0YXRlczogZXZlcnkgY29tYmluYXRpb24gb2YgbXV0YXRvciBydW5uaW5nLCBhbGxv
Y2F0aW5nLCBvciBoZWxwaW5nIEdDLCBjcm9zc2VkIHdpdGgKICAgICAgICAgY29sbGVjdG9yIG5v
dCBydW5uaW5nLCBydW5uaW5nIGVkZW4sIG9yIHJ1bm5pbmcgZnVsbC4gU28sIHRoaXMgY2hhbmdl
IGRlY291cGxlcyBtdXRhdG9yIHN0YXRlCiAgICAgICAgIGZyb20gY29sbGVjdG9yIHN0YXRlIGFu
ZCB1c2VzIHR3byBzZXBhcmF0ZSBmaWVsZHMgd2l0aCB0d28gZGlmZmVyZW50IHR5cGVzLgotICAg
ICAgICAKKwogICAgICAgICBNdXRhdG9yIHN0YXRlIGlzIGRlc2NyaWJlZCB1c2luZyBNdXRhdG9y
U3RhdGUsIHdoaWNoIGNhbiBiZSBlaXRoZXIgTXV0YXRvclN0YXRlOjpSdW5uaW5nLAogICAgICAg
ICBNdXRhdG9yU3RhdGU6OkFsbG9jYXRpbmcsIG9yIE11dGF0b3JTdGF0ZTo6SGVscGluZ0dDLgot
ICAgICAgICAKKwogICAgICAgICBDb2xsZWN0b3Igc3RhdGUgaXMgZGVzY3JpYmVkIHVzaW5nIE9w
dGlvbmFsPENvbGxlY3Rpb25TY29wZT4uIENvbGxlY3Rpb25TY29wZSBkZXNjcmliZXMgaG93CiAg
ICAgICAgIGJpZyB0aGUgc2NvcGUgb2YgdGhlIGNvbGxlY3Rpb24gaXMsIGFuZCBpdCBjYW4gYmUg
ZWl0aGVyIENvbGxlY3Rpb25TY29wZTo6RWRlbiBvcgogICAgICAgICBDb2xsZWN0aW9uU2NvcGU6
OkZ1bGwuIElmIHRoZSBPcHRpb25hbCBpcyBOdWxsb3B0LCBpdCBtZWFucyB0aGF0IHdlIGFyZSBu
b3QgY29sbGVjdGluZy4gVGhpcwpAQCAtMjUxOSw3ICsyNTg0LDcgQEAKICAgICAgICAgd2FudCB0
byBrbm93IGFib3V0IHRoZSBnZW5lcmF0aW9uLiBBbHNvLCB3ZSBjYW4gdXNlIE51bGxvcHQgaW4g
bWV0aG9kcyB0aGF0IHJlcXVlc3QKICAgICAgICAgY29sbGVjdGlvbiwgd2hpY2ggdGhvc2UgbWV0
aG9kcyB0YWtlIHRvIG1lYW4gdGhhdCB0aGV5IGNhbiBydW4gYW55IGtpbmQgb2YgY29sbGVjdGlv
biAodGhlCiAgICAgICAgIG9sZCBBbnlDb2xsZWN0aW9uKS4KLSAgICAgICAgCisKICAgICAgICAg
QW5vdGhlciB1c2Ugb2YgSGVhcE9wZXJhdGlvbiB3YXMgdG8gYW5zd2VyIHF1ZXN0aW9ucyBhYm91
dCB3aGV0aGVyIHRoZSBjYWxsZXIgaXMgcnVubmluZyBhcwogICAgICAgICBwYXJ0IG9mIHRoZSBH
QyBvciBhcyBwYXJ0IG9mIHRoZSBtdXRhdG9yLiBPcHRpb25hbDxDb2xsZWN0aW9uU2NvcGU+IGRv
ZXMgbm90IGFuc3dlciB0aGlzLAogICAgICAgICBzaW5jZSBjb2RlIHRoYXQgcnVucyBpbiB0aGUg
bXV0YXRvciB3aGlsZSB0aGUgbXV0YXRvciBpcyBub3QgSGVscGluZ0dDIGF0IHRoZSBzYW1lIHRp
bWUgYXMKQEAgLTI1MzYsNyArMjYwMSw3IEBACiAgICAgICAgIGNoZWNrcyBsb29rIGZvciBHQ1Ro
cmVhZFR5cGU6OkhlbHBlci4gVGhlICJzaG91bGQgSSBydW4gYXMgbXV0YXRvciIgcXVlcnkgY2Fu
IG5vdyBiZSBhbnN3ZXJlZAogICAgICAgICBieSBjaGVja2luZyB3aXRoIG1heUJlR0NUaHJlYWQs
IHdoaWNoIHJldHVybnMgT3B0aW9uYWw8R0NUaHJlYWRUeXBlPjsgaWYgZW5nYWdlZCwgdGhlbiBy
dW4gYXMKICAgICAgICAgR0MsIGVsc2UgcnVuIGFzIEdDIGlmIE11dGF0b3JTdGF0ZSBpcyBIZWxw
aW5nR0MsIGVsc2UgcnVuIGFzIG11dGF0b3IuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgZG9l
c24ndCBjaGFuZ2UgdGhlIHdheSB0aGF0IHRoZSBHQyBiZWhhdmVzLCBidXQgaXQgZG9lcyBjaGFu
Z2UgaG93IHRoZSBHQyByZXByZXNlbnRzIGEKICAgICAgICAgZnVuZGFtZW50YWwgcGllY2Ugb2Yg
c3RhdGUuIFNvLCBpdCdzIGEgYmlnIGNoYW5nZS4gSXQgc2hvdWxkIGJlIHBlcmYtbmV1dHJhbCAo
c3RpbGwgdGVzdGluZykuCiAKQEAgLTMwOTYsMTAgKzMxNjEsMTAgQEAKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzY4NgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgotICAgICAgICAKKwogICAgICAgICBDaGFuZ2UgdGhlIEpJ
VFdvcmtsaXN0IHRvIHVzZSBBdXRvbWF0aWNUaHJlYWQsIHNvIHRoYXQgdGhlIEJhc2VsaW5lIEpJ
VCdzIGNvbmN1cnJlbnQKICAgICAgICAgY29tcGlsZXIgdGhyZWFkIHNodXRzIGRvd24gYXV0b21h
dGljYWxseSBhZnRlciBpbmFjdGl2aXR5LgotICAgICAgICAKKwogICAgICAgICBXaXRoIHRoaXMg
Y2hhbmdlLCBhbGwgb2YgSlNDJ3MgdGhyZWFkcyBzaHV0IGRvd24gYXV0b21hdGljYWxseS4gSWYg
eW91IHJ1biBzcGxheSBmb3IgYSBmZXcKICAgICAgICAgc2Vjb25kcyAod2hpY2ggZmlyZXMgdXAg
YWxsIHRocmVhZHMgLSBjb21waWxlciBhbmQgR0MpIGFuZCB0aGVuIGdvIHRvIHNsZWVwIGZvciBh
IHNlY29uZCwKICAgICAgICAgeW91J2xsIHNlZSB0aGF0IHRoZSBvbmx5IHRocmVhZHMgbGVmdCBh
cmUgdGhlIG1haW4gdGhyZWFkIGFuZCB0aGUgYm1hbGxvYyB0aHJlYWQuCkBAIC0zMTQyLDE2ICsz
MjA3LDE2IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM2MTUKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAgICAgICAgCisKICAg
ICAgICAgQXV0b21hdGljVGhyZWFkIGlzIGEgbmV3IGZlYXR1cmUgaW4gV1RGIHRoYXQgYWxsb3dz
IHlvdSB0byBlYXNpbHkgY3JlYXRlIHdvcmtlciB0aHJlYWRzIHRoYXQKICAgICAgICAgc2h1dCBk
b3duIGF1dG9tYXRpY2FsbHkuIFRoaXMgY2hhbmdlcyBERkc6OldvcmtsaXN0IHRvIHVzZSBBdXRv
bWF0aWNUaHJlYWQsIHNvIHRoYXQgaXRzCiAgICAgICAgIHRocmVhZHMgc2h1dCBkb3duIGF1dG9t
YXRpY2FsbHksIHRvby4gVGhpcyBoYXMgdGhlIHBvdGVudGlhbCB0byBzYXZlIGEgbG90IG9mIG1l
bW9yeS4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyByZXF1aXJlZCBzb21lIGltcHJvdmVtZW50
cyB0byBBdXRvbWF0aWNUaHJlYWQ6IFdvcmtsaXN0IGxpa2VzIHRvIGJlIGFibGUgdG8ga2VlcCBz
dGF0ZQogICAgICAgICBhcm91bmQgZm9yIHRoZSB3aG9sZSBsaWZldGltZSBvZiBhIHRocmVhZCwg
YW5kIHNvIGl0IGxpa2VzIGtub3dpbmcgd2hlbiB0aHJlYWRzIGFyZSBib3JuIGFuZAogICAgICAg
ICB3aGVuIHRoZXkgZGllLiBJIGFkZGVkIHZpcnR1YWwgbWV0aG9kcyBmb3IgdGhhdC4gQWxzbywg
V29ya2xpc3QgdXNlcyBub3RpZnlPbmUoKSBzbyBJIGFkZGVkCiAgICAgICAgIHRoYXQsIHRvby4K
LSAgICAgICAgCisKICAgICAgICAgVGhpcyBsb29rcyB0byBiZSBwZXJmLW5ldXRyYWwuCiAKICAg
ICAgICAgKiBkZmcvREZHVGhyZWFkRGF0YS5jcHA6CkBAIC0zMzE1LDkgKzMzODAsOSBAQAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNTc2CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLSAgICAgICAgCisKICAgICAgICAgQWRk
ZWQgYSBzbGVlcFNlY29uZHMoKSBmdW5jdGlvbiwgd2hpY2ggbWFkZSBpdCBlYXNpZXIgZm9yIG1l
IHRvIHRlc3QgdGhpcyBjaGFuZ2UuCi0gICAgICAgIAorCiAgICAgICAgIFRoZSBXVEYgY2hhbmdl
cyBpbiB0aGlzIHBhdGNoIGNoYW5nZSBob3cgdGhlIEpTQyBHQyBtYW5hZ2VzIHRocmVhZHM6IHRo
ZSBHQyB0aHJlYWRzIHdpbGwgbm93CiAgICAgICAgIHNodXQgZG93biBhdXRvbWF0aWNhbGx5IGFm
dGVyIDEgc2Vjb25kIG9mIGluYWN0aXZpdHkuIE1heWJlIHRoaXMgd2lsbCBzYXZlIHNvbWUgbWVt
b3J5LgogCkBAIC0zMzQ1LDU2ICszNDEwLDU2IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMzNzEKIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZnJleSBHYXJlbiBhbmQgU2FhbSBCYXJhdGkuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgYWRk
cyBhIG5ldyBraW5kIG9mIGNhbGwgaW5saW5lIGNhY2hlIGZvciB3aGVuIHRoZSBERkcgY2FuIHBy
b3ZlIHdoYXQgdGhlIGNhbGxlZQogICAgICAgICBleGVjdXRhYmxlIGlzLiBJbiB0aG9zZSBjYXNl
cywgd2UgY2FuIHNraXAgc29tZSBvZiB0aGUgdGhpbmdzIHRoYXQgdGhlIHRyYWRpdGlvbmFsIGNh
bGwgSUMKICAgICAgICAgd291bGQgZG86Ci0gICAgICAgIAorCiAgICAgICAgIC0gTm8gbmVlZCB0
byBjaGVjayB3aG8gdGhlIGNhbGxlZSBpcy4KICAgICAgICAgLSBObyBuZWVkIHRvIGRvIGFyaXR5
IGNoZWNrcy4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBjYXNlIGlzbid0IGFzIHNpbXBsZSBh
cyBqdXN0IGVtaXR0aW5nIGEgY2FsbCBpbnN0cnVjdGlvbiBzaW5jZSB0aGUgY2FsbGVlIG1heSBu
b3QgYmUKICAgICAgICAgY29tcGlsZWQgYXQgdGhlIHRpbWUgdGhhdCB0aGUgY2FsbGVyIGlzIGNv
bXBpbGVkLiBTbywgd2UgbmVlZCBsYXp5IHJlc29sdXRpb24uIEFsc28sIHRoZQogICAgICAgICBj
YWxsZWUgbWF5IGJlIGpldHRpc29uZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgY2FsbGVyLCBzbyB3
ZSBuZWVkIHRvIGJlIGFibGUgdG8gcmV2ZXJ0IHRoZQogICAgICAgICBjYWxsIHRvIGFuIHVubGlu
a2VkIHN0YXRlLiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCBhbG1vc3QgYWxsIG9mIHRoZSB0aGlu
Z3MgdGhhdAogICAgICAgICBDYWxsTGlua0luZm8gaGFzLiBDYWxsTGlua0luZm8gYWxyZWFkeSBr
bm93cyBhYm91dCBkaWZmZXJlbnQga2luZHMgb2YgY2FsbHMuIFRoaXMgcGF0Y2gKICAgICAgICAg
dGVhY2hlcyBpdCBhYm91dCBuZXcgIkRpcmVjdCIgY2FsbCB0eXBlcy4KLSAgICAgICAgCisKICAg
ICAgICAgVGhlIGRpcmVjdCBub24tdGFpbCBjYWxsIElDIGxvb2tzIGxpa2UgdGhpczoKLSAgICAg
ICAgCisKICAgICAgICAgICAgICAgICBzZXQgdXAgYXJndW1lbnRzCiAgICAgICAgICAgICBGYXN0
UGF0aDoKICAgICAgICAgICAgICAgICBjYWxsIF9TbG93UGF0aAogICAgICAgICAgICAgICAgIGxl
YSAtRnJhbWVTaXplKCVyYnApLCAlcnNwCi0gICAgICAgICAgICAKKwogICAgICAgICAgICAgU2xv
d1BhdGg6CiAgICAgICAgICAgICAgICAgcG9wCiAgICAgICAgICAgICAgICAgY2FsbCBvcGVyYXRp
b25MaW5rRGlyZWN0Q2FsbAogICAgICAgICAgICAgICAgIGNoZWNrIGV4Y2VwdGlvbgogICAgICAg
ICAgICAgICAgIGptcCBGYXN0UGF0aAotICAgICAgICAKKwogICAgICAgICBUaGUgam9iIG9mIG9w
ZXJhdGlvbkxpbmtEaXJlY3RDYWxsIGlzIHRvIGxpbmsgdGhlIGZhc3QgcGF0aCdzIGNhbGwgZW50
cnlwb2ludCBvZiB0aGUgY2FsbGVlLgogICAgICAgICBUaGlzIG1lYW5zIHRoYXQgaW4gc3RlYWR5
IHN0YXRlLCBhIGNhbGwgaXMganVzdCB0aGF0OiBhIGNhbGwuIFRoZXJlIGFyZSBubyBleHRyYSBi
cmFuY2hlcyBvcgogICAgICAgICBjaGVja3MuCi0gICAgICAgIAorCiAgICAgICAgIFRoZSBkaXJl
Y3QgdGFpbCBjYWxsIElDIGlzIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQgYmVjYXVzZSB0aGUgYWN0
IG9mIHNldHRpbmcgdXAgYXJndW1lbnRzCiAgICAgICAgIGRlc3Ryb3lzIG91ciBmcmFtZSwgd2hp
Y2ggd291bGQgcHJldmVudCB1cyBmcm9tIGJlaW5nIGFibGUgdG8gdGhyb3cgYW4gZXhjZXB0aW9u
IGlmIHdlCiAgICAgICAgIGZhaWxlZCB0byBjb21waWxlIHRoZSBjYWxsZWUuIFNvLCBkaXJlY3Qg
dGFpbCBjYWxsIElDcyBsb29rIGxpa2UgdGhpczoKLSAgICAgICAgCisKICAgICAgICAgICAgICAg
ICBqbXAgX1Nsb3dQYXRoCiAgICAgICAgICAgICBGYXN0UGF0aDoKICAgICAgICAgICAgICAgICBz
ZXQgdXAgYXJndW1lbnRzCiAgICAgICAgICAgICAgICAgam1wIDAgLy8gcGF0Y2ggdG8ganVtcCB0
byBjYWxsZWUKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBTbG93UGF0aDoKICAgICAgICAg
ICAgICAgICBzaWxlbnQgc3BpbGwKICAgICAgICAgICAgICAgICBjYWxsIG9wZXJhdGlvbkxpbmtE
aXJlY3RDYWxsCiAgICAgICAgICAgICAgICAgc2lsZW50IGZpbGwKICAgICAgICAgICAgICAgICBj
aGVjayBleGNlcHRpb24KICAgICAgICAgICAgICAgICBqbXAgRmFzdFBhdGgKLSAgICAgICAgCisK
ICAgICAgICAgVGhlIGptcCB0byB0aGUgc2xvdyBwYXRoIGlzIHBhdGNoZWQgdG8gYmUgYSBmYWxs
LXRocm91Z2ggam1wIHdoZW4gd2UgbGluayB0aGUgY2FsbC4KLSAgICAgICAgCisKICAgICAgICAg
RGlyZWN0IGNhbGxzIG1lYW4gbGVzcyBjb2RlIGF0IGNhbGwgc2l0ZXMsIGZld2VyIGNoZWNrcyBv
biB0aGUgc3RlYWR5IHN0YXRlIGNhbGwgZmFzdCBwYXRoLAogICAgICAgICBhbmQgbm8gbmVlZCBm
b3IgYXJpdHkgZml4dXAuIFRoaXMgbG9va3MgbGlrZSBhIHNsaWdodCBzcGVlZC11cCAofjAuOCUp
IG9uIGJvdGggT2N0YW5lIGFuZAogICAgICAgICBBc21CZW5jaC4KQEAgLTM1NTUsMTUgKzM2MjAs
MTUgQEAKICAgICAgICAgU3BlY2lmaWMgaXRlbXMgd2hpY2ggZG8gbm90IGNvbnRhaW4gInByb3Rv
dHlwZSIgaW5jbHVkZSAobW9zdCkgYnVpbHQtaW4gZnVuY3Rpb25zIChzdWNoIGFzIE1hdGgucG93
KSwKICAgICAgICAgTWV0aG9kRGVmaW5pdGlvbnMgd2hpY2ggYXJlIG5vdCBlaXRoZXIgY2xhc3Mg
ImNvbnN0cnVjdG9yIiBtZXRob2RzIG9yIEdlbmVyYXRvck1ldGhvZHMsIEFzeW5jRnVuY3Rpb25z
LAogICAgICAgICBhbmQgQXJyb3dGdW5jdGlvbnMuCi0gICAgICAgIAorCiAgICAgICAgIEZvciBk
ZXRhaWxzLCBzZWUgdGhlIGZvbGxvd2luZyBzcGVjIHRleHQsIGFuZCB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIEdlbmVyYXRvck1ldGhvZCBldmFsdWF0aW9uIGFuZAogICAgICAgICB0aGUgZXZhbHVh
dGlvbiBvZiBvdGhlciBNZXRob2REZWZpbml0aW9uIGZvcm1zLgotICAgICAgICAKKwogICAgICAg
ICAtIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1ldGhvZC1kZWZpbml0aW9u
cy1ydW50aW1lLXNlbWFudGljcy1wcm9wZXJ0eWRlZmluaXRpb25ldmFsdWF0aW9uCiAgICAgICAg
IC0gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyb3ctZnVuY3Rpb24tZGVm
aW5pdGlvbnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgogICAgICAgICAtIGh0dHBzOi8v
dGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdC1hc3luY2F3YWl0LyNhc3luYy1mdW5jdGlvbi1pbnN0
YW5jZXMKICAgICAgICAgLSBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZW5l
cmF0b3ItZnVuY3Rpb24tZGVmaW5pdGlvbnMtcnVudGltZS1zZW1hbnRpY3MtcHJvcGVydHlkZWZp
bml0aW9uZXZhbHVhdGlvbgotICAgICAgICAKKwogCiAgICAgICAgICogcnVudGltZS9FeGVjdXRh
YmxlLmg6CiAgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKQEAgLTM3MDksNyArMzc3
NCw3IEBACiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODgwNDM4MT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KLSAgICAgICAgCisKICAgICAgICAgQmVmb3JlIHIyMDc0
MDgsIElSQyBoYWQgYSBtb2RlIHdoZXJlIGl0IHdvdWxkIHNpbGVudGx5IGFzc2lnbiB0aGUgZmly
c3QgYXNzaWduYWJsZSByZWdpc3RlciAoc28KICAgICAgICAgJXJheCwgJXhtbTAsIGV0YykgdG8g
YW55IHRtcCB0aGF0IHdhcyBub3QgY29sb3JhYmxlIGR1ZSB0byBhIHBhdGhvbG9naWNhbCBpbnRl
cmZlcmVuY2UgZmVuY2Vwb3N0LgogICAgICAgICBXZSByZWFzb24gYWJvdXQgaW50ZXJmZXJlbmNl
IGF0IGluc3RydWN0aW9uIGJvdW5kYXJpZXMuIFRoaXMgbWVhbnMgdGhhdCBpZiB5b3UgaGF2ZSwg
Zm9yIGV4YW1wbGUsCkBAIC0zNzIwLDE5ICszNzg1LDE5IEBACiAgICAgICAgIHRvIG9ubHkgYmUg
aGl0IGJ5IGZ1enppbmcsIHdoaWNoIG1heSBub3QgdGhlbiBzdHJlc3MgdGhhdCBjb2RlIGVub3Vn
aCB0byBzaGFrZSBvdXQgdGhlIHJlZ2lzdGVyCiAgICAgICAgIGNvcnJ1cHRpb24uIEFsc28sIHRo
aXMgY2FuIG9ubHkgaGFwcGVuIGZvciBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMsIHNvIGl0J3Mg
aGFyZCB0byBnZXQgYW4KICAgICAgICAgZXhjaXRpbmcgY3Jhc2guIFRoZSB3b3JzdCBjYXNlIGlz
IHRoYXQgeW91ciBudW1iZXJzIGdldCBhbGwgbWVzc2VkIHVwLgotICAgICAgICAKKwogICAgICAg
ICBUaGlzIGNoYW5nZSBmaXhlcyB0aGUgaXNzdWU6Ci0gICAgICAgIAorCiAgICAgICAgIC0gSVJD
IHdpbGwgbm93IGNyYXNoIGlmIGl0IGNhbid0IGNvbG9yIGEgdG1wLgotICAgICAgICAKKwogICAg
ICAgICAtIElSQyBkb2Vzbid0IGNyYXNoIG9uIG91ciB0ZXN0cyBhbnltb3JlIGJlY2F1c2UgSSBh
ZGRlZCBhIHBhZEludGVyZmVyZW5jZSgpIHV0aWxpdHkgdGhhdCB3b3JrcwogICAgICAgICAgIGFy
b3VuZCB0aGUgaW50ZXJmZXJlbmNlIHByb2JsZW0gYnkgaW5zZXJ0aW5nIE5vcHMgdG8gcGFkIGJl
dHdlZW4gdGhvc2UgaW5zdHJ1Y3Rpb25zIHdoZXJlCiAgICAgICAgICAgY29uZmxhdGluZyB0aGVp
ciBlYXJseSBhbmQgbGF0ZSBhY3Rpb25zIGludG8gb25lIGludGVyZmVyZW5jZSBmZW5jZXBvc3Qg
Y291bGQgY3JlYXRlIGFuCiAgICAgICAgICAgdW5jb2xvcmFibGUgZ3JhcGguCi0gICAgICAgIAor
CiAgICAgICAgIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
NTQ4I2MyIGZvciBhIGRldGFpbGVkIGRpc2N1c3Npb24gb2YgaG93IHRoZQogICAgICAgICBwcm9i
bGVtIGNhbiBhcmlzZS4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBwcm9ibGVtIGFsbW9zdCBt
YWRlIG1lIHdhbnQgdG8gYWJhbmRvbiBvdXIgdXNlIG9mIGludGVyZmVyZW5jZSBhdCBpbnN0cnVj
dGlvbiBib3VuZGFyaWVzLAogICAgICAgICBhbmQgaW50cm9kdWNlIHNvbWV0aGluZyBtb3JlIGNv
bXByZWhlbnNpdmUsIGxpa2UgaW50ZXJmZXJlbmNlIGF0IHZhcmlvdXMgc3RhZ2VzIG9mIGFuCiAg
ICAgICAgIGluc3RydWN0aW9uJ3MgZXhlY3V0aW9uLiBUaGUgcmVhc29uIHdoeSBJIGRpZG4ndCBk
byB0aGlzIGlzIHRoYXQgdGhpcyBwcm9ibGVtIG9ubHkgYXJpc2VzIGluIHdlbGwKQEAgLTM3NDYs
NyArMzgxMSw3IEBACiAgICAgICAgIHBhZEludGVyZmVyZW5jZSgpIHNvIHRoZSBJUiBzdGF5cyBu
aWNlIGFuZCBjb21wYWN0LiBUaG9zZSBOb3BzIGdldCByZW1vdmVkIGJ5IGFueSBwaGFzZSB0aGF0
IGRvZXMKICAgICAgICAgRENFLCB3aGljaCBpbmNsdWRlcyBlbGltaW5hdGVEZWFkQ29kZSgpLCBh
bGxvY2F0ZVN0YWNrKCksIGFuZCByZXBvcnRVc2VkUmVnaXN0ZXJzKCkuIEluIHByYWN0aWNlCiAg
ICAgICAgIGFsbG9jYXRlU3RhY2soKSBraWxscyB0aGVtLgotICAgICAgICAKKwogICAgICAgICBU
aGlzIGFsc28gZmluYWxseSByZWZhY3RvcnMgb3VyIHBhc3Npbmcgb2YgUmVnaXN0ZXJTZXQgdG8g
cGFzcyBpdCBieSB2YWx1ZSwgc2luY2UgaXQncyBzbWFsbAogICAgICAgICBlbm91Z2ggdGhhdCB3
ZSdyZSBub3QgZ2FpbmluZyBhbnl0aGluZyBieSB1c2luZyByZWZlcmVuY2VzLiBPbiB4ODYsIFJl
Z2lzdGVyU2V0IG91Z2h0IHRvIGJlCiAgICAgICAgIHNtYWxsZXIgdGhhbiBhIHBvaW50ZXIuCkBA
IC00MDEzLDEzICs0MDc4LDEzIEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM1MDkKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAg
ICAgICAgCisKICAgICAgICAgVGhlIHdvcmtsaXN0IGJ1aWxkaW5nIGZ1bmN0aW9uIGluIElSQyBz
a2lwcyB0ZW1wb3JhcmllcyB0aGF0IGhhdmUgbm8gZGVncmVlLiBUaGlzIGRvZXNuJ3QgYXBwZWFy
CiAgICAgICAgIHRvIGJlIG5lY2Vzc2FyeS4gVGhpcyBoYXMgYmVlbiB0aGVyZSBzaW5jZSB0aGUg
b3JpZ2luYWwgSVJDIGNvbW1pdC4gSXQgaGFzbid0IGNhdXNlZCBidWdzIGJlY2F1c2UKICAgICAg
ICAgb3JkaW5hcmlseSwgdGhlIG9ubHkgd2F5IHRvIGhhdmUgYSB0bXAgd2l0aCBubyBkZWdyZWUg
aXMgdG8gbm90IGhhdmUgYW55IG1lbnRpb24gb2YgdGhhdCB0bXAuIEJ1dAogICAgICAgICB3aGls
ZSB3b3JraW5nIG9uIGJ1ZyAxNjMzNzEsIEkgaGl0IGEgY3JhenkgY29ybmVyIGNhc2Ugd2hlcmUg
YSB0ZW1wb3Jhcnkgd291bGQgaGF2ZSBubwogICAgICAgICBpbnRlcmZlcmVuY2UgZWRnZXMgKGku
ZS4gbm8gZGVncmVlKS4gSGVyZSdzIGhvdyBpdCBoYXBwZW5zOgotICAgICAgICAKKwogICAgICAg
ICBBIHNwaWxsIHRtcCBmcm9tIGEgcHJldmlvdXMgaXRlcmF0aW9uIG9mIElSQyBtYXkgaGF2ZSBu
byBkZWdyZWU6IGltYWdpbmUgYSB0bXAgdGhhdCBpcyBsaXZlCiAgICAgICAgIGV2ZXJ5d2hlcmUg
YW5kIGludGVyZmVyZXMgd2l0aCBldmVyeW9uZSwgYnV0IGhhcyBvbmUgdXNlIGxpa2U6CiAKQEAg
LTQwMzksNyArNDEwNCw3IEBACiAKICAgICAgICAgVGhlbiwgd2UgbWlnaHQgY29hbGVzY2UgJXNv
bWVPdGhlclRtcCB3aXRoICVuZXdUbXAuICBPbmNlIHRoaXMgaGFwcGVucywgaWYgd2UgbWFrZSB0
aGUgJW5ld1RtcCBiZQogICAgICAgICB0aGUgbWFzdGVyLCB3ZSdyZSBpbiBkZWVwIHRyb3VibGUg
YmVjYXVzZSAlbmV3VG1wIGlzIG5vdCBvbiBhbnkgd29ya2xpc3QuCi0gICAgICAgIAorCiAgICAg
ICAgIEkgZG9uJ3Qga25vdyBob3cgdG8gcmVwcm9kdWNlIHRoaXMgZXhjZXB0IHRocm91Z2ggdGhl
IHBhdGNoIGluIGJ1ZyAxNjMzNzEuIFJlbW92aW5nIHRoZSB0d28gbGluZXMKICAgICAgICAgb2Yg
Y29kZSB0aGF0IHNraXBwZWQgbm8tZGVncmVlIHRtcHMgY2F1c2VzIG5vIHJlZ3Jlc3Npb25zLCBh
bmQgcmVzb2x2ZXMgdGhlIHByb2JsZW0gSSB3YXMgaGF2aW5nLgogCkBAIC00NDIzLDI4ICs0NDg4
LDI4IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjMzNDMKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAgICAgICAgCisKICAgICAg
ICAgV2hlbiBJIGZpcnN0IGFkZGVkIHRoZSBjb25jZXB0IG9mIE5ld0dyZXkvT2xkR3JleSwgSSBo
YWQgdGhlIFNsb3RWaXNpdG9yIHN0b3JlIHRoZSBvbGQgY2VsbAogICAgICAgICBzdGF0ZSBpbiBp
dHNlbGYsIHNvIHRoYXQgaXQgY291bGQgdXNlIGl0IHRvIGRlY2lkZSB3aGF0IHRvIGRvIGZvciBy
ZXBvcnRFeHRyYU1lbW9yeVZpc2l0ZWQoKS4KLSAgICAgICAgCisKICAgICAgICAgVGhlbiBJIGNo
YW5nZWQgaXQgaW4gYSByZWNlbnQgY29tbWl0LCBiZWNhdXNlIEkgd2FudGVkIHRoZSBmcmVlZG9t
IHRvIGhhdmUgU2xvdFZpc2l0b3IgdmlzaXQKICAgICAgICAgbXVsdGlwbGUgb2JqZWN0cyBpbiB0
YW5kZW0uIEJ1dCBJIG5ldmVyIGVuZGVkIHVwIHVzaW5nIHRoaXMgY2FwYWJpbGl0eS4gU3RpbGws
IEkgbGlrZWQgdGhlCiAgICAgICAgIG5ldyB3YXkgYmV0dGVyOiBpbnN0ZWFkIG9mIHRoZSBTbG90
VmlzaXRvciByZW1iZW1lcmluZyB0aGUgc3RhdGUtYmVmb3JlLWJsYWNrZW5pbmcsIHdlIHdvdWxk
CiAgICAgICAgIG1ha2UgdGhlIG9iamVjdCdzIHN0YXRlIHJlZmxlY3Qgd2hldGhlciBpdCB3YXMg
YmxhY2sgZm9yIHRoZSBmaXJzdCB0aW1lIG9yIG5vdC4gVGhhdCBzZWVtZWQKICAgICAgICAgY29u
dmVuaWVudC4KLSAgICAgICAgCisKICAgICAgICAgVW5mb3J0dW5hdGVseSBpdCdzIHdyb25nLiBB
ZnRlciB3ZSBibGFja2VuIHRoZSBvYmplY3QsIGEgY29uY3VycmVudCBiYXJyaWVyIGNvdWxkIGlu
c3RhbnRseQogICAgICAgICBncmV5IGl0LiBUaGVuIHdlIHdvdWxkIGZvcmdldCB0aGF0IHdlIGFy
ZSB2aXNpdGluZyB0aGlzIG9iamVjdCBmb3IgdGhlIGZpcnN0IHRpbWUuCiAgICAgICAgIFN1YnNl
cXVlbnQgdmlzaXRzIHdpbGwgdGhpbmsgdGhhdCB0aGV5IGFyZSBub3QgdGhlIGZpcnN0LiBTbywg
d2Ugd2lsbCBmYWlsIHRvIGRvIHRoZSByaWdodAogICAgICAgICB0aGluZyBpbiByZXBvcnRFeHRy
YU1lbW9yeVZpc2l0ZWQoKS4KLSAgICAgICAgCisKICAgICAgICAgU28sIHRoaXMgcmV2ZXJ0cyB0
aGF0IGNoYW5nZS4gVGhpcyBpcyBhIGxpdHRsZSBtb3JlIHRoYW4ganVzdCBhIHJldmVydCwgdGhv
dWdoLiBJJ3ZlIGNoYW5nZWQKICAgICAgICAgdGhlIHRlcm1pbm9sb2d5IGEgYml0LiBGb3IgZXhh
bXBsZSwgSSBnb3QgdGlyZWQgb2YgcmVhZGluZyBCbGFjayBhbmQgaGF2aW5nIHRvIHJlbWluZCBt
eXNlbGYKICAgICAgICAgdGhhdCBpdCByZWFsbHkgbWVhbnMgdGhhdCB0aGUgb2JqZWN0IGhhcyBi
ZWd1biBiZWluZyB2aXNpdGVkLCBpbnN0ZWFkIG9mIHRoZSBtb3JlIHN0cmljdAogICAgICAgICBt
ZWFuaW5nIHRoYXQgaW1wbGllcyB0aGF0IGl0IGhhcyBhbHJlYWR5IGJlZW4gdmlzaXRlZC4gV2Ug
d2FudCB0byBzYXkgdGhhdCBpdCdzIEJsYWNrIG9yCiAgICAgICAgIGN1cnJlbnRseSBiZWluZyBz
Y2FubmVkLiBJJ20gZ29pbmcgdG8gYWRvcHQgU2llYmVydCdzIHRlcm0gZm9yIHRoaXM6IEFudGhy
YWNpdGUgWzFdLiBTbywgb3VyCiAgICAgICAgIGJsYWNrIENlbGxTdGF0ZSBpcyBub3cgY2FsbGVk
IEFudGhyYWNpdGVPckJsYWNrLgotICAgICAgICAKKwogICAgICAgICBbMV0gaHR0cHM6Ly9wZGZz
LnNlbWFudGljc2Nob2xhci5vcmcvN2FlNC82MzMyNjVhZWFkMWY4ODM1Y2Y3OTY2ZTE3OWQwMmMy
YzhhNGIucGRmCiAKICAgICAgICAgKiBoZWFwL0NlbGxTdGF0ZS5oOgpAQCAtNDU0NCwxMiArNDYw
OSwxMiBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYzMzM3CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCi0gICAgICAgIAorCiAgICAg
ICAgIEl0IHR1cm5zIG91dCB0aGF0IEhlYXBTbmFwc2hvdCB3YXMgbm90IGRvd24gd2l0aCByZXZp
c2l0aW5nLiBUaGUgY29uY3VycmVudCBHQyBpcyBnb2luZyB0byBiZQogICAgICAgICBidWlsdCBh
cm91bmQgdGhlIGlkZWEgdGhhdCB3ZSBjYW4gcmV2aXNpdCBvYmplY3RzIG1hbnkgdGltZXMuIFRo
aXMgbWVhbnMgdGhhdCBhbnkgYWN0aW9uIHRoYXQKICAgICAgICAgc2hvdWxkIG9ubHkgdGFrZSBw
bGFjZSBvbmNlIHBlciBvYmplY3QgbXVzdCBjaGVjayB0aGUgb2JqZWN0J3Mgc3RhdGUuIFRoaXMg
Zml4ZXMgdGhlIHNuYXBzaG90CiAgICAgICAgIGNvZGUgdG8gZG8gdGhpcy4KLSAgICAgICAgCisK
ICAgICAgICAgV2hpbGUgd3JpdGluZyB0aGlzIGNvZGUsIEkgcmVhbGl6ZWQgdGhhdCB3ZSdyZSBh
Y3R1YWxseSBkb2luZyB0aGlzIGNoZWNrIGluY29ycmVjdGx5LCBzbyBJCiAgICAgICAgIGZpbGVk
IGJ1ZyAxNjMzNDMuIFRoYXQgYnVnIHJlcXVpcmVzIGEgcmFjZSwgc28gd2UgYXJlbid0IGdvaW5n
IHRvIHNlZSBpdCB5ZXQuCiAKQEAgLTQ1ODAsNyArNDY0NSw3IEBACiAKICAgICAgICAgKEluamVj
dGVkU2NyaXB0LnByb3RvdHlwZS5fZGVzY3JpYmUpOgogICAgICAgICBQcm92aWRlIGEgZnJpZW5k
bGllciBuYW1lLCAiUHJveHkiIGluc3RlYWQgb2YgIlByb3h5T2JqZWN0Ii4KLSAgICAgICAgCisK
ICAgICAgICAgKEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCk6CiAgICAgICAgIFdoZW4gZ2Vu
ZXJhdGluZyBhIHByZXZpZXcgZm9yIGEgUHJveHkgb2JqZWN0LCBnZW5lcmF0ZSBpdCBmcm9tIHRo
ZSBmaW5hbCB0YXJnZXQKICAgICAgICAgYW5kIG1hcmsgaXQgYXMgbG9zc3kgc28gdGhhdCB0aGUg
b2JqZWN0IGNhbiBhbHdheXMgYmUgZXhwYW5kZWQgdG8gZ2V0IHRoZSBpbnRlcm5hbApAQCAtNDYx
OSw3ICs0Njg0LDcgQEAKICAgICAgICAgYW5kIHdlIGFzc2VydGVkIHRoYXQgaXQgbWF0Y2hlZCBh
IGJyZWFrcG9pbnQgbG9jYXRpb24gaWRlbnRpZmllZAogICAgICAgICBieSB0aGUgcGFyc2VyLiBU
aGlzIGNvdWxkIGdldCBvdXQgb2Ygc3luYywgb3Igbm9kZXMgY291bGQgZm9yZ2V0IHRvCiAgICAg
ICAgIGVtaXQgZGVidWcgaG9va3MgZXhwZWN0ZWQgYnkgdGhlIHBhcnNlci4KLSAgICAgICAgCisK
ICAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgd2UgYWx3YXlzIGNoZWNrIGFuZCBlbWl0IGEgZGVi
dWcgaG9vayBmb3IgYW55CiAgICAgICAgIG5vZGUuIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGZv
ciBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE5vZGUKICAgICAgICAgdG8gZW1pdCB0aGUgZGVidWcg
aG9vayB3aGVuIGVtaXR0aW5nIHRoZSBub2RlIGl0c2VsZi4gVGhpcyBjb3ZlcnMKQEAgLTQ3NjQs
NyArNDgyOSw3IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjMzMzQKIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KLSAgICAgICAgCisK
ICAgICAgICAgSSBndWVzcyB0aGF0IHRoZSBpZGVhIG9mIEpJVFdyaXRlQmFycmllciB3YXMgdG8g
bWFrZSBzdXJlIHRoYXQgaWYgeW91IHNsYXAgc29tZSBoZWFwIHBvaW50ZXIKICAgICAgICAgYml0
cyBpbnRvIG1hY2hpbmUgY29kZSwgdGhlbiB5b3UgYmV0dGVyIGV4ZWN1dGUgYSBiYXJyaWVyIG9u
IHRoZSBjb2RlIGJsb2NrLiBCdXQgaXQncyBhCiAgICAgICAgIGNvbXBsaWNhdGVkIHBpZWNlIG9m
IGNvZGUsIGFuZCBJIGNhbiBuZXZlciByZW1lbWJlciBob3cgaXQgcXVpdGUgd29ya3MuIFRoZXNl
IGRheXMgaXQgbG9va3MKQEAgLTQ3NzIsNyArNDgzNyw3IEBACiAgICAgICAgIG5vdCByZWFsbHkg
bmVjZXNzYXJ5IHRvIGhhdmUgc29tZXRoaW5nIGxpa2UgdGhpcywgc2luY2Ugb3VyIGNvbnZlbnRp
b24gaXMgdGhhdCBhbnkgcG9pbnRlcgogICAgICAgICBzdG9yZWQgaW4gbWFjaGluZSBjb2RlIG11
c3QgYWx3YXlzIGJlIHNoYWRvd2VkIGluIHRoZSBHQyBoZWFwLiBJIHRoaW5rIHRoYXQgY29udmVu
dGlvbiBoYXMKICAgICAgICAgd29uIGJ5IG92ZXJ3aGVsbWluZyBtYWpvcml0eSwgc28gd2Ugc2hv
dWxkIGZpbmFsbHkgcmVtb3ZlIEpJVFdyaXRlQmFycmllci4KLSAgICAgICAgCisKICAgICAgICAg
QSBwcmFjdGljYWwgb3V0Y29tZSBvZiB0aGlzIGNoYW5nZSBpcyB0aGF0IGl0IG1ha2VzIGl0IGVh
c2llciB0byBpbXBsZW1lbnQgRGlyZWN0Q2FsbCBJQ3MsCiAgICAgICAgIHdoaWNoIHdpbGwgaGF2
ZSB0byBzdG9yZSB0aGUgY2FsbGVlIGluIHRoZSBDYWxsTGlua0luZm8gYnV0IG5vdCBpbiB0aGUg
bWFjaGluZSBjb2RlLgogCkBAIC00ODIxLDMxICs0ODg2LDMxIEBACiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIzMDkKIAogICAgICAgICBSZXZpZXdl
ZCBieSBHZW9mZnJleSBHYXJlbi4KLSAgICAgICAgCisKICAgICAgICAgSXQgdXNlZCB0byBiZSB0
aGF0IHdlIHdvdWxkIGZvcmdldCB3aGljaCBvYmplY3RzIGFyZSBsaXZlIHRoZSBtb21lbnQgd2Ug
c3RhcnRlZCBjb2xsZWN0aW9uLgogICAgICAgICBUaGF0J3MgYmVjYXVzZSB0aGUgZmxpcCBhdCB0
aGUgYmVnaW5uaW5nIGNsZWFycyBhbGwgbWFyayBiaXRzLgotICAgICAgICAKKwogICAgICAgICBC
dXQgd2UgYWxyZWFkeSBoYXZlIGEgZmFjaWxpdHkgZm9yIHRyYWNraW5nIG9iamVjdHMgdGhhdCBh
cmUgbGl2ZS1idXQtbm90LW1hcmtlZC4gSXQncyBjYWxsZWQKICAgICAgICAgbmV3bHlBbGxvY2F0
ZWQuIFNvLCBpbnN0ZWFkIG9mIGNsZWFyaW5nIG1hcmsgYml0cywgd2Ugd2FudCB0byBqdXN0IHRy
YW5zZmVyIHRoZW0gdG8KICAgICAgICAgbmV3bHlBbGxvY2F0ZWQuIFRoZW4gd2Ugd2FudCB0byBj
bGVhciBhbGwgbmV3bHlBbGxvY2F0ZWQgYWZ0ZXIgR0MuCi0gICAgICAgIAorCiAgICAgICAgIFRo
aXMgaW1wbGVtZW50cyBzdWNoIGFuIGFwcHJvYWNoLCBhbG9uZyB3aXRoIGEgdmVyc2lvbmluZyBv
cHRpbWl6YXRpb24gZm9yIG5ld2x5QWxsb2NhdGVkLgogICAgICAgICBJbnN0ZWFkIG9mIHdhbGtp
bmcgdGhlIHdob2xlIGhlYXAgdG8gY2xlYXIgbmV3bHlBbGxvY2F0ZWQgYml0cyBhdCB0aGUgZW5k
IG9mIHRoZSBHQywgd2UgYnVtcAogICAgICAgICB0aGUgbmV3bHlBbGxvY2F0ZWRWZXJzaW9uLCB3
aGljaCBjYXVzZXMgTWFya2VkQmxvY2sgdG8gdHJlYXQgbmV3bHlBbGxvY2F0ZWQgYXMgaWYgaXQg
d2FzCiAgICAgICAgIGNsZWFyLgotICAgICAgICAKKwogICAgICAgICBXZSBjb3VsZCBoYXZlIGV2
ZW4gYXZvaWRlZCBhbGxvY2F0aW5nIG5ld2x5QWxsb2NhdGVkIGluIG1vc3QgY2FzZXMsIHNpbmNl
IGVtcGlyaWNhbGx5IG1vc3QKICAgICAgICAgYmxvY2tzIGFyZSBlaXRoZXIgY29tcGxldGVseSBl
bXB0eSBvciBjb21wbGV0ZWx5IGZ1bGwuIEFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIHBhdGNo
IGRpZAogICAgICAgICB0aGlzLCBidXQgaXQgd2FzIG5vdCBiZXR0ZXIgdGhhbiB0aGlzIHBhdGNo
LiBJbiBmYWN0LCBpdCBzZWVtZWQgdG8gYWN0dWFsbHkgYmUgd29yc2UgZm9yIFBMVAogICAgICAg
ICBhbmQgbWVtYnVzdGVyLgotICAgICAgICAKKwogICAgICAgICBUbyB2YWxpZGF0ZSB0aGlzIGNo
YW5nZSwgd2Ugbm93IHJ1biB0aGUgY29uc2VydmF0aXZlIHNjYW4gYWZ0ZXIgdGhlIGJlZ2luTWFy
a2luZyBmbGlwLiBBbmQgaXQKICAgICAgICAgdG90YWxseSB3b3JrcyEKLSAgICAgICAgCisKICAg
ICAgICAgVGhpcyBpcyBhIGh1Z2Ugc3RlcCB0b3dhcmRzIGNvbmN1cnJlbnQgR0MuIEl0IG1lYW5z
IHRoYXQgd2Ugb3VnaHQgdG8gYmUgYWJsZSB0byBydW4gdGhlCiAgICAgICAgIGFsbG9jYXRvciB3
aGlsZSBtYXJraW5nLiBTaW5jZSB3ZSBhbHJlYWR5IHNlcGFyYXRlbHkgbWFkZSBpdCBwb3NzaWJs
ZSB0byBydW4gdGhlIGJhcnJpZXIKICAgICAgICAgd2hpbGUgbWFya2luZywgdGhpcyBtZWFucyB0
aGF0IHdlJ3JlIHByZXR0eSBtdWNoIHJlYWR5IGZvciBzb21lIHNlcmlvdXMgY29uY3VycmVuY3kg
YWN0aW9uLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGFwcGVhcnMgdG8gYmUgcGVyZi1uZXV0
cmFsIGFuZCBzcGFjZS1uZXV0cmFsLgogCiAgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKQEAgLTUwMDIsNyArNTA2Nyw3IEBACiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDkKIAogICAgICAgICBSZXZp
ZXdlZCBieSBZdXN1a2UgU3V6dWtpLgotICAgICAgICAKKwogICAgICAgICBXZSBoYXZlIGEgbG90
IG9mIGRlZmVuc2VzIGFnYWluc3QgZW1pdHRpbmcgY29kZSB0aGF0IG1hdGVyaWFsaXplcyBodWdl
IGNvbnRhbnRzLiBCdXQgaWYgd2UgZG8KICAgICAgICAgZW5kIHVwIHdpdGggc3VjaCBjb2RlIGlu
IHRoZSBiYWNrZW5kLCBpdCdzIGJldHRlciB0byBjb252ZXJ0IHRob3NlIG1hdGVyaWFsaXphdGlv
bnMgaW50byBhZGQKICAgICAgICAgaW5zdHJ1Y3Rpb25zIGJ5IGNoZWNraW5nIGlmIG90aGVyIHJl
Z2lzdGVycyBhcmUga25vd24gdG8gY29udGFpbiBuZWFyYnkgY29uc3RhbnRzLiBUaGF0J3MKQEAg
LTUwMTcsMTIgKzUwODIsMTIgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzI2NAogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgotICAg
ICAgICAKKwogICAgICAgICBXaGVuIHdyaXRpbmcgdGhlIGxlYSBwYXRjaCAocjIwNzAzOSksIEkg
d2FzIHZlcnkgY2FyZWZ1bCBhYm91dCBob3cgSSBjb252ZXJ0IGEgU2hsIGludG8gYQogICAgICAg
ICBCYXNlSW5kZXggc2NhbGUuIEJ1dCBJIGZvcmdvdCB0byBjaGVjayBpZiB0aGUgb2xkZXIgY29k
ZSBmb3IgY3JlYXRpbmcgQmFzZUluZGV4ZXMgZm9yCiAgICAgICAgIGVmZmVjdGl2ZUFkZHIoKSBn
b3QgdGhpcyByaWdodC4gSXQgdHVybnMgb3V0IHRoYXQgdGhlIG9sZGVyIGNvZGUgbWlzc2VkIHRo
ZSA8PDMyIGNvcm5lcgogICAgICAgICBjYXNlLgotICAgICAgICAKKwogICAgICAgICBJdCdzIHNh
ZCB0aGF0IHRoZSB0d28gcGF0aHMgY2FuJ3Qgc2hhcmUgYWxsIG9mIHRoZWlyIGNvZGUsIGJ1dCBp
dCdzIHNvbWV3aGF0IGluZXZpdGFibGUgZHVlCiAgICAgICAgIHRvIGhvdyBtYXRjaGluZyBhbiBh
ZGRyZXNzIGFuZCBtYXRjaGluZyBhIGxlYSBoYXZlIHRvIGRvIHZlcnkgZGlmZmVyZW50IHRoaW5n
cy4gTWF0Y2hpbmcgYQogICAgICAgICBsZWEgbWVhbnMgY3JlYXRpbmcgYW4gaW5zdHJ1Y3Rpb24g
dGhhdCBpcyBkaXN0aW5jdCBmcm9tIG90aGVyIGluc3RydWN0aW9ucyB0byBkbyBtdWx0aXBsZQpA
QCAtNTAzMiw3ICs1MDk3LDcgQEAKICAgICAgICAgaGFzIHRvIGZpZ3VyZSBvdXQgQWRkKEB2YWx1
ZSwgJGNvbnN0KSBvbiBpdHMgb3duLiBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgc2l0dWF0aW9uIHNs
aWdodGx5CiAgICAgICAgIG1vcmUgc2FuZSBieSBhZGRpbmcgYSBzY2FsZUZvclNobCgpIGhlbHBl
ciB0aGF0IGhhbmRsZXMgdGhpcyB3ZWlyZCBjYXNlLiBJdCdzIGJhc2VkIG9uIHRoZQogICAgICAg
ICBuZXcgU2hsIGhhbmRsaW5nIGZyb20gcjIwNzAzOSwgYW5kIGV4cG9zZXMgaXQgYXMgYW4gQVBJ
IGZvciBlZmZlY3RpdmVBZGRyKCkgdG8gdXNlLgotICAgICAgICAKKwogICAgICAgICBUaGUgdGVz
dExvYWRCYXNlSW5kZXhTaGlmdDMyKCkgdXNlZCB0byBjcmFzaC4gSSBkb24ndCB0aGluayB0aGF0
IHRoaXMgY2FzZSBhZmZlY3RzIEpTCiAgICAgICAgIGNvbnRlbnQsIHNpbmNlIDw8MzIgaXMgc3Vj
aCBhIGJpemFycmUgb3V0bGllci4gSSBkb24ndCB0aGluayB3ZSBldmVuIGhhdmUgYSBwYXRoIGFs
b25nCiAgICAgICAgIHdoaWNoIHRoZSBGVEwgd291bGQgZW1pdCBhIDY0LWJpdCA8PDMyLiBJdCBw
cm9iYWJseSB3b24ndCBldmVuIGFmZmVjdCBXZWJBc3NlbWJseSBzaW5jZQpAQCAtNTA4Myw5ICs1
MTQ4LDkgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MzIzNAogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgotICAgICAgICAKKwog
ICAgICAgICBUaGlzIGFkZHMgY29tcHJlaGVuc2l2ZSBzdXBwb3J0IGZvciBlbWl0dGluZyBsZWEg
b24geDg2LgotICAgICAgICAKKwogICAgICAgICBXaGVuIGFkZGluZyB0aGlzLCBJIGZvdW5kIHRo
YXQgaXQgd2FzIHVzZWZ1bCB0byBhbHNvIGZpbmFsbHkgYWRkIG1vcmUgcmVhc3NvY2lhdGlvbi4g
VGhhdAogICAgICAgICByZWR1Y2VzIHRoZSBhbW91bnQgb2YgcGF0dGVybnMgdGhhdCB0aGUgaW5z
dHJ1Y3Rpb24gc2VsZWN0b3IgaGFzIHRvIGRlYWwgd2l0aC4KIApAQCAtNTIyNCwxMCArNTI4OSwx
MCBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
MTc1CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgotICAgICAgICAKKwogICAg
ICAgICBZb3UgY2FuIG5vdyBjYWxsIFByb2NlZHVyZTo6cGluUmVnaXN0ZXIoKSwgb3IgQ29kZTo6
cGluUmVnaXN0ZXIoKSwgYW5kIGl0IHdpbGwgbWFrZSB0aGlzCiAgICAgICAgIHJlZ2lzdGVyIGJl
aGF2ZSBhcyBmb2xsb3dzOgotICAgICAgICAKKwogICAgICAgICAtIEIzIGFuZCBBaXIgd2lsbCBl
bWl0IG5vIGNvZGUgdGhhdCBtb2RpZmllcyB0aGUgdmFsdWUgaW4gdGhpcyByZWdpc3RlciwgZXhj
ZXB0IGlmIHRoYXQKICAgICAgICAgICBoYXBwZW5zIHZpYSBhIFBhdGNocG9pbnQgb3Igc3RhY2tt
YXAgY29uc3RyYWludCAoaS5lLiB0aGUgdXNlciBleHBsaWNpdGx5IGFza2VkIGZvciBpdCkuCiAg
ICAgICAgIC0gQjMgYW5kIEFpciB3aWxsIGFsbG93IG90aGVycyB0byBtb2RpZnkgdGhlIHJlZ2lz
dGVyLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHJlZ2lzdGVyIGlzIG5vdApAQCAtNTIzOCwxNyArNTMw
MywxNyBAQAogICAgICAgICAgIGNoYW5naW5nKS4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlbnQgYmFj
ayB0byBoYXZpbmcgcGlubmVkIHRhZyByZWdpc3RlcnMsIHdlIHdvdWxkIHRlbGwgQjMKICAgICAg
ICAgICB0byB1c2UgdGhlbSBieSAoMSkgZXhjbHVkaW5nIHRoZW0gZnJvbSBhbnkgY2xvYmJlciBz
ZXQgKGVhc3ksIHNpbmNlIHRoZXkncmUgY2FsbGVlIHNhdmUpCiAgICAgICAgICAgYW5kICgyKSBl
bWl0dGluZyBBcmd1bWVudFJlZyB0byBncmFiIHRoZWlyIHZhbHVlLiBUaGVyZSdzIGEgdGVzdCB0
aGF0IGRvZXMgdGhpcy4KLSAgICAgICAgCi0gICAgICAgIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5
IHRha2luZyByZWdzSW5Qcmlvcml0eU9yZGVyKCkgYW5kIG1ha2luZyBpdCBhIG1ldGhvZCBvZiBD
b2RlLiBBaXIgCisKKyAgICAgICAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkgdGFraW5nIHJlZ3NJ
blByaW9yaXR5T3JkZXIoKSBhbmQgbWFraW5nIGl0IGEgbWV0aG9kIG9mIENvZGUuIEFpcgogICAg
ICAgICBhbHJlYWR5IHVzZWQgdGhpcyBBUEkgd2hlbiBjaG9vc2luZyByZWdpc3RlcnMgaW4gcmVn
aXN0ZXIgYWxsb2NhdGlvbi4gQ29kZSBub3cgYWxzbyB2ZW5kcyBhCiAgICAgICAgIG11dGFibGVS
ZWdzKCkgc2V0LCB3aGljaCBpcyBkZXJpdmVkIGZyb20gcmVnc0luUHJpb3JpdHlPcmRlcigpLCB0
aGF0IGNhbiBxdWlja2x5IHRlbGwgeW91IGlmCiAgICAgICAgIGEgcmVnaXN0ZXIgY2FuIGJlIG11
dGF0ZWQuIERvaW5nIGl0IHRoaXMgd2F5IG1lYW5zIHRoYXQgbW9zdCBvZiB0aGlzIGlzIGEgcHVy
ZWx5IG1lY2hhbmljYWwKICAgICAgICAgY2hhbmdlLiBUaGUgY2FsbHMgdG8gbXV0YWJsZVJlZ3Mo
KSBhcmUgdGhlIHBsYWNlcyB3aGVyZSB3ZSBoYWQgdG8gY2hhbmdlIGxvZ2ljOgotICAgICAgICAK
KwogICAgICAgICAtIFRoZSByZWdpc3RlciBhbGxvY2F0b3JzIG5lZWRzIHRvIGtub3cgdGhhdCBj
b2FsZXNjaW5nIHdpdGggYSBwcmVjb2xvcmVkIHBpbm5lZCB0bXAgaXMgZnJlZS4KICAgICAgICAg
LSBUaGUgY2FsbGVlLXNhdmUgaGFuZGxlciBuZWVkcyB0byBrbm93IHRoYXQgd2UncmUgbm90IHN1
cHBvc2VkIHRvIHNhdmUvcmVzdG9yZSBwaW5uZWQKICAgICAgICAgICByZWdpc3RlcnMuCi0gICAg
ICAgIAorCiAgICAgICAgIE5vdGUgdGhhdCBpbiB0aGlzIHNjaGVtZSwgcGlubmVkIHJlZ2lzdGVy
cyBhcmUgc2ltcGx5IHJlZ2lzdGVycyB0aGF0IGRvIG5vdCBhcHBlYXIgaW4KICAgICAgICAgcmVn
c0luUHJpb3JpdHlPcmRlcigpLiBUaGlzIG1lYW5zLCBmb3IgZXhhbXBsZSwgdGhhdCB3ZSB3aWxs
IG5vdyBzYXkgdGhhdCBGUCBpcyBwaW5uZWQuIFNvLAogICAgICAgICB0aGlzIG1lYW5zIHRoYXQg
eW91IGNhbiBhbHNvIHBpbiByZWdpc3RlcnMgYnkgY2FsbGluZyBzZXRSZWdzSW5Qcmlvcml0eU9y
ZGVyKCkgYW5kIHBhc3NpbmcgYQpAQCAtNTMwMyw3ICs1MzY4LDcgQEAKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzE3MgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlaXRoIE1pbGxlci4KLSAgICAgICAgCisKICAgICAgICAgSWYgd2UgaGF2ZSBtdXRh
YmxlIHBpbm5lZCByZWdpc3RlcnMgdGhlbiB3ZSBuZWVkIHRvIGtub3cgd2hpY2ggb3BlcmF0aW9u
cyBtdXRhdGUgdGhlbS4gQXQKICAgICAgICAgZmlyc3QgSSBjb25zaWRlcmVkIG1ha2luZyB0aGlz
IGludG8gYSBoZWFwIHJhbmdlIHRoaW5nLCBidXQgSSB0aGluayB0aGF0IHRoaXMgd291bGQgYmUg
dmVyeQogICAgICAgICBjb25mdXNpbmcuIEFsc28sIGluIHRoZSBmdXR1cmUsIHdlIG1pZ2h0IHdh
bnQgdG8gbWFrZSBFZmZlY3RzIHRyYWNrIHJlZ2lzdGVyIHNldHMgb2YKQEAgLTYzMDQsNyArNjM2
OSw3IEBACiAgICAgICAgIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0gd2l0aCBOT1BzIHRvIHByb3Zp
ZGUgc3BhY2UgZm9yIGEganVtcC4gIFRoaXMgY2hhbmdlcwogICAgICAgICBBaXI6OmdlbmVyYXRl
KCkgdG8gdXNlIGxhYmVsSWdub3JpbmdXYXRjaHBvaW50cygpIHRvIGNyZWF0ZSBwY1RvT3JpZ2lu
TWFwCiAgICAgICAgIGVudHJpZXMgdG8gZWxpbWluYXRlIHVubmVjY2VzYXJ5IE5PUHMuCi0gICAg
ICAgIAorCiAgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRlLmNwcDoKICAgICAgICAgKEpTQzo6
QjM6OkFpcjo6Z2VuZXJhdGUpOgogICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CkBAIC02MzM4LDcg
KzY0MDMsNyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyODQ1CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCi0gICAgICAg
IAorCiAgICAgICAgIFdoaWxlIHdyaXRpbmcgc29tZSBkb2N1bWVudGF0aW9uLCBJIGZvdW5kIHNv
bWUgc21hbGwgaG9sZXMgaW4gdGhlIGNvZGUuCiAKICAgICAgICAgKiBiMy9CM0VmZmVjdHMuY3Bw
OgpAQCAtNjQzNyw3ICs2NTAyLDcgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2Mjg0MgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3Rl
aW4uCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gaGFzIGJlY29tZSBkZWFkIGNv
ZGUuIFRoaXMgY2hhbmdlIHJlbW92ZXMgaXQuCiAKICAgICAgICAgKiBoZWFwL0NlbGxDb250YWlu
ZXIuaDoKQEAgLTY0OTIsMTYgKzY1NTcsMTYgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjY4OQogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGFkZHMgYSB0cmFwcyBmbGFnIHRv
IEIzOjpLaW5kLiBJdCBhbHNvIG1ha2VzIEIzOjpLaW5kIHdvcmsgbW9yZSBsaWtlIEFpcjo6S2lu
ZCwgaW4gdGhlCiAgICAgICAgIHNlbnNlIHRoYXQgaXQncyBhIGJhZyBvZiBkaXN0aW5jdCBiaXRz
IC0gaXQgZG9lc24ndCBuZWVkIHRvIGJlIGEgdW5pb24gdW5sZXNzIHdlIGdldCBlbm91Z2gKICAg
ICAgICAgdGhpbmdzIHRoYXQgaXQgd291bGQgbWFrZSBhIGRpZmZlcmVuY2UuCi0gICAgICAgIAor
CiAgICAgICAgIFRoZSBvbmx5IGFuYWx5c2lzIHRoYXQgbmVlZHMgdG8ga25vdyBhYm91dCB0cmFw
cyBpcyBlZmZlY3RzLiBJdCBub3cga25vd3MgdGhhdCB0cmFwcyBpbXBsaWVzCiAgICAgICAgIHNp
ZGVFeGl0cywgd2hpY2ggbWVhbnMgdGhhdCB0aGlzIHR1cm5zIG9mZiBEQ0UuIFRoZSBvbmx5IG9w
dGltaXphdGlvbiB0aGF0IG5lZWRzIHRvIGtub3cKICAgICAgICAgYWJvdXQgdHJhcHMgaXMgZWxp
bWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMoKSwgd2hpY2ggbmVlZHMgdG8gcGVzc2ltaXplIGl0
cyBzdG9yZQogICAgICAgICBlbGltaW5hdGlvbiBpZiB0aGUgc3RvcmUgdHJhcHMuCi0gICAgICAg
IAorCiAgICAgICAgIFRoZSBoYXJkIHBhcnQgb2YgdGhpcyBjaGFuZ2UgaXMgdGVhY2hpbmcgdGhl
IGluc3RydWN0aW9uIHNlbGVjdG9yIHRvIGZhaXRoZnVsbHkgY2FycnkgdGhlCiAgICAgICAgIHRy
YXBzIGZsYWcgZG93biB0byBBaXIuIEkgZ290IHRoaXMgdG8gd29yayBieSBtYWtpbmcgQXJnUHJv
bWlzZSBhIG5vbi1jb3B5YWJsZSBvYmplY3QgdGhhdAogICAgICAgICBrbm93cyB3aGV0aGVyIHlv
dSd2ZSB1c2VkIGl0IGluIGFuIGluc3RydWN0aW9uLiBJdCBrbm93cyB3aGVuIHlvdSBjYWxsIGNv
bnN1bWUoKS4gSWYgeW91IGRvCkBAIC02NTA5LDEwICs2NTc0LDEwIEBACiAgICAgICAgIGFsb25n
IHdpdGggYSBmZXcgb3RoZXIgaGFja3MsIG1lYW5zIHRoYXQgYWxsIG9mIHRoZSBsb2FkLW9wIGFu
ZCBsb2FkLW9wLXN0b3JlIGZ1c2lvbnMKICAgICAgICAgY29ycmVjdGx5IGNhcnJ5IHRoZSB0cmFw
IGJpdDogaWYgYW55IG9mIHRoZSBCMyBsb2FkcyBvciBzdG9yZXMgaW52b2x2ZWQgdHJhcHMgdGhl
biB5b3UgZ2V0CiAgICAgICAgIHRyYXBzIGluIEFpci4KLSAgICAgICAgCisKICAgICAgICAgVGhp
cyBmcmFtZXdvcmsgYWxzbyBzZXRzIHVzIHVwIHRvIGRvIGJ1ZyAxNjI2ODgsIHNpbmNlIHRoZSBB
cmdQcm9taXNlOjppbnN0KCkgaG9vayBpcwogICAgICAgICBwb3dlcmZ1bCBlbm91Z2ggdG8gYWxs
b3cgd3JhcHBpbmcgdGhlIGluc3RydWN0aW9uIHdpdGggYSBQYXRjaC4KLSAgICAgICAgCisKICAg
ICAgICAgSSBhZGRlZCBzb21lIHRlc3RzIHRvIHRlc3RiMyB0aGF0IHZlcmlmeSB0aGF0IG9wdGlt
aXphdGlvbnMgYXJlIGFwcHJvcHJpYXRlbHkgaW5oaWJpdGVkIGFuZAogICAgICAgICB0aGF0IHRo
ZSB0cmFwcyBmbGFnIHN1cnZpdmVzIHVudGlsIHRoZSBiaXR0ZXIgZW5kIG9mIEFpci4KIApAQCAt
NjU4MywyNiArNjY0OCwyNiBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyNzY0CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCi0g
ICAgICAgIAorCiAgICAgICAgIFRoZXJlIGFyZSBzb21lIGludGVyZXN0aW5nIGNhc2VzIHdoZXJl
IHdlIGNhbiByZWR1Y2UgdGhlIG51bWJlciBvZiBjb25zdGFudCBtYXRlcmlhbGl6YXRpb25zIGlm
CiAgICAgICAgIHdlIHRlYWNoIG1vdmVDb25zdGFudHMoKSBob3cgdG8gZWRpdCBjb2RlLiBUaGUg
dHdvIGV4YW1wbGVzIHRoYXQgdGhpcyBwYXRjaCBzdXBwb3J0cyBhcmU6Ci0gICAgICAgIAorCiAg
ICAgICAgICAgICAtIExvYWRzIGFuZCBzdG9yZXMgZnJvbSBhIGNvbnN0YW50IHBvaW50ZXIuIFNp
bmNlIGxvYWRzIGFuZCBzdG9yZXMgZ2V0IGFuIG9mZnNldCBmb3IgZnJlZQogICAgICAgICAgICAg
ICBhbmQgdGhlIGluc3RydWN0aW9uIHNlbGVjdG9yIGlzIHJlYWxseSBnb29kIGF0IGhhbmRsaW5n
IGl0LCBhbmQgc2luY2Ugd2UgY2FuIHF1ZXJ5IEFpciB0bwogICAgICAgICAgICAgICBzZWUgd2hh
dCBraW5kcyBvZiBvZmZzZXRzIGFyZSBsZWdhbCwgd2UgY2FuIHNvbWV0aW1lcyBhdm9pZCB1c2lu
ZyBhIGNvbnN0YW50IHBvaW50ZXIgdGhhdAogICAgICAgICAgICAgICBpcyBzcGVjaWZpYyB0byB0
aGUgYWJzb2x1dGUgYWRkcmVzcyBvZiB0aGF0IGxvYWQgYW5kIGluc3RlYWQgcGljayBzb21lIG90
aGVyIGNvbnN0YW50CiAgICAgICAgICAgICAgIHRoYXQgaXMgd2l0aGluIG9mZnNldCBkaXN0YW5j
ZSBvZiBvdXJzLgotICAgICAgICAgICAgCisKICAgICAgICAgICAgIC0gQWRkIGFuZCBTdWIgYnkg
YSBjb25zdGFudCAoeCArIGMsIHggLSBjKS4gU2luY2UgeCArIGMgPSB4IC0gLWMgYW5kIHggLSBj
ID0geCArIC1jLCB3ZSBjYW4KICAgICAgICAgICAgICAgZmxpcCBBZGQgdG8gU3ViIG9yIHZpY2Ug
dmVyc2EgaWYgdGhlIG5lZ2F0ZWQgY29uc3RhbnQgaXMgYXZhaWxhYmxlLgotICAgICAgICAKKwog
ICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyBtb3ZlQ29uc3RhbnRzKCkgcGljayB0aGUgbW9zdCBk
b21pbmFudCBjb25zdGFudCB0aGF0IHdvcmtzIGZvciBhbiB2YWx1ZS4gSW4KICAgICAgICAgdGhl
IGNhc2Ugb2YgbWVtb3J5IGFjY2Vzc2VzLCBpdCB1c2VzIEFpcjo6QXJnOjppc1ZhbGlkQWRkckZv
cm0oKSB0byB3b3JrIG91dCB3aGF0IG90aGVyCiAgICAgICAgIGNvbnN0YW50cyB3b3VsZCB3b3Jr
LiBJbiB0aGUgY2FzZSBvZiBBZGQvU3ViLCBpdCBzaW1wbHkgbG9va3MgZm9yIHRoZSBuZWdhdGVk
IGNvbnN0YW50LiBUaGlzCiAgICAgICAgIHNob3VsZCByZXN1bHQgaW4gc29tZXRoaW5nIGxpa2Ug
YSBtaW5pbWFsIG51bWJlciBvZiBjb25zdGFudHMgc2luY2UgdGhlc2UgcnVsZXMgYWx3YXlzIHBp
Y2sgdGhlCiAgICAgICAgIG1vc3QgZG9taW5hbnQgY29uc3RhbnQgdGhhdCB3b3JrcyAtIHNvIGlm
IGFuIEFkZCdzIGNvbnN0YW50IGlzIGFscmVhZHkgbW9zdCBkb21pbmFudCB0aGVuCiAgICAgICAg
IG5vdGhpbmcgY2hhbmdlcywgYnV0IGlmIHRoZSBuZWdhdGVkIG9uZSBpcyBtb3JlIGRvbWluYW50
IHRoZW4gaXQgYmVjb21lcyBhIFN1Yi4KLSAgICAgICAgCisKICAgICAgICAgVGhpcyBpcyBhIDAu
NSUgc3BlZWQtdXAgb24gTG9uZ1NwaWRlciBhbmQgbmV1dHJhbCBlbHNld2hlcmUuIEl0J3MgYSBz
cGVlZC11cCBiZWNhdXNlIHRoZQogICAgICAgICBhYnNvbHV0ZSBhZGRyZXNzIHRoaW5nIHJlZHVj
ZXMgdGhlIG51bWJlciBvZiBhZGRyZXNzIG1hdGVyaWFsaXphdGlvbnMgdGhhdCB3ZSBoYXZlIHRv
IGRvLCB3aGlsZQogICAgICAgICB0aGUgYWRkL3N1YiB0aGluZyBwcmV2ZW50cyB1cyBmcm9tIGhh
dmluZyB0byBtYXRlcmlhbGl6ZSAweDEwMDAwMDAwMDAwMDAgdG8gYm94IGRvdWJsZXMuCkBAIC02
ODk4LDE3ICs2OTYzLDE3IEBACiAgICAgICAgIEVuc3VyZSB0aGF0IG9uY2Ugd2UgaGF2ZSB0aGUg
U2NyaXB0IHRoYXQgd2UgYWx3YXlzCiAgICAgICAgIHJlc29sdmUgdGhlIGJyZWFrcG9pbnQgbG9j
YXRpb24gYmVmb3JlIHNldHRpbmcgdGhlCiAgICAgICAgIGJyZWFrcG9pbnQuIFRoZSBkaWZmZXJl
bnQgcGF0aHMgYXJlOgotICAgICAgICAKKwogICAgICAgICAtIHNldEJyZWFrcG9pbnQoc2NyaXB0
SWQsIGxvY2F0aW9uKQogICAgICAgICAgIC0gSGVyZSB3ZSBrbm93IHRoZSBTb3VyY2VQcm92aWRl
ciBieSBpdHMgU291cmNlSUQKICAgICAgICAgICAgIC0gcmVzb2x2ZSBhbmQgc2V0Ci0gICAgICAg
IAorCiAgICAgICAgIC0gc2V0QnJlYWtwb2ludEJ5VVJMKHVybCwgbG9jYXRpb24pCiAgICAgICAg
ICAgLSBTZWFyY2ggZm9yIGV4aXN0aW5nIFNjcmlwdHMgdGhhdCBtYXRjaCB0aGUgVVJMCiAgICAg
ICAgICAgICAtIHJlc29sdmUgaW4gZWFjaCBhbmQgc2V0CiAgICAgICAgICAgLSBXaGVuIG5ldyBT
Y3JpcHRzIGFyZSBwYXJzZWQgdGhhdCBtYXRjaCB0aGUgVVJMCiAgICAgICAgICAgICAtIHJlc29s
dmUgYW5kIHNldAotICAgICAgICAgICAgCisKIAogMjAxNi0wOS0zMCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCkBAIC03MDQ3LDcgKzcxMTIsNyBAQAogICAgICAgICAo
SlNDOjpEZWJ1Z2dlcjo6c3RlcEludG9TdGF0ZW1lbnQpOgogICAgICAgICAoSlNDOjpEZWJ1Z2dl
cjo6ZXhjZXB0aW9uKToKICAgICAgICAgKEpTQzo6RGVidWdnZXI6OmRpZFJlYWNoQnJlYWtwb2lu
dCk6Ci0gICAgICAgIAorCiAgICAgICAgIFVzZSBuZXcgdmFyaWFibGUgbmFtZXMsIGFuZCBjbGFy
aWZ5IGlmIHdlIHNob3VsZCBhdHRlbXB0CiAgICAgICAgIHRvIHBhdXNlIG9yIG5vdC4KIApAQCAt
NzA1OSw3ICs3MTI0LDcgQEAKICAgICAgICAgKEpTQzo6RGVidWdnZXI6OnVwZGF0ZUNhbGxGcmFt
ZUludGVybmFsKToKICAgICAgICAgKEpTQzo6RGVidWdnZXI6OnBhdXNlSWZOZWVkZWQpOgogICAg
ICAgICBBbGxvdyB1cGRhdGVDYWxsRnJhbWUgdG8gZWl0aGVyIGF0dGVtcHQgYSBwYXVzZSBvciBu
b3QuCi0gICAgICAgIAorCiAgICAgICAgIChKU0M6OkRlYnVnZ2VyOjphdFN0YXRlbWVudCk6CiAg
ICAgICAgIEF0dGVtcHQgcGF1c2UgYW5kIHJlc2V0IHRoZSBhdCBmaXJzdCBleHByZXNzaW9uIGZs
YWcuCiAKQEAgLTcwNzUsNyArNzE0MCw3IEBACiAgICAgICAgIEF0dGVtcHQgcGF1c2Ugd2hlbiBs
ZWF2aW5nIGEgZnVuY3Rpb24uCiAgICAgICAgIElmIHRoZSB1c2VyIGRpZCBhIHN0ZXAtb3ZlciBh
bmQgaXMgbGVhdmluZyB0aGUKICAgICAgICAgZnVuY3Rpb24sIHRoZW4gYmVoYXZlIGxpa2Ugc3Rl
cC1vdXQuCi0gICAgICAgIAorCiAgICAgICAgIChKU0M6OkRlYnVnZ2VyOjp1bndpbmRFdmVudCk6
CiAgICAgICAgIEJlaGF2ZSBsaWtlIHJldHVybiBleGNlcHQgZG9uJ3QgY2hhbmdlIGFueQogICAg
ICAgICBwYXVzaW5nIHN0YXRlcy4gSWYgd2UgbmVlZGVkIHRvIHBhdXNlIHRoZQpAQCAtNzA5NCw3
ICs3MTU5LDcgQEAKICAgICAgICAgV2hlbiB0aGUgcHJvZ3JhbSBkb2Vzbid0IGhhdmUgYSBwYXJl
bnQsIGNsZWFyIGFsbAogICAgICAgICBvdXIgc3RhdGUgc28gd2UgZG9uJ3QgZXJyYW50bHkgcGF1
c2Ugb24gdGhlIG5leHQKICAgICAgICAgSmF2YVNjcmlwdCBtaWNyb3Rhc2sgdGhhdCBnZXRzIGV4
ZWN1dGVkLgotICAgICAgICAKKwogICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y2xlYXJOZXh0UGF1
c2VTdGF0ZSk6CiAgICAgICAgIEhlbHBlciB0byBjbGVhciBhbGwgb2YgdGhlIHBhdXNlIHN0YXRl
cyBub3cgdGhhdAogICAgICAgICBpdCBoYXBwZW5zIGluIGEgY291cGxlIHBsYWNlcy4KQEAgLTcx
NzcsMTQgKzcyNDIsMTQgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjY5OQogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgotICAgICAg
ICAKKwogICAgICAgICBUaGlzIGZvbGxvd3MgYSBzaW1pbGFyIGNoYW5nZSBpbiBCMyAocjIwNjU5
NSkgYW5kIHJlcGxhY2VzIEFpcjo6T3Bjb2RlIHdpdGggQWlyOjpLaW5kLAogICAgICAgICB3aGlj
aCBob2xkcyBvbnRvIHRoZSBvcGNvZGUgYW5kIHNvbWUgYWRkaXRpb25hbCBmbGFncy4gQmVjYXVz
ZSBBaXIgaXMgYW4gb3J0aG9nb25hbCBJU0EKICAgICAgICAgKHRoZSBvcGNvZGUgdGVsbHMgeW91
IHdoYXQgdGhlIG9wZXJhdGlvbiBkb2VzIGJ1dCBlYWNoIG9wZXJhbmQgaXMgYWxsb3dlZCB0byBh
bHNvIGNvbnRhaW4KICAgICAgICAgZWZmZWN0aXZlbHkgaW5zdHJ1Y3Rpb25zIGZvciB3aGF0IHRv
IGRvIHRvIHJlYWQgb3Igd3JpdGUgdGhhdCBvcGVyYW5kKSwgdGhlIGZsYWdzIGFyZQogICAgICAg
ICBtZWFudCB0byBiZSBvcnRob2dvbmFsIHRvIG9wY29kZS4gVGhpcyBhbGxvd3MgdXMgdG8gc2F5
IHRoaW5ncyBsaWtlIEFkZDMyPFRyYXA+LCB3aGljaAogICAgICAgICBtYWtlcyBzZW5zZSBpZiBh
bnkgb2YgdGhlIG9wZXJhbmRzIHRvIHRoZSBBZGQzMiBhcmUgYWRkcmVzc2VzLgotICAgICAgICAK
KwogICAgICAgICBUbyBkZW1vbnN0cmF0ZSB0aGUgZmxhZ3MgZmFjaWxpdHkgdGhpcyBwYXJ0bHkg
YWRkcyBhIHRyYXAgZmxhZyB0byBBaXIuIEIzIGRvZXNuJ3QgdXNlIGl0CiAgICAgICAgIHlldCwg
YnV0IEkgbWFkZSBzdXJlIHRoYXQgQWlyIHJlc3BlY3RzIGl0LiBCYXNpY2FsbHkgdGhhdCBtZWFu
cyBibG9ja2luZyBEQ0Ugd2hlbiB0aGUgZmxhZwogICAgICAgICBpcyBzZXQsIGJ5IG1ha2luZyBp
dCBpbXBseSBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cy4KQEAgLTcyNjgsMTAgKzczMzMsMTAg
QEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjcy
MQogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KLSAgICAgICAgCisKICAgICAg
ICAgVGhlIHB1dF9ieV9pZC1pbi1wdXRfYnlfdmFsIG9wdGltaXphdGlvbiBoYWQgdGhlIHdyaXRl
IGJhcnJpZXIgaW4gdGhlIHdyb25nIHBsYWNlIGFuZAogICAgICAgICBpbmNvcnJlY3RseSBmaWx0
ZXJlZCBvbiB2YWx1ZSBpbnN0ZWFkIG9mIGJhc2UuCi0gICAgICAgIAorCiAgICAgICAgIE5vIHJl
ZHVjZWQgdGVzdCBjYXNlLiBZb3UgcmVhbGx5IG5lZWQgdG8gcnVuIERyb21hZW8vanNsaWIgdG8g
Y2F0Y2ggaXQuIEkgbG92ZSBEcm9tYWVvJ3MKICAgICAgICAgYWJpbGl0eSB0byBjYXRjaCBHQyBi
dWdzLgogCkBAIC03MzI0LDQyICs3Mzg5LDQyIEBACiAgICAgICAgIE9wY29kZSB3YXMgaG93IHlv
dSBrbmV3IHdoYXQgc3ViY2xhc3Mgb2YgVmFsdWUgeW91IGhhZC4gVGhlIG9wY29kZSB0b2xkIHlv
dSB3aGF0IHRoZSBWYWx1ZQogICAgICAgICBhY3R1YWxseSBkaWQuIFRoaXMgY2hhbmdlIHJlcGxh
Y2VzIE9wY29kZSB3aXRoIEtpbmQsIHdoaWNoIGlzIGEgdHVwbGUgb2Ygb3Bjb2RlIGFuZCBvdGhl
cgogICAgICAgICBzdHVmZi4KLSAgICAgICAgCisKICAgICAgICAgT3Bjb2RlcyBhcmUgZ3JlYXQs
IGFuZCB0aGF0J3MgaG93IG1vc3QgY29tcGlsZXJzIHdvcmsuIEJ1dCBvcGNvZGVzIGFyZSBvbmUt
ZGltZW5zaW9uYWwuIEhlcmUKICAgICAgICAgaXMgaG93IHRoaXMgbWFuaWZlc3RzLiBTYXkgeW91
IGhhdmUgYW4gb3Bjb2RlLCBsaWtlIExvYWQuIFlvdSB3aWxsIGJlIGhhcHB5IGlmIHlvdXIgSVIg
aGFzCiAgICAgICAgIG9uZSBMb2FkIG9wY29kZS4gQnV0IHRoZW4sIHlvdSBtaWdodCBhZGQgTG9h
ZDhTL0xvYWQ4Wi9Mb2FkMTZTL0xvYWQxNlogb3Bjb2RlcywgYXMgd2UgaGF2ZQogICAgICAgICBk
b25lIGluIEIzLiBCMyBoYXMgb25lIGRpbWVuc2lvbiBvZiBMb2FkIG9wY29kZXMsIHdoaWNoIGRl
dGVybWluZXMgc29tZXRoaW5nIGxpa2UgdGhlIEMgdHlwZQogICAgICAgICBvZiB0aGUgbG9hZC4g
QnV0IGluIHRoZSB2ZXJ5IG5lYXIgZnV0dXJlLCB3ZSB3aWxsIHdhbnQgdG8gYWRkIHR3byBtb3Jl
IGRpbWVuc2lvbnMgdG8gTG9hZHM6Ci0gICAgICAgIAorCiAgICAgICAgIC0gQSBmbGFnIHRvIHNh
eSBpZiB0aGUgbG9hZCB0cmFwcy4KICAgICAgICAgLSBBIGZsYWcgdG8gc2F5IGlmIHRoZSBsb2Fk
IGhhcyBhY3F1aXJlIHNlbWFudGljcy4KLSAgICAgICAgCisKICAgICAgICAgTWFwcGluZyB0aGVz
ZSB0aHJlZSBkaW1lbnNpb25zICh0eXBlLCB0cmFwLCBhY3F1aXJlKSBvbnRvIHRoZSBvbmUtZGlt
ZW5zaW9uYWwgT3Bjb2RlIHNwYWNlCiAgICAgICAgIHdvdWxkIGNyZWF0ZSBtYXloYW06IExvYWQ4
UywgTG9hZDhTVHJhcCwgTG9hZDhTQWNxdWlyZSwgTG9hZDhTVHJhcEFjcXVpcmUsIExvYWQ4WiwK
ICAgICAgICAgTG9hZDhaVHJhcCwgZXRjLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGhhcHBl
bnMgaW4gb3RoZXIgcGFydHMgb2YgdGhlIElSLiBGb3IgZXhhbXBsZSwgd2UgaGF2ZSBhIGRpbWVu
c2lvbiBvZiBhcml0aG1ldGljCiAgICAgICAgIG9wZXJhdGlvbnM6IGFkZCwgc3ViLCBtdWwsIGRp
diwgbW9kLCBldGMuIFRoZW4gd2UgaGF2ZSB0aGUgY2hpbGwgZmxhZy4gQnV0IHNpbmNlIG9wY29k
ZXMKICAgICAgICAgYXJlIG9uZS1kaW1lbnNpb25hbCwgdGhhdCBtZWFucyBoYXZpbmcgQ2hpbGxE
aXYgYW5kIENoaWxsTW9kLCBhbmQgdG9ucyBvZiBwbGFjZXMgaW4gdGhlCiAgICAgICAgIGNvbXBp
bGVyIHRoYXQgY2FzZSBvbiBib3RoIERpdiBhbmQgQ2hpbGxEaXYsIG9yIGNhc2Ugb24gYm90aCBN
b2QgYW5kIENoaWxsTW9kLCBzaW5jZSB0aGV5CiAgICAgICAgIGFyZSBvbmx5IGludGVyZXN0ZWQg
aW4gdGhlIGtpbmQgb2YgYXJpdGhtZXRpYyBiZWluZyBkb25lIGFuZCBub3QgdGhlIGNoaWxsbmVz
cy4KLSAgICAgICAgCisKICAgICAgICAgVGhvdWdoIHRoZSBleGFtcGxlcyBhbGwgaW52b2x2ZSBi
aXRzIChjaGlsbCBvciBub3QsIHRyYXBwaW5nIG9yIG5vdCwgZXRjKSwgSSBjYW4gaW1hZ2luZQog
ICAgICAgICBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgYmVoYXZlIG1vcmUgbGlrZSBzbWFsbCBlbnVt
cywgbGlrZSBpZiB3ZSBmaWxsIG91dCBtb3JlIG1lbW9yeSBvcmRlcmluZwogICAgICAgICBtb2Rl
cyBvdGhlciB0aGFuIGp1c3QgImFjcXVpcmU/IHllcy9ubyIuIFRoZXJlIHdpbGwgZXZlbnR1YWxs
eSBoYXZlIHRvIGJlIHNvbWV0aGluZyBsaWtlIGEKICAgICAgICAgc3RkOjptZW1vcnlfb3JkZXIg
YXNzb2NpYXRlZCB3aXRoIG1lbW9yeSBhY2Nlc3Nlcy4KLSAgICAgICAgCisKICAgICAgICAgT25l
IGFwcHJvYWNoIHRvIHRoaXMgcHJvYmxlbSBpcyB0byBoYXZlIGEgVmFsdWUgc3ViY2xhc3MgdGhh
dCBjb250YWlucyBmaWVsZHMgd2l0aCB0aGUgbWV0YQogICAgICAgICBkYXRhLiBJIGRvbid0IGxp
a2UgdGhpcyBmb3IgdHdvIHJlYXNvbnM6Ci0gICAgICAgIAorCiAgICAgICAgIC0gSW4gYnVnIDE2
MjY4OCwgSSB3YW50IHRvIG1ha2UgdHJhcHBpbmcgbWVtb3J5IGFjY2Vzc2VzIGhhdmUgc3RhY2tt
YXBzLiBUaGlzIG1lYW5zIHRoYXQgYQogICAgICAgICAgIHRyYXBwaW5nIG1lbW9yeSBhY2Nlc3Mg
d291bGQgaGF2ZSBhIGRpZmZlcmVudCBWYWx1ZSBzdWJjbGFzcyB0aGFuIGEgbm9uLXRyYXBwaW5n
IG1lbW9yeQogICAgICAgICAgIGFjY2Vzcy4gU28sIHRoaXMgbWV0YS1kYXRhIG5lZWRzIHRvIGNo
YW5uZWwgaW50byBWYWx1ZVR5cGU6OmFjY2VwdHMoKS4gQ3VycmVudGx5IHRoYXQKICAgICAgICAg
ICB0YWtlcyBPcGNvZGUgYW5kIG5vdGhpbmcgZWxzZS4KLSAgICAgICAgCisKICAgICAgICAgLSBD
b21waWxlciBJUnMgYXJlIGFsbCBhYm91dCBtYWtpbmcgY29tbW9uIHRhc2tzIGVhc3kuIElmIGl0
IGJlY29tZXMgY29tbW9ucGxhY2UgZm9yIG9wY29kZXMKICAgICAgICAgICB0byByZXF1aXJlIGEg
Y3VzdG9tIFZhbHVlIHN1YmNsYXNzIGp1c3QgZm9yIGEgYml0IHRoZW4gdGhhdCdzIG5vdCB2ZXJ5
IGVhc3kuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgY2hhbmdlIGFkZHJlc3NlcyB0aGlzIHBy
b2JsZW0gYnkgbWFraW5nIHRoZSBjb21waWxlciBwYXNzIGFyb3VuZCBLaW5kcyByYXRoZXIgdGhh
bgogICAgICAgICBPcGNvZGVzLiBBIEtpbmQgY29udGFpbnMgYW4gT3Bjb2RlIGFzIHdlbGwgYXMg
YW55IG51bWJlciBvZiBvcGNvZGUtc3BlY2lmaWMgYml0cy4gVGhpcwogICAgICAgICBjaGFuZ2Ug
ZGVtb25zdHJhdGVzIGhvdyBLaW5kIHNob3VsZCBiZSB1c2VkIGJ5IGNvbnZlcnRpbmcgY2hpbGxu
ZXNzIHRvIGl0LiBLaW5kIGhhcwpAQCAtNzM2OCwxMCArNzQzMywxMCBAQAogICAgICAgICBjaGls
bChEaXYpLiBJUiBkdW1wcyB3aWxsIHByaW50IGl0IGxpa2UgdGhpczoKIAogICAgICAgICAgICAg
SW50MzIgQDM4ID0gRGl2PENoaWxsPihAMzYsIEAzNywgREZHOkAyNCwgQ29udHJvbERlcGVuZGVu
dCkKLSAgICAgICAgCisKICAgICAgICAgV2hlcmUgIkRpdjxDaGlsbD4iIGlzIGhvdyBhIEtpbmQg
dGhhdCBoYXNFeHRyYUJpdHMoKSBkdW1wcyBpdHNlbGYuIElmIGEgS2luZCBkb2VzIG5vdAogICAg
ICAgICBoYXNFeHRyYUJpdHMoKSAodGhlIG5vcm1hbCBjYXNlKSB0aGVuIGl0IGR1bXBzIGxpa2Ug
YSBub3JtYWwgT3Bjb2RlICh3aXRob3V0IHRoZSAiPD4iKS4KLSAgICAgICAgCisKICAgICAgICAg
SSByZXBsYWNlZCBtYW55IHVzZXMgb2YgT3Bjb2RlIHdpdGggS2luZC4gTmV3IGNvZGUgaGFzIHRv
IGJlIG1pbmRmdWwgdGhhdCBPcGNvZGUgbWF5IG5vdCBiZQogICAgICAgICB0aGUgcmlnaHQgd2F5
IHRvIHN1bW1hcml6ZSB3aGF0IGEgdmFsdWUgZG9lcywgYW5kIHNvIGluIG1hbnkgY2FzZXMgaXQn
cyBiZXR0ZXIgdG8gY2FycnkKICAgICAgICAgYXJvdW5kIGEgS2luZCBpbnN0ZWFkIC0gZXNwZWNp
YWxseSBpZiB5b3Ugd2lsbCB1c2UgaXQgdG8gc3RhbXAgb3V0IG5ldyBWYWx1ZXMuIE9wY29kZSBp
cyBubwpAQCAtNzM3OSw3ICs3NDQ0LDcgQEAKICAgICAgICAgbm93IHdhbnRzIGEgS2luZCBpbnN0
ZWFkIG9mIGFuIE9wY29kZS4gQWxsIFZhbHVlIGNvbnN0cnVjdG9ycyBub3cgdGFrZSBLaW5kIGlu
c3RlYWQgb2YKICAgICAgICAgT3Bjb2RlLiBCdXQgbW9zdCBvcGNvZGVzIGRvbid0IGdldCBhbnkg
ZXh0cmEgS2luZCBiaXRzLCBhbmQgc28gdGhlIGNvZGUgdGhhdCBvcGVyYXRlcyBvbgogICAgICAg
ICB0aG9zZSBvcGNvZGVzIGlzIGxhcmdlbHkgdW5jaGFuZ2VkLgotICAgICAgICAKKwogICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgogICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CiAgICAgICAgICogYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmg6CkBAIC03
NTA2LDI5ICs3NTcxLDI5IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjIzMTYKIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4K
LSAgICAgICAgCisKICAgICAgICAgVGhpcyBtYWtlcyBvdXIgd3JpdGUgYmFycmllciBiZWhhdmUg
Y29ycmVjdGx5IHdoZW4gaXQgcmFjZXMgd2l0aCB0aGUgY29sbGVjdG9yLiBUaGUKICAgICAgICAg
Y29sbGVjdG9yIHdhbnRzIHRvIGRvIHRoaXMgd2hlbiB2aXNpdGluZzoKLSAgICAgICAgCisKICAg
ICAgICAgICAgIG9iamVjdC0+Y2VsbFN0YXRlID0gYmxhY2sKICAgICAgICAgICAgIHZpc2l0KG9i
amVjdCkKLSAgICAgICAgCisKICAgICAgICAgVGhlIG11dGF0b3Igd2FudHMgdG8gZG8gdGhpcyB3
aGVuIHN0b3Jpbmc6Ci0gICAgICAgIAorCiAgICAgICAgICAgICBvYmplY3QtPnByb3BlcnR5ID0g
bmV3VmFsdWUKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNlbGxTdGF0ZSA9PSBibGFjaykKICAg
ICAgICAgICAgICAgICByZW1lbWJlcihvYmplY3QpCi0gICAgICAgIAorCiAgICAgICAgIFByaW9y
IHRvIHRoaXMgY2hhbmdlLCB0aGlzIGRpZG4ndCB3b3JrIHJpZ2h0IGJlY2F1c2UgdGhlIGNvbXBp
bGVyIHdvdWxkIHNvbWV0aW1lcyBwbGFjZQogICAgICAgICBiYXJyaWVycyBiZWZvcmUgdGhlIHN0
b3JlIHRvIHRoZSBwcm9wZXJ0eSBhbmQgYmVjYXVzZSB0aGUgbXV0YXRvciBkaWQgbm90IGhhdmUg
YWRlcXVhdGUKICAgICAgICAgZmVuY2VzLgotICAgICAgICAKKwogICAgICAgICBQcmlvciB0byB0
aGlzIGNoYW5nZSwgdGhlIERGRyBhbmQgRlRMIHdvdWxkIGVtaXQgdGhpczoKLSAgICAgICAgCisK
ICAgICAgICAgICAgIGlmIChvYmplY3QtPmNlbGxTdGF0ZSA9PSBibGFjaykKICAgICAgICAgICAg
ICAgICByZW1lbWJlcihvYmplY3QpCiAgICAgICAgICAgICBvYmplY3QtPnByb3BlcnR5ID0gbmV3
VmFsdWUKLSAgICAgICAgCisKICAgICAgICAgV2hpY2ggaXMgd3JvbmcsIGJlY2F1c2UgdGhlIG9i
amVjdCBjb3VsZCBzdGFydCBiZWluZyBzY2FubmVkIGp1c3QgYWZ0ZXIgdGhlIGNlbGxTdGF0ZQog
ICAgICAgICBjaGVjaywgYXQgd2hpY2ggcG9pbnQgdGhlIHN0b3JlIHdvdWxkIGJlIGxvc3QuIFdl
IG5lZWQgdG8gY29uZmlybSB0aGF0IHRoZSBzdGF0ZSB3YXMgbm90CiAgICAgICAgIGJsYWNrICph
ZnRlciogdGhlIHN0b3JlISBUaGlzIGNoYW5nZSB3YXMgaGFyZGVyIHRoYW4geW91J2QgZXhwZWN0
OiBwbGFjaW5nIHRoZSBiYXJyaWVyCkBAIC03NTM5LDcgKzc2MDQsNyBAQAogICAgICAgICAoYmVj
YXVzZSBvZiB0aGUgc3RvcmUtbG9hZCBmZW5jZSkgYW5kIGl0IHdyaXRlcyBvbmx5IGNlbGxTdGF0
ZSAoYmVjYXVzZSB0aGUgQjMgaGVhcCByYW5nZXMKICAgICAgICAgZG9uJ3QgaGF2ZSBhbnkgd2F5
IHRvIHJlcHJlc2VudCBhbnkgb2YgdGhlIEdDJ3Mgb3RoZXIgc3RhdGUsIHdoaWNoIG1lYW5zIHRo
YXQgQjMgZG9lcyBub3QKICAgICAgICAgaGF2ZSB0byB3b3JyeSBhYm91dCBhbGlhc2luZyB3aXRo
IGFueSBvZiB0aGF0KS4KLSAgICAgICAgCisKICAgICAgICAgVGhlIGNvbGxlY3RvciBhbHJlYWR5
IHVzZXMgYSBzdG9yZS1sb2FkIGZlbmNlIG9uIHg4NiBqdXN0IGFmdGVyIHNldHRpbmcgdGhlIGNl
bGxTdGF0ZSBhbmQKICAgICAgICAgYmVmb3JlIHZpc2l0aW5nIHRoZSBvYmplY3QuIFRoZSBtdXRh
dG9yIG5lZWRzIHRvIGRvIHRoZSBzYW1lLiBCdXQgd2UgY2Fubm90IHB1dCBhCiAgICAgICAgIHN0
b3JlLWxvYWQgZmVuY2Ugb2YgYW55IGtpbmQgYmVmb3JlIHN0b3JlIGJhcnJpZXJzLCBiZWNhdXNl
IHRoYXQgY2F1c2VzIGVub3Jtb3VzIHNsb3cKQEAgLTc1NDgsMTAgKzc2MTMsMTAgQEAKICAgICAg
ICAgcmVhc29uYWJsZSBpZiB0aGUgc2xvdyBkb3duIG9ubHkgaGFwcGVuZWQgd2hpbGUgdGhlIEdD
IHdhcyBydW5uaW5nLiBUaGVuLCB0aGUgY29uY3VycmVudCBHQwogICAgICAgICB3b3VsZCBsaWZ0
IHRocm91Z2hwdXQtd2hpbGUtY29sbGVjdGluZyBmcm9tIDAlIG9mIHBlYWsgdG8gODUlIG9mIHBl
YWsuIFRoaXMgY2hhbmdlcyB0aGUKICAgICAgICAgYmFycmllciBzbyB0aGF0IGl0IGxvb2tzIGxp
a2UgdGhpczoKLSAgICAgICAgCisKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNlbGxTdGF0ZSA8
PSBoZWFwLnNuZWFreUJsYWNrVGhyZXNob2xkKQogICAgICAgICAgICAgICAgIHNsb3dQYXRoKG9i
amVjdCkKLSAgICAgICAgCisKICAgICAgICAgV2hlcmUgc25lYWt5QmxhY2tUaHJlc2hvbGQgaXMg
dGhlIG5vcm1hbCBibGFja1RocmVzaG9sZCB3aGVuIHdlJ3JlIG5vdCBjb2xsZWN0aW5nLCBvciBh
CiAgICAgICAgIHRhdXRvbGlnaWNhbCB0aHJlc2hvbGQgKHRoYXQgbWFrZXMgZXZlcnl0aGluZyBs
b29rIGJsYWNrKSB3aGVuIHdlIGFyZSBjb2xsZWN0aW5nLiBUaGlzCiAgICAgICAgIHR1cm5zIG91
dCB0byBub3QgYmUgYW55IG1vcmUgZXhwZW5zaXZlIHRoYW4gdGhlIGJhcnJpZXIgaW4gdGlwIG9m
IHRyZWUgd2hlbiB0aGUgR0MgaXMgbm90CkBAIC03NTU5LDcgKzc2MjQsNyBAQAogICAgICAgICBj
b25jdXJyZW50bHkgeWV0LiBJIHN0aWxsIGhhdmUgbW9yZSB3b3JrIHRvIGRvLikgVGhlIHNsb3dQ
YXRoKCkgZG9lcyBzb21lIGV4dHJhIHdvcmsgdG8KICAgICAgICAgY2hlY2sgaWYgd2UgYXJlIGNv
bmN1cnJlbnRseSBjb2xsZWN0aW5nOyBpZiBzbywgaXQgZG9lcyBhIGZlbmNlIGFuZCByZWNoZWNr
cyBpZiB0aGUgb2JqZWN0CiAgICAgICAgIHJlYWxseSBkaWQgbmVlZCB0aGF0IGJhcnJpZXIuCi0g
ICAgICAgIAorCiAgICAgICAgIFRoaXMgYWxzbyByZWludHJvZHVjZXMgZWxpbWluYXRpb24gb2Yg
cmVkdW5kYW50IHN0b3JlIGJhcnJpZXJzLCB3aGljaCB3YXMgbG9zdCBpbiB0aGUgbGFzdAogICAg
ICAgICBzdG9yZSBiYXJyaWVyIGNoYW5nZS4gV2UgY2FuIG9ubHkgZG8gaXQgd2hlbiB0aGVyZSBp
cyBubyBwb3NzaWJpbGl0eSBvZiBHQywgZXhpdCwgb3IKICAgICAgICAgZXhjZXB0aW9ucyBiZXR3
ZWVuIHRoZSB0d28gc3RvcmUgYmFycmllcnMuIFdlIGNvdWxkIHJlbW92ZSB0aGUgZXhpdC9leGNl
cHRpb24gbGltaXRhdGlvbiBpZgpAQCAtNzU2OSw3ICs3NjM0LDcgQEAKICAgICAgICAgc2FtZSBv
YmplY3QuIFRoaXMgc2FtZSBvcHRpbWl6YXRpb24gYWxzbyBzb21ldGltZXMgc3RyZW5ndGgtcmVk
dWNlcyB0aGUgc3RvcmUgYmFycmllciBzbwogICAgICAgICB0aGF0IGl0IHVzZXMgYSBjb25zdGFu
dCBibGFjayB0aHJlc2hvbGQgcmF0aGVyIHRoYW4gdGhlIHNuZWFreSBvbmUsIHRoZXJlYnkgc2F2
aW5nIG9uZQogICAgICAgICBsb2FkLgotICAgICAgICAKKwogICAgICAgICBFdmVuIHdpdGggYWxs
IG9mIHRob3NlIG9wdGltaXphdGlvbnMsIEkgc3RpbGwgaGFkIHByb2JsZW1zIHdpdGggYmFycmll
ciBjb3N0LiBJIGZvdW5kIHRoYXQgb25lCiAgICAgICAgIG9mIHRoZSBiZW5jaG1hcmtzIHRoYXQg
d2FzIGJlaW5nIGhpdCBwYXJ0aWN1bGFybHkgaGFyZCB3YXMgSmV0U3RyZWFtL3JlZ2V4cC0yMDEw
LiBGb3J0dW5hdGVseQogICAgICAgICB0aGF0IGJlbmNobWFyayBkb2VzIG1vc3Qgb2YgaXRzIGJh
cnJpZXJzIGluIGEgdGlnaHQgQysrIGxvb3AgaW4gUmVnRXhwTWF0Y2hlc0FycmF5LmguIFdoZW4g
d2UKQEAgLTc1NzksMTMgKzc2NDQsMTMgQEAKICAgICAgICAgb3B0aW1pemF0aW9uLiBUaGUgbW9z
dCBlZmZpY2llbnQgdmVyc2lvbiBvZiBzdWNoIGFuIG9wdGltaXphdGlvbiB0aGF0IEkgY291bGQg
Y29tZSB1cCB3aXRoIHdhcwogICAgICAgICB0byBoYXZlIGEgRGVmZXJyYWxDb250ZXh0IG9iamVj
dCB0aGF0IGhvdXNlcyBhIGJvb2xlYW4gdGhhdCBpcyBmYWxzZSBieSBkZWZhdWx0LCBidXQgdGhl
IEdDCiAgICAgICAgIHdyaXRlcyB0cnVlIGludG8gaXQgaWYgaXQgd291bGQgaGF2ZSB3YW50ZWQg
dG8gR0MuIFlvdSB0aHJlYWQgYSBwb2ludGVyIHRvIHRoZSBkZWZlcnJhbENvbnRleHQKLSAgICAg
ICAgdGhyb3VnaCBhbGwgb2YgeW91ciBhbGxvY2F0aW9ucy4gVGhpcyBraW5kIG9mIG1lY2hhbmlz
bSBoYXMgdGhlIG92ZXJoZWFkIG9mIGEgemVybyAKKyAgICAgICAgdGhyb3VnaCBhbGwgb2YgeW91
ciBhbGxvY2F0aW9ucy4gVGhpcyBraW5kIG9mIG1lY2hhbmlzbSBoYXMgdGhlIG92ZXJoZWFkIG9m
IGEgemVybwogICAgICAgICBpbml0aWFsaXphdGlvbiBvbiB0aGUgc3RhY2sgb24gZW50cnkgYW5k
IGEgemVybyBjaGVjayBvbiBleGl0LiBUaGlzIGlzIHByb2JhYmx5IGV2ZW4gZWZmaWNpZW50CiAg
ICAgICAgIGVub3VnaCB0aGF0IHdlIGNvdWxkIHN0YXJ0IHRoaW5raW5nIGFib3V0IGhhdmluZyB0
aGUgREZHIHVzZSBpdCwgZm9yIGV4YW1wbGUgaWYgd2UgZm91bmQgYQogICAgICAgICBib3VuZGVk
LXRpbWUgc2VjdGlvbiBvZiBjb2RlIHdpdGggYSBsb3Qgb2YgYmFycmllcnMgYW5kIGVudHJ5L2V4
aXQgc2l0ZXMgdGhhdCBhcmVuJ3QgdG90YWxseQogICAgICAgICB3YWNreS4gVGhpcyBvcHRpbWl6
YXRpb24gdG9vayB0aGlzIHBhdGNoIGZyb20gMC42OCUgSmV0U3RyZWFtIHJlZ3Jlc3NlZCB0byBu
ZXV0cmFsLCBhY2NvcmRpbmcKICAgICAgICAgdG8gbXkgbGF0ZXN0IGRhdGEuCi0gICAgICAgIAor
CiAgICAgICAgIEZpbmFsbHksIGFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIGNoYW5nZSBwdXQg
dGhlIHN0b3JlLWxvYWQgZmVuY2UgaW4gQjMgSVIsIHNvIEkgZW5kZWQgdXAKICAgICAgICAgYWRk
aW5nIEZUTE91dHB1dCBzdXBwb3J0IGZvciBpdCBhbmQgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeSBt
YWdpYyBmb3IgZGVjb3JhdGluZyB0aGUgaGVhcHMuCiAgICAgICAgIEkgdGhpbmsgd2UgbWlnaHQg
YXMgd2VsbCBrZWVwIHRoYXQsIGl0J2xsIGJlIHVzZWZ1bC4KQEAgLTc5NjEsNyArODAyNiw3IEBA
CiAKICAgICAgICAgTWFrZSB0aGUgc3ViY2xhc3Mgb2YgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yIHRo
YXQgdGFrZXMgYXJndW1lbnRzIHZhcmlhZGljCiAgICAgICAgIHNvIGl0IGNhbiB0YWtlIGFueSBu
dW1iZXIgb2YgYXJndW1lbnRzLiBBbHNvIHVwZGF0ZXMgdGhlIHNsb3dQYXRoQ2FsbCBoZWxwZXIK
LSAgICAgICAgZnVuY3Rpb24gdG8gYmUgdmFyaWFkaWMuIEkgaGFkIHRvIG1vdmUgdGhlIHNwaWxs
IG1vZGUgYW5kIGV4Y2VwdGlvbiBjaGVjayAKKyAgICAgICAgZnVuY3Rpb24gdG8gYmUgdmFyaWFk
aWMuIEkgaGFkIHRvIG1vdmUgdGhlIHNwaWxsIG1vZGUgYW5kIGV4Y2VwdGlvbiBjaGVjawogICAg
ICAgICByZXF1aXJlbWVudCBwYXJhbWV0ZXJzIHRvIGJlZm9yZSB0aGUgYXJndW1lbnRzIHNpbmNl
IHRoZSB2YXJpYWRpYyBhcmd1bWVudHMKICAgICAgICAgbXVzdCBiZSBhdCB0aGUgZW5kLiBBcyBh
IGNvbnZlbmllbmNlLCBJIGFkZGVkIGFuIG92ZXJsb2FkIG9mIHNsb3dQYXRoQ2FsbCB0aGF0CiAg
ICAgICAgIGRvZXNuJ3QgdGFrZSBzcGlsbCBtb2RlIGFuZCBleGNlcHRpb24gY2hlY2sgcmVxdWly
ZW1lbnQgcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAy
NjA4ZjJjNGFmMzg5MDFiMmI4MTA4MGYyNGM5YzBkMWZiNWU5YjcwLi5hMTg3ZWY4ZTZmZGFhOTFm
MGU4Y2FkOWFlYzdkOTJiMjg2YzQ4MzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC04NzgsOSArODc4LDExIEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAg
d2FzbS9KU1dlYkFzc2VtYmx5LmNwcAogICAgIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCiAg
ICAgd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwCisgICAgd2FzbS9XYXNtRm9ybWF0LmNw
cAogICAgIHdhc20vV2FzbU1lbW9yeS5jcHAKICAgICB3YXNtL1dhc21Nb2R1bGVQYXJzZXIuY3Bw
CiAgICAgd2FzbS9XYXNtUGxhbi5jcHAKKyAgICB3YXNtL1dhc21WYWxpZGF0ZS5jcHAKIAogICAg
IHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKICAgICB3YXNtL2pzL0pTV2Vi
QXNzZW1ibHlJbnN0YW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNzM4YzEzNjgyMzZhNWRhZTIzNWU5NmU5Y2M3MDg2ZDEzNDIzODZiYy4uYjMw
YzMwNWFjZTM1YmFiY2E4Y2VjMThjNzZjZjlkYzcxZmY5NjAyYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY0LDYgKzY0LDcgQEAgYWxsIDogXAogICAg
IEFpck9wY29kZS5oIFwKICAgICBZYXJyQ2Fub25pY2FsaXplVW5pY29kZS5jcHAgXAogICAgIFdh
c21PcHMuaCBcCisgICAgV2FzbVZhbGlkYXRlSW5saW5lcy5oIFwKICMKIAogIyBKYXZhU2NyaXB0
IGJ1aWx0aW5zLgpAQCAtMzAxLDYgKzMwMiw5IEBAIFlhcnJDYW5vbmljYWxpemVVbmljb2RlLmNw
cDogJChKYXZhU2NyaXB0Q29yZSkvZ2VuZXJhdGVZYXJyQ2Fub25pY2FsaXplVW5pY29kZSAkCiBX
YXNtT3BzLmg6ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJhdGVXYXNtT3BzSGVhZGVyLnB5
ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJhdGVXYXNtLnB5ICQoSmF2YVNjcmlwdENvcmUp
L3dhc20vd2FzbS5qc29uCiAJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmUpL3dhc20vZ2VuZXJh
dGVXYXNtT3BzSGVhZGVyLnB5ICQoSmF2YVNjcmlwdENvcmUpL3dhc20vd2FzbS5qc29uIC4vV2Fz
bU9wcy5oCiAKK1dhc21WYWxpZGF0ZUlubGluZXMuaDogJChKYXZhU2NyaXB0Q29yZSkvd2FzbS9n
ZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkgJChKYXZhU2NyaXB0Q29yZSkvd2Fz
bS9nZW5lcmF0ZVdhc20ucHkgJChKYXZhU2NyaXB0Q29yZSkvd2FzbS93YXNtLmpzb24KKwkkKFBZ
VEhPTikgJChKYXZhU2NyaXB0Q29yZSkvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNI
ZWFkZXIucHkgJChKYXZhU2NyaXB0Q29yZSkvd2FzbS93YXNtLmpzb24gLi9XYXNtVmFsaWRhdGVJ
bmxpbmVzLmgKKwogIyBEeW5hbWljYWxseS1kZWZpbmVkIHRhcmdldHMgYXJlIGxpc3RlZCBiZWxv
dy4gU3RhdGljIHRhcmdldHMgYmVsb25nIHVwIHRvcC4KIAogYWxsIDogXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA0MzU1YmRiMjViODYyYzI3NDdhNDJkOWEwOGU4MTc2NWEzM2Nk
ZDRhLi43NjVjYTU4NTdiNTRlYzkxNjYxMTYzMmY4NGY2ZjM0OGE2ODYwMWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIyNyw2ICsxMjI3LDcgQEAKIAkJNTJDOTUyQjkxOUEy
OEExQzAwNjlCMzg2IC8qIFR5cGVQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkM5NTJCODE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVBy
b2ZpbGVyLmNwcCAqLzsgfTsKIAkJNTMxMzc0QkQxRDVDRTY3NjAwQUY3QTBCIC8qIFdhc21QbGFu
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzEzNzRC
QzFENUNFNjc2MDBBRjdBMEIgLyogV2FzbVBsYW4uaCAqLzsgfTsKIAkJNTMxMzc0QkYxRDVDRTk1
MDAwQUY3QTBCIC8qIFdhc21QbGFuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUzMTM3NEJFMUQ1Q0U5NTAwMEFGN0EwQiAvKiBXYXNtUGxhbi5jcHAg
Ki87IH07CisJCTUzM0IxNURGMURDN0Y0NjMwMDRENTAwQSAvKiBXYXNtT3BzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzNCMTVERTFEQzdGNDYzMDA0
RDUwMEEgLyogV2FzbU9wcy5oICovOyB9OwogCQk1MzQxRkM3MDFEQUMzM0U1MDBFN0U0RDcgLyog
QjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MzQxRkM2RjFEQUMzM0U1MDBFN0U0RDcgLyogQjNXYXNtQm91bmRz
Q2hlY2tWYWx1ZS5jcHAgKi87IH07CiAJCTUzNDFGQzcyMURBQzM0M0MwMEU3RTRENyAvKiBCM1dh
c21Cb3VuZHNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzQxRkM3MTFEQUMzNDNDMDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tW
YWx1ZS5oICovOyB9OwogCQk1MzQ4NkJCNzFDMTc5NUMzMDBGNkYzQUYgLyogSlNUeXBlZEFycmF5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzQ4NkJC
NjFDMTc5NUMzMDBGNkYzQUYgLyogSlNUeXBlZEFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OwpAQCAtMTI1MCw3ICsxMjUxLDYgQEAKIAkJNTNGNDBF
OEIxRDU5MDFCQjAwOTlBMUI2IC8qIFdhc21GdW5jdGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNDBFOEExRDU5MDFCQjAwOTlBMUI2
IC8qIFdhc21GdW5jdGlvblBhcnNlci5oICovOyB9OwogCQk1M0Y0MEU4RDFENTkwMUYyMDA5OUEx
QjYgLyogV2FzbVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTNGNDBFOEMxRDU5MDFGMjAwOTlBMUI2IC8qIFdhc21QYXJzZXIuaCAqLzsgfTsK
IAkJNTNGNDBFOEYxRDU5MDI4MjAwOTlBMUI2IC8qIFdhc21CM0lSR2VuZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRThFMUQ1OTAy
ODIwMDk5QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5jcHAgKi87IH07Ci0JCTUzRjQwRTkxMUQ1
OTAzMDIwMDk5QTFCNiAvKiBXYXNtT3BzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1M0Y0MEU5MDFENTkwMzAyMDA5OUExQjYgLyogV2FzbU9wcy5oICov
OyB9OwogCQk1M0Y0MEU5MzFENUE0QUIzMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjQwRTkyMUQ1
QTRBQjMwMDk5QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5oICovOyB9OwogCQk1M0Y0MEU5NTFE
NUE3QUVGMDA5OUExQjYgLyogV2FzbU1vZHVsZVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNDBFOTQxRDVBN0FFRjAwOTlBMUI2IC8qIFdh
c21Nb2R1bGVQYXJzZXIuaCAqLzsgfTsKIAkJNTNGNDBFOTcxRDVBN0JFQzAwOTlBMUI2IC8qIFdh
c21Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTNGNDBFOTYxRDVBN0JFQzAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3Bw
ICovOyB9OwpAQCAtMTI1OSwxMyArMTI1OSwxNiBAQAogCQk1M0ZBMkFFMzFDRjM4MDM5MDAyMjcx
MUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkEyQUUyMUNG
MzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNo
cG9pbnQuY3BwICovOyB9OwogCQk1M0ZEMDREMzFEN0FCMjc3MDAzMjg3RDMgLyogV2FzbUNhbGxp
bmdDb252ZW50aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRkQwNEQxMUQ3QUIxODcwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24u
Y3BwICovOyB9OwogCQk1M0ZEMDRENDFEN0FCMjkxMDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252
ZW50aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
M0ZEMDREMjFEN0FCMTg3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmggKi87IH07
Ci0JCTVDNEU4RTk2MURCRUJFNjIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEU4RTk0MURCRUJEQTIw
MDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmNwcCAqLzsgfTsKKwkJNTNGRjdGOTkxREJGQ0Q5MDAw
QTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTNGRjdGOTgxREJGQ0Q5MDAwQTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5o
ICovOyB9OworCQk1M0ZGN0Y5QjFEQkZEMkI5MDBBMjZDQ0MgLyogV2FzbVZhbGlkYXRlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkY3RjlBMURC
RkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuY3BwICovOyB9OworCQk1M0ZGN0Y5RDFEQzAw
REIxMDBBMjZDQ0MgLyogV2FzbUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZGN0Y5QzFEQzAwREIxMDBBMjZDQ0MgLyogV2FzbUZvcm1h
dC5jcHAgKi87IH07CiAJCTVCNzBDRkRFMURCNjlFNjYwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNzBD
RkQ4MURCNjlFNUMwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rpb24uaCAqLzsgfTsKIAkJNUI3MENG
REYxREI2OUU2NjAwRUMyM0Y5IC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjcwQ0ZEOTFEQjY5RTVDMDBFQzIzRjkg
LyogSlNBc3luY0Z1bmN0aW9uLmNwcCAqLzsgfTsKIAkJNUI3MENGRTAxREI2OUU2NjAwRUMyM0Y5
IC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVCNzBDRkRBMURCNjlFNUMwMEVDMjNGOSAvKiBBc3luY0Z1bmN0
aW9uUHJvdG90eXBlLmggKi87IH07CiAJCTVCNzBDRkUxMURCNjlFNjYwMEVDMjNGOSAvKiBBc3lu
Y0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVCNzBDRkRCMURCNjlFNUMwMEVDMjNGOSAvKiBBc3luY0Z1bmN0aW9uUHJv
dG90eXBlLmNwcCAqLzsgfTsKIAkJNUI3MENGRTIxREI2OUU2NjAwRUMyM0Y5IC8qIEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUI3MENGREMxREI2OUU1QzAwRUMyM0Y5IC8qIEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3Rvci5oICovOyB9OwogCQk1QjcwQ0ZFMzFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVCNzBDRkREMURCNjlFNUMwMEVDMjNGOSAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IuY3BwICovOyB9OworCQk1QzRFOEU5NjFEQkVCRTYyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRF
OEU5NDFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVzdC5jcHAgKi87IH07CiAJCTVENUQ4
QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8q
IGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQzNiAvKiB0ZXN0
YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMgKi87IH07CiAJ
CTVEQkIxNTI1MTMxRDBCRDcwMDU2QUQzNiAvKiBtaW5pZG9tLmpzIGluIENvcHkgU3VwcG9ydCBT
Y3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMjExMEQwQTQ4Nzg4
NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi87IH07CkBAIC0zNTUyLDYgKzM1NTUsNyBAQAogCQk1
MkM5NTJCODE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVByb2ZpbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFR5cGVQcm9maWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUz
MTM3NEJDMUQ1Q0U2NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXYXNtUGxhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MzEzNzRCRTFENUNFOTUwMDBBRjdBMEIgLyogV2FzbVBsYW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbVBsYW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MzNCMTVERTFEQzdGNDYzMDA0RDUwMEEgLyogV2FzbU9wcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtT3BzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUzNDFGQzZGMURBQzMzRTUwMEU3RTRENyAvKiBCM1dhc21Cb3VuZHNDaGVja1ZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzV2FzbUJvdW5kc0No
ZWNrVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNDFGQzcxMURBQzM0M0MwMEU3RTRENyAvKiBCM1dh
c21Cb3VuZHNDaGVja1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIz
V2FzbUJvdW5kc0NoZWNrVmFsdWUuaDsgcGF0aCA9IGIzL0IzV2FzbUJvdW5kc0NoZWNrVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM0ODZCQjYxQzE3OTVDMzAwRjZGM0FG
IC8qIEpTVHlwZWRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1R5
cGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzksNyArMzU4Myw2
IEBACiAJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rpb25QYXJzZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUZ1bmN0aW9uUGFyc2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjQwRThDMUQ1OTAxRjIwMDk5QTFCNiAvKiBX
YXNtUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21QYXJzZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOEUxRDU5MDI4MjAwOTlBMUI2
IC8qIFdhc21CM0lSR2VuZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdhc21CM0lSR2VuZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTNGNDBFOTAxRDU5MDMwMjAwOTlBMUI2IC8qIFdhc21PcHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2FzbU9wcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1M0Y0MEU5MjFENUE0QUIzMDA5OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUIzSVJHZW5lcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNDBFOTQxRDVBN0FFRjAwOTlBMUI2IC8qIFdhc21Nb2R1
bGVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbU1vZHVsZVBh
cnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0Y0MEU5NjFENUE3QkVDMDA5
OUExQjYgLyogV2FzbU1vZHVsZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXYXNtTW9kdWxlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTM1ODgsOCArMzU5MSw5IEBACiAJCTUzRkEyQUUyMUNGMzgwMzkwMDIyNzExRCAvKiBM
TEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNG
RDA0RDExRDdBQjE4NzAwMzI4N0QzIC8qIFdhc21DYWxsaW5nQ29udmVudGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0ZEMDREMjFEN0FCMTg3MDAzMjg3RDMg
LyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdhc21DYWxsaW5nQ29udmVudGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1QzRFOEU5NDFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU09OUGFyc2VUZXN0LmNwcDsgcGF0aCA9IEFQ
SS90ZXN0cy9KU09OUGFyc2VUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NUM0RThFOTUxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJzZVRlc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNPTlBhcnNlVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0pT
T05QYXJzZVRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNGRjdGOTgxREJG
Q0Q5MDAwQTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXYXNtVmFsaWRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNG
RjdGOUExREJGRDJCOTAwQTI2Q0NDIC8qIFdhc21WYWxpZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtVmFsaWRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1M0ZGN0Y5QzFEQzAwREIxMDBBMjZDQ0MgLyogV2FzbUZvcm1hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtRm9ybWF0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUI3MENGRDgxREI2OUU1QzAwRUMyM0Y5IC8qIEpT
QXN5bmNGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FzeW5j
RnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUI3MENGRDkxREI2OUU1
QzAwRUMyM0Y5IC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0FzeW5jRnVuY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QjcwQ0ZEQTFEQjY5RTVDMDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0Z1bmN0aW9uUHJvdG90
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTk3LDYgKzM2MDEsOCBAQAog
CQk1QjcwQ0ZEQzFEQjY5RTVDMDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QjcwQ0ZERDFEQjY5RTVDMDBFQzIz
RjkgLyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVCODI0MzA0MURCN0FBNDkwMEVBNjM4NCAvKiBBc3luY0Z1bmN0
aW9uUHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
QXN5bmNGdW5jdGlvblByb3RvdHlwZS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NUM0RThFOTQxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJzZVRlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNPTlBhcnNlVGVzdC5jcHA7IHBhdGggPSBBUEkv
dGVzdHMvSlNPTlBhcnNlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
NEU4RTk1MURCRUJEQTIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEpTT05QYXJzZVRlc3QuaDsgcGF0aCA9IEFQSS90ZXN0cy9KU09O
UGFyc2VUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENUQ4QUQwMEUwRDBF
QkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJl
ZGl0LmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliZWRpdC5keWxpYjsgc291cmNlVHJlZSA9ICI8
YWJzb2x1dGU+IjsgfTsKIAkJNURBRkQ2Q0IxNDZCNjg2MzAwRkJFRkI0IC8qIEpTQy54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
eGNjb25maWc7IHBhdGggPSBKU0MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVERERGNDQ2MTRGRUU3MjIwMEI0RkI0RCAvKiBMTEludERlc2lyZWRPZmZzZXRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50RGVzaXJlZE9mZnNldHMuaDsgcGF0
aCA9IExMSW50T2Zmc2V0cy9MTEludERlc2lyZWRPZmZzZXRzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CkBAIC01ODM5LDYgKzU4NDUsNyBAQAogCQkJCTk5NkI3MzEzMUJE
OUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQk5OTZCNzMx
NDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTY1QTk0
NjE0MUM4RTlGNkYwMEE3MjA5QSAvKiBZYXJyQ2Fub25pY2FsaXplVW5pY29kZS5jcHAgKi8sCisJ
CQkJNTMzQjE1REUxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21PcHMuaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gIkRlcml2ZWQgU291cmNlcyI7CiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmU7CkBAIC01ODc1LDcgKzU4ODIsNyBAQAogCQkJCTUzRjQwRTkyMUQ1QTRBQjMwMDk5
QTFCNiAvKiBXYXNtQjNJUkdlbmVyYXRvci5oICovLAogCQkJCTUzRkQwNEQxMUQ3QUIxODcwMDMy
ODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uY3BwICovLAogCQkJCTUzRkQwNEQyMUQ3QUIx
ODcwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCAqLywKLQkJCQk1M0Y0MEU5MDFE
NTkwMzAyMDA5OUExQjYgLyogV2FzbU9wcy5oICovLAorCQkJCTUzRkY3RjlDMURDMDBEQjEwMEEy
NkNDQyAvKiBXYXNtRm9ybWF0LmNwcCAqLywKIAkJCQk3QkM1NDdEMjFCNjk1OTlCMDA5NTlCNTgg
LyogV2FzbUZvcm1hdC5oICovLAogCQkJCTUzRjQwRThBMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNt
RnVuY3Rpb25QYXJzZXIuaCAqLywKIAkJCQk1MzU1NTcxNTFEOURGQTMyMDA2RDU4M0IgLyogV2Fz
bU1lbW9yeS5jcHAgKi8sCkBAIC01ODg2LDYgKzU4OTMsOCBAQAogCQkJCTUzMTM3NEJDMUQ1Q0U2
NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oICovLAogCQkJCTUzRjQwRThDMUQ1OTAxRjIwMDk5QTFC
NiAvKiBXYXNtUGFyc2VyLmggKi8sCiAJCQkJNTNGNDBFODQxRDU4Rjk3NzAwOTlBMUI2IC8qIFdh
c21TZWN0aW9ucy5oICovLAorCQkJCTUzRkY3RjlBMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFs
aWRhdGUuY3BwICovLAorCQkJCTUzRkY3Rjk4MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRh
dGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2FzbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC03OTg2LDYgKzc5OTUsNyBAQAogCQkJCTBGMkJEQzQ5MTUyMjgwOTYwMENEODkxMCAv
KiBERkdWYXJpYWJsZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0QjE1MjI4MDlE
MDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZGRkM5NjAxNEVGOTBCRDAwQzcyNTMyIC8qIERGR1ZpcnR1YWxSZWdpc3RlckFsbG9jYXRpb25Q
aGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNGRjdGOTkxREJGQ0Q5MDAwQTI2Q0NDIC8qIFdh
c21WYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGNDIxODIwMjExOTAwMkM5QjI2
IC8qIERGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
REIyQ0U4MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQ3MzQxREExREMwMzAwMTAwQUEyOUJBIC8qIFdlYkFzc2VtYmx5RXhlY3V0YWJsZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04Mzg5LDcgKzgzOTksNiBAQAogCQkJCUE3QzBDNEFDMTY4MTAzMDIw
MDE3MDExRCAvKiBKU1NjcmlwdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMTIy
MDI3MUJFN0Y1OEMwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGOTE5RDExMTU3RjMzMkMwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1M0Y0MEU5MTFENTkwMzAyMDA5OUExQjYgLyogV2FzbU9w
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyOTlEOUUxN0QxMjgzNzAwNUY1RkY5IC8qIEpTU2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NUUwRTE2RjVDRDAwQjM0NDYwIC8q
IENMb29wU3RhY2suaCBpbiBIZWFkZXJzICovLApAQCAtODc2OSw2ICs4Nzc4LDcgQEAKIAkJCQkx
NEY3MjU2NjE0RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNEU4NEZBMjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0ltcGwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0QkU3RDMzMTcxMzVDRjQwMEQxODA3QSAvKiBXZWFrSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTMzQjE1REYxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21PcHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3Q0EzQUU0MTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFrTWFwQ29uc3Ry
dWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUVDMTdEQTUxNjgwMDY1MzhBRiAvKiBX
ZWFrTWFwRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDQTNBRTYxN0RBNDFBRTAwNjUzOEFG
IC8qIFdlYWtNYXBQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTkzMCw2ICs5OTQwLDcg
QEAKIAkJCQkwRkY0Mjc1NzE1OTE0QTIwMDA0Q0I5RkYgLyogTGlua0J1ZmZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0UyRUE2QzBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUExQTA5NTFEOENCMzQxMDA0QzJFQjggLyogRGVidWdn
ZXJQYXJzZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTNGRjdGOUQxREMwMERCMTAwQTI2
Q0NDIC8qIFdhc21Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkUzOTEzNTQxQjc5NEY2
RTAwRURBRjcxIC8qIExpdmVPYmplY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFMjBD
RTlEMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNDY4MEQyMTRCQkQxNjUwMEJGRTI3MiAvKiBMTEludERhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMDA4OCw2ICsxMDA5OSw3IEBACiAJCQkJMTQ0NjlERUIxMDdFQzdFNzAwNjUwNDQ2IC8q
IFN0cmluZ0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2MUFBMEQ3
REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDQ2OURFQzEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nT2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUzRkY3RjlCMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ1By
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVCMDAyQjU1NTMg
LyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RFM0I0
MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RXYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0V2FzbS5jcHAKaW5kZXggMzRhZWE4NTY2ZDM2OWZmMWFkYTQwNjE1ZWJkNjVm
OTg1NjkzM2NhYi4uZDFiODhkOGQ1NzhmMzdjYTdiNTNkMzU2MzJkOGVhNjQ2N2U3YzNkMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RXYXNtLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdFdhc20uY3BwCkBAIC0yNjksNiArMjY5LDI3IEBAIGlubGluZSBK
U1ZhbHVlIGJveGQoZG91YmxlIHZhbHVlKQogICAgIHJldHVybiBib3goYml0d2lzZV9jYXN0PHVp
bnQ2NF90Pih2YWx1ZSkpOwogfQogCitzdGF0aWMgdm9pZCBjaGVja1BsYW4oUGxhbiYgcGxhbiwg
dW5zaWduZWQgZXhwZWN0ZWROdW1iZXJPZkZ1bmN0aW9ucykKK3sKKyAgICBpZiAocGxhbi5mYWls
ZWQoKSkgeworICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSB3aXRo
IGVycm9yOiAiLCBwbGFuLmVycm9yTWVzc2FnZSgpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9
CisKKyAgICBpZiAocGxhbi5yZXN1bHRTaXplKCkgIT0gZXhwZWN0ZWROdW1iZXJPZkZ1bmN0aW9u
cykgeworICAgICAgICBkYXRhTG9nTG4oIkluY29ycmVjdCBudW1iZXIgb2YgZnVuY3Rpb25zIik7
CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGV4cGVjdGVkTnVtYmVyT2ZGdW5jdGlvbnM7ICsraSkgeworICAgICAgICBpZiAoIXBsYW4ucmVz
dWx0KGkpKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIkZ1bmN0aW9uIGF0IGluZGV4LCAiICwg
aSwgIiBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkiKTsKKyAgICAgICAgICAgIENSQVNIKCk7
CisgICAgICAgIH0KKyAgICB9CisKK30KKwogLy8gRm9yIG5vdyB3ZSBpbmxpbmUgdGhlIHRlc3Qg
ZmlsZXMuCiBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogewpAQCAtMjkwLDEwICszMTEsNyBA
QCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4g
cGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVz
dWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFuLnJlc3VsdCgxKSkgewot
ICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5
LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4o
cGxhbiwgMik7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAg
IENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKnBsYW4ucmVzdWx0KDEpLT5qc0VudHJ5
UG9pbnQsIHsgYm94ZigwLjApLCBib3hmKDEuNSkgfSksIC0xLjVmKSk7CkBAIC0zMTksMTAgKzMz
Nyw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAg
UGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxh
bi5yZXN1bHRTaXplKCkgIT0gMiB8fCAhcGxhbi5yZXN1bHQoMCkgfHwgIXBsYW4ucmVzdWx0KDEp
KSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3Jy
ZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAgIGNoZWNr
UGxhbihwbGFuLCAyKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KICAg
ICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqcGxhbi5yZXN1bHQoMSktPmpz
RW50cnlQb2ludCwgeyBib3hmKDAuMCksIGJveGYoMS41KSB9KSwgMS41ZikpOwpAQCAtMzUzLDEw
ICszNjgsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAg
ICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8
IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFuLnJlc3Vs
dCgxKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUg
Y29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBj
aGVja1BsYW4ocGxhbiwgMik7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2gu
CiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgxKS0+anNFbnRyeVBv
aW50LCB7IGJveCgwKSB9KSwgMCk7CkBAIC0zODcsMTAgKzM5OSw3IEBAIHN0YXRpYyB2b2lkIHJ1
bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9y
KTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8
fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxl
ZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAg
IH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBk
b2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQo
MCktPmpzRW50cnlQb2ludCwgeyBib3goMCkgfSksIDEpOwpAQCAtNDQ3LDEwICs0NTYsNyBAQCBz
dGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxh
bigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0
U2l6ZSgpICE9IDIgfHwgIXBsYW4ucmVzdWx0KDApIHx8ICFwbGFuLnJlc3VsdCgxKSkgewotICAg
ICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIp
OwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxh
biwgMik7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENI
RUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgxKS0+anNFbnRyeVBvaW50LCB7IGJveCgw
KSB9KSwgMCk7CkBAIC00NjMsMjcgKzQ2OSwyMyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMo
KQogCiAgICAgewogICAgICAgICAvLyBHZW5lcmF0ZWQgZnJvbToKLSAgICAgICAgLy8gKG1vZHVs
ZQotICAgICAgICAvLyAgKG1lbW9yeSAxKQotICAgICAgICAvLyAgKGZ1bmMgKGV4cG9ydCAiaTMy
X2xvYWQ4X3MiKSAocGFyYW0gJGkgaTMyKSAocGFyYW0gJHB0ciBpMzIpIChyZXN1bHQgaTMyKQot
ICAgICAgICAvLyAgIChpNjQuc3RvcmUgKGdldF9sb2NhbCAkcHRyKSAoZ2V0X2xvY2FsICRpKSkK
LSAgICAgICAgLy8gICAocmV0dXJuIChpNjQubG9hZCAoZ2V0X2xvY2FsICRwdHIpKSkKLSAgICAg
ICAgLy8gICApCi0gICAgICAgIC8vICApCisgICAgICAgIC8vICAgIChtb2R1bGUKKyAgICAgICAg
Ly8gICAgIChtZW1vcnkgMSkKKyAgICAgICAgLy8gICAgIChmdW5jIChleHBvcnQgImk2NCIpIChw
YXJhbSAkaSBpNjQpIChwYXJhbSAkcHRyIGkzMikgKHJlc3VsdCBpNjQpCisgICAgICAgIC8vICAg
ICAgKGk2NC5zdG9yZSAoZ2V0X2xvY2FsICRwdHIpIChnZXRfbG9jYWwgJGkpKQorICAgICAgICAv
LyAgICAgIChyZXR1cm4gKGk2NC5sb2FkIChnZXRfbG9jYWwgJHB0cikpKQorICAgICAgICAvLyAg
ICAgICkKKyAgICAgICAgLy8gICAgICkKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3RvciA9
IHsKICAgICAgICAgICAgIDB4MDAsIDB4NjEsIDB4NzMsIDB4NmQsIDB4MGMsIDB4MDAsIDB4MDAs
IDB4MDAsIDB4MDEsIDB4ODcsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4NDAsCiAg
ICAgICAgICAgICAweDAyLCAweDAyLCAweDAxLCAweDAxLCAweDAyLCAweDAzLCAweDgyLCAweDgw
LCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDA1LCAweDgzLCAweDgwLAotICAgICAg
ICAgICAgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwNywgMHg4ZiwgMHg4
MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwYiwgMHg2OSwgMHgzMywKLSAgICAgICAgICAg
IDB4MzIsIDB4NWYsIDB4NmMsIDB4NmYsIDB4NjEsIDB4NjQsIDB4MzgsIDB4NWYsIDB4NzMsIDB4
MDAsIDB4MDAsIDB4MGEsIDB4OTUsIDB4ODAsIDB4ODAsIDB4ODAsCi0gICAgICAgICAgICAweDAw
LCAweDAxLCAweDhmLCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAwLCAweDE0LCAweDAxLCAw
eDE0LCAweDAwLCAweDM0LCAweDAzLCAweDAwLCAweDE0LAotICAgICAgICAgICAgMHgwMSwgMHgy
YiwgMHgwMywgMHgwMCwgMHgwOSwgMHgwZgorICAgICAgICAgICAgMHg4MCwgMHg4MCwgMHgwMCwg
MHgwMSwgMHgwMSwgMHgwMSwgMHgwNywgMHg4NywgMHg4MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgw
MSwgMHgwMywgMHg2OSwgMHgzNiwKKyAgICAgICAgICAgIDB4MzQsIDB4MDAsIDB4MDAsIDB4MGEs
IDB4OTUsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4OGYsIDB4ODAsIDB4ODAsIDB4
ODAsIDB4MDAsIDB4MDAsCisgICAgICAgICAgICAweDE0LCAweDAxLCAweDE0LCAweDAwLCAweDM0
LCAweDAzLCAweDAwLCAweDE0LCAweDAxLCAweDJiLCAweDAzLCAweDAwLCAweDA5LCAweDBmCiAg
ICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYg
KHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQo
MCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNv
cnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hl
Y2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgog
ICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2lu
dCwgeyBib3goMCksIGJveCgxMCkgfSksIDApOwpAQCAtNTEwLDEwICs1MTIsNyBAQCBzdGF0aWMg
dm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0s
IHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgp
ICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVs
ZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwot
ICAgICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0
IHRoaXMgZG9lc24ndCBjcmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4u
cmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApLCBib3goMTApIH0pLCAwKTsKQEAgLTU1
MCwxMCArNTQ5LDcgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAog
ICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQo
KSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAg
ICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwot
ICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwg
MSk7CiAgICAgICAgIEFTU0VSVChwbGFuLm1lbW9yeSgpLT5zaXplKCkpOwogCiAgICAgICAgIC8v
IFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgpAQCAtNjA1LDEwICs2MDEsNyBAQCBzdGF0aWMgdm9p
ZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZl
Y3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9
IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBm
YWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAg
ICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKICAgICAgICAgQVNTRVJUKHBsYW4u
bWVtb3J5KCktPnNpemUoKSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2gu
CkBAIC02NDksMTAgKzY0Miw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAg
IH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4u
ZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsK
LSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3Rs
eS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFu
KHBsYW4sIDEpOwogICAgICAgICBBU1NFUlQocGxhbi5tZW1vcnkoKS0+c2l6ZSgpKTsKIAogICAg
ICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KQEAgLTY4MCwxMCArNjcwLDcgQEAgc3Rh
dGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4o
KnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNp
emUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJN
b2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0go
KTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8g
VGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpw
bGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgwKSB9KSwgMCk7CkBAIC03MTAsMTAg
KzY5Nyw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAg
ICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwg
cGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAg
IGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAg
ICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwog
CiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMCksIGJveCgx
MCkgfSksIDApOwpAQCAtNzQxLDEwICs3MjUsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMo
KQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAg
IGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVz
dWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGls
ZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAg
IGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFz
aC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5
UG9pbnQsIHsgYm94KDApLCBib3goMTApIH0pLCAwKTsKQEAgLTc4MSwxMCArNzYyLDcgQEAgc3Rh
dGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4o
KnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNp
emUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJN
b2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0go
KTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAgICAgICAgIEFTU0VS
VChwbGFuLm1lbW9yeSgpLT5zaXplKCkpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0
IGNyYXNoLgpAQCAtODM2LDEwICs4MTQsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQog
ICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlm
IChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0
KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBj
b3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAgIGNo
ZWNrUGxhbihwbGFuLCAxKTsKICAgICAgICAgQVNTRVJUKHBsYW4ubWVtb3J5KCktPnNpemUoKSk7
CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCkBAIC04ODAsMTAgKzg1NSw3
IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxh
biBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5y
ZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFM
b2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAg
IENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogICAgICAg
ICBBU1NFUlQocGxhbi5tZW1vcnkoKS0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMg
ZG9lc24ndCBjcmFzaC4KQEAgLTkxMSwxMCArODgzLDcgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRl
c3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAg
ICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFu
LnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNv
bXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAg
ICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3Qg
Y3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNF
bnRyeVBvaW50LCB7IGJveCgwKSB9KSwgMCk7CkBAIC05NDEsMTAgKzkxMCw3IEBAIHN0YXRpYyB2
b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwg
dmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkg
IT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxl
IGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0g
ICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3Qg
dGhpcyBkb2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5y
ZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMCksIGJveCgxKSB9KSwgMSk7CkBAIC05ODIs
MTAgKzk0OCw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIH07CiAKICAg
ICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAgaWYgKHBsYW4uZmFpbGVkKCkg
fHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1bHQoMCkpIHsKLSAgICAgICAg
ICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxlIGNvcnJlY3RseS4iKTsKLSAg
ICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEp
OwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgogICAgICAgICBDSEVDS19F
UShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMCksIGJv
eCgxKSB9KSwgMSk7CkBAIC0xMDA5LDEwICs5NzIsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVz
dHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAg
ICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4u
cmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29t
cGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAg
ICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBj
cmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0Vu
dHJ5UG9pbnQsIHsgfSksIDUpOwpAQCAtMTAzMCwxMCArOTkwLDcgQEAgc3RhdGljIHZvaWQgcnVu
V2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3Ip
OwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8
ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVk
IHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAg
fQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRv
ZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgw
KS0+anNFbnRyeVBvaW50LCB7IH0pLCAxMSk7CkBAIC0xMDUwLDEwICsxMDA3LDcgQEAgc3RhdGlj
IHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFuIHBsYW4oKnZt
LCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJlc3VsdFNpemUo
KSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1
bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAgQ1JBU0goKTsK
LSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVz
dCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFu
LnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IH0pLCAxMSk7CkBAIC0xMDcwLDEwICsxMDI0LDcg
QEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAgICAgICBQbGFu
IHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8fCBwbGFuLnJl
c3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAgICAgZGF0YUxv
Z0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAgICAgICAgICAg
Q1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAg
ICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IH0pLCAxMSk7CkBAIC0xMDg5LDEw
ICsxMDQwLDcgQEAgc3RhdGljIHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgfTsKIAogICAg
ICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOwotICAgICAgICBpZiAocGxhbi5mYWlsZWQoKSB8
fCBwbGFuLnJlc3VsdFNpemUoKSAhPSAxIHx8ICFwbGFuLnJlc3VsdCgwKSkgewotICAgICAgICAg
ICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFpbGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOwotICAg
ICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgfQorICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7
CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCiAgICAgICAgIENIRUNLX0VR
KGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgwKSwgYm94
KDEpIH0pLCAxKTsKQEAgLTExMTgsMTAgKzEwNjYsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVz
dHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAg
ICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4u
cmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29t
cGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAg
ICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBj
cmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0Vu
dHJ5UG9pbnQsIHsgYm94KDApIH0pLCAwKTsKQEAgLTExNTQsMTAgKzEwOTksNyBAQCBzdGF0aWMg
dm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAgIFBsYW4gcGxhbigqdm0s
IHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBsYW4ucmVzdWx0U2l6ZSgp
ICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVs
ZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwot
ICAgICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAogICAgICAgICAvLyBUZXN0
IHRoaXMgZG9lc24ndCBjcmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4u
cmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApIH0pLCAwKTsKQEAgLTExOTgsMTAgKzEx
NDAsNyBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICB9OwogCiAgICAgICAg
IFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7Ci0gICAgICAgIGlmIChwbGFuLmZhaWxlZCgpIHx8IHBs
YW4ucmVzdWx0U2l6ZSgpICE9IDEgfHwgIXBsYW4ucmVzdWx0KDApKSB7Ci0gICAgICAgICAgICBk
YXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7Ci0gICAgICAg
ICAgICBDUkFTSCgpOwotICAgICAgICB9CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKIAog
ICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApLCBib3goMSkg
fSksIDApOwpAQCAtMTI1MSwxMCArMTE5MCw3IEBAIHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygp
CiAgICAgICAgIH07CiAKICAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9yKTsKLSAgICAgICAg
aWYgKHBsYW4uZmFpbGVkKCkgfHwgcGxhbi5yZXN1bHRTaXplKCkgIT0gMSB8fCAhcGxhbi5yZXN1
bHQoMCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbigiTW9kdWxlIGZhaWxlZCB0byBjb21waWxl
IGNvcnJlY3RseS4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KKyAgICAgICAg
Y2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNo
LgogICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQ
b2ludCwgeyBib3goMCksIGJveCgxKSB9KSwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggYjVhYzdhNGQ0MTQ4MmFkNWQ3ZTAy
ZDdjYjZmMzg1MDMzMDljYTYzMC4uMDdiMzI5ZTlkY2Q0MzViYmRiZDc2YTA2MTg5Y2ZhOTczNjBm
NTY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcApAQCAtODcsNiArODcsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgewogICAgICAgICB9
CiAKKyAgICAgICAgTGF6eUJsb2NrKCkKKyAgICAgICAgeworICAgICAgICB9CisKICAgICAgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9ibG9jazsgfQogCiAg
ICAgICAgIEJhc2ljQmxvY2sqIGdldChQcm9jZWR1cmUmIHByb2MpCkBAIC0xMTgsNiArMTIyLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHByb2MuYWRkVmFyaWFi
bGUodG9CM1R5cGUoc2lnbmF0dXJlKSkpOwogICAgICAgICB9CiAKKyAgICAgICAgQ29udHJvbERh
dGEoKQorICAgICAgICB7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsK
QEAgLTE3Miw4ICsxODAsOCBAQCBwdWJsaWM6CiAKICAgICBCM0lSR2VuZXJhdG9yKE1lbW9yeSos
IFByb2NlZHVyZSYsIFZlY3RvcjxVbmxpbmtlZENhbGw+JiB1bmxpbmtlZENhbGxzKTsKIAotICAg
IHZvaWQgYWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBlPiYpOwotICAgIHZvaWQgYWRkTG9j
YWwoVHlwZSwgdWludDMyX3QpOworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEFyZ3Vt
ZW50cyhjb25zdCBWZWN0b3I8VHlwZT4mKTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBh
ZGRMb2NhbChUeXBlLCB1aW50MzJfdCk7CiAgICAgRXhwcmVzc2lvblR5cGUgYWRkQ29uc3RhbnQo
VHlwZSwgdWludDY0X3QpOwogCiAgICAgLy8gTG9jYWxzCkBAIC0xOTEsOCArMTk5LDggQEAgcHVi
bGljOgogICAgIC8vIENvbnRyb2wgZmxvdwogICAgIENvbnRyb2xEYXRhIFdBUk5fVU5VU0VEX1JF
VFVSTiBhZGRCbG9jayhUeXBlIHNpZ25hdHVyZSk7CiAgICAgQ29udHJvbERhdGEgV0FSTl9VTlVT
RURfUkVUVVJOIGFkZExvb3AoVHlwZSBzaWduYXR1cmUpOwotICAgIENvbnRyb2xEYXRhIFdBUk5f
VU5VU0VEX1JFVFVSTiBhZGRJZihFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIFR5cGUgc2lnbmF0
dXJlKTsKLSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRFbHNlKENvbnRyb2xEYXRhJik7
CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkSWYoRXhwcmVzc2lvblR5cGUgY29uZGl0
aW9uLCBUeXBlIHNpZ25hdHVyZSwgQ29udHJvbERhdGEmIHJlc3VsdCk7CisgICAgYm9vbCBXQVJO
X1VOVVNFRF9SRVRVUk4gYWRkRWxzZShDb250cm9sRGF0YSYsIGNvbnN0IEV4cHJlc3Npb25MaXN0
Jik7CiAKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRSZXR1cm4oY29uc3QgRXhwcmVz
c2lvbkxpc3QmIHJldHVyblZhbHVlcyk7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRk
QnJhbmNoKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBjb25zdCBFeHBy
ZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKQEAgLTI0NSwxNiArMjUzLDIyIEBAIEIzSVJHZW5l
cmF0b3I6OkIzSVJHZW5lcmF0b3IoTWVtb3J5KiBtZW1vcnksIFByb2NlZHVyZSYgcHJvY2VkdXJl
LCBWZWN0b3I8VW5saW5rCiAgICAgfQogfQogCi12b2lkIEIzSVJHZW5lcmF0b3I6OmFkZExvY2Fs
KFR5cGUgdHlwZSwgdWludDMyX3QgY291bnQpCitib29sIEIzSVJHZW5lcmF0b3I6OmFkZExvY2Fs
KFR5cGUgdHlwZSwgdWludDMyX3QgY291bnQpCiB7Ci0gICAgbV9sb2NhbHMucmVzZXJ2ZUNhcGFj
aXR5KG1fbG9jYWxzLnNpemUoKSArIGNvdW50KTsKKyAgICBpZiAoIW1fbG9jYWxzLnRyeVJlc2Vy
dmVDYXBhY2l0eShtX2xvY2Fscy5zaXplKCkgKyBjb3VudCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICBt
X2xvY2Fscy5hcHBlbmQobV9wcm9jLmFkZFZhcmlhYmxlKHRvQjNUeXBlKHR5cGUpKSk7CisgICAg
ICAgIG1fbG9jYWxzLnVuY2hlY2tlZEFwcGVuZChtX3Byb2MuYWRkVmFyaWFibGUodG9CM1R5cGUo
dHlwZSkpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBCM0lSR2VuZXJhdG9yOjphZGRB
cmd1bWVudHMoY29uc3QgVmVjdG9yPFR5cGU+JiB0eXBlcykKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6
YWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBlPiYgdHlwZXMpCiB7CiAgICAgQVNTRVJUKCFt
X2xvY2Fscy5zaXplKCkpOworICAgIGlmICghbV9sb2NhbHMudHJ5UmVzZXJ2ZUNhcGFjaXR5KHR5
cGVzLnNpemUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIG1fbG9jYWxzLmdyb3co
dHlwZXMuc2l6ZSgpKTsKICAgICB3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5sb2FkQXJndW1lbnRz
KHR5cGVzLCBtX3Byb2MsIG1fY3VycmVudEJsb2NrLCBPcmlnaW4oKSwKICAgICAgICAgWyZdIChF
eHByZXNzaW9uVHlwZSBhcmd1bWVudCwgdW5zaWduZWQgaSkgewpAQCAtMjYyLDYgKzI3Niw3IEBA
IHZvaWQgQjNJUkdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBlPiYgdHlw
ZXMpCiAgICAgICAgICAgICBtX2xvY2Fsc1tpXSA9IGFyZ3VtZW50VmFyaWFibGU7CiAgICAgICAg
ICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0
LCBPcmlnaW4oKSwgYXJndW1lbnRWYXJpYWJsZSwgYXJndW1lbnQpOwogICAgICAgICB9KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBCM0lSR2VuZXJhdG9yOjpnZXRMb2NhbCh1aW50MzJf
dCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkKQEAgLTQ5Myw3ICs1MDgsNyBAQCBCM0lS
R2VuZXJhdG9yOjpDb250cm9sRGF0YSBCM0lSR2VuZXJhdG9yOjphZGRMb29wKFR5cGUgc2lnbmF0
dXJlKQogICAgIHJldHVybiBDb250cm9sRGF0YShtX3Byb2MsIHNpZ25hdHVyZSwgYm9keSk7CiB9
CiAKLUIzSVJHZW5lcmF0b3I6OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZElmKEV4cHJl
c3Npb25UeXBlIGNvbmRpdGlvbiwgVHlwZSBzaWduYXR1cmUpCitib29sIEIzSVJHZW5lcmF0b3I6
OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgVHlwZSBzaWduYXR1cmUsIENvbnRyb2xU
eXBlJiByZXN1bHQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gZG8gc29tZSBraW5k
IG9mIHN0YWNrIHBhc3NpbmcuCiAKQEAgLTUwNywxMCArNTIyLDExIEBAIEIzSVJHZW5lcmF0b3I6
OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlv
biwgVHlwZSBzCiAgICAgbm90VGFrZW4tPmFkZFByZWRlY2Vzc29yKG1fY3VycmVudEJsb2NrKTsK
IAogICAgIG1fY3VycmVudEJsb2NrID0gdGFrZW47Ci0gICAgcmV0dXJuIENvbnRyb2xEYXRhKG1f
cHJvYywgc2lnbmF0dXJlLCBub3RUYWtlbiwgY29udGludWF0aW9uKTsKKyAgICByZXN1bHQgPSBD
b250cm9sRGF0YShtX3Byb2MsIHNpZ25hdHVyZSwgbm90VGFrZW4sIGNvbnRpbnVhdGlvbik7Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQjNJUkdlbmVyYXRvcjo6YWRkRWxzZShDb250cm9s
RGF0YSYgZGF0YSkKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6YWRkRWxzZShDb250cm9sRGF0YSYgZGF0
YSwgY29uc3QgRXhwcmVzc2lvbkxpc3QmKQogewogICAgIEFTU0VSVChkYXRhLmNvbnRpbnVhdGlv
bik7CiAgICAgbV9jdXJyZW50QmxvY2sgPSBkYXRhLnNwZWNpYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZGM4MDAwZjI5Zjk0MzNhNTRm
ZWYzODBhY2U2YjczZmRkMzY2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldhc21Gb3JtYXQuaCIKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworY29uc3QgY2hhciogdG9TdHJpbmcoVHlwZSB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgVm9pZDoKKyAgICAgICAgcmV0
dXJuICJ2b2lkIjsKKyAgICBjYXNlIEkzMjoKKyAgICAgICAgcmV0dXJuICJpMzIiOworICAgIGNh
c2UgSTY0OgorICAgICAgICByZXR1cm4gImk2NCI7CisgICAgY2FzZSBGMzI6CisgICAgICAgIHJl
dHVybiAiZjMyIjsKKyAgICBjYXNlIEY2NDoKKyAgICAgICAgcmV0dXJuICJmNjQiOworICAgIH0K
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KKworI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggN2ViNWIxYWRk
OTcyODg3NzU4NWY1ZGViN2VkZWZjY2EwYTIzYmI4YS4uODI4NmFlZjNhZWZjMTJhNWQxZmRkNDlm
ZGNlNGNlOTUwMzU1NGIxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQu
aApAQCAtOTcsNiArOTcsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitjb25zdCBjaGFyKiB0b1N0cmluZyhUeXBlKTsKIAogc3Ry
dWN0IFNpZ25hdHVyZSB7CiAgICAgVHlwZSByZXR1cm5UeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAppbmRleCA1MWUyZjhiNzhiMTdjMmI5
ZDhhZmE5NDZjNDFiZWNkOGU3NzIwNTA2Li42ZTBmMmIxNGQwNTZmYjljODdhNDMyMzE5YjU2Nzg4
NTJmMzNhZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVu
Y3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rp
b25QYXJzZXIuaApAQCAtNzMsMTIgKzczLDE0IEBAIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpG
dW5jdGlvblBhcnNlcihDb250ZXh0JiBjb250ZXh0LCBjb25zdCB1aW50OF90KiBmdW5jdGlvCiB7
CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2dMbigiUGFyc2luZyBmdW5jdGlvbiBz
dGFydGluZyBhdDogIiwgKHVpbnRwdHJfdClmdW5jdGlvblN0YXJ0LCAiIG9mIGxlbmd0aDogIiwg
ZnVuY3Rpb25MZW5ndGgpOwotICAgIG1fY29udGV4dC5hZGRBcmd1bWVudHMobV9zaWduYXR1cmUt
PmFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRleHQ+CiBib29sIEZ1bmN0
aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZSgpCiB7CisgICAgaWYgKCFtX2NvbnRleHQuYWRkQXJn
dW1lbnRzKG1fc2lnbmF0dXJlLT5hcmd1bWVudHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICB1aW50MzJfdCBsb2NhbENvdW50OwogICAgIGlmICghcGFyc2VWYXJVSW50MzIobG9jYWxD
b3VudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkyLDcgKzk0LDggQEAgYm9vbCBGdW5j
dGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2UoKQogICAgICAgICBpZiAoIXBhcnNlVmFsdWVUeXBl
KHR5cGVPZkxvY2FsKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBtX2Nv
bnRleHQuYWRkTG9jYWwodHlwZU9mTG9jYWwsIG51bWJlck9mTG9jYWxzKTsKKyAgICAgICAgaWYg
KCFtX2NvbnRleHQuYWRkTG9jYWwodHlwZU9mTG9jYWwsIG51bWJlck9mTG9jYWxzKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICByZXR1cm4gcGFyc2VCbG9jaygpOwpA
QCAtMjgyLDEyICsyODUsMTYgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VF
eHByZXNzaW9uKE9wVHlwZSBvcCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24gPSBtX2V4cHJlc3Npb25TdGFjay50YWtlTGFzdCgp
OwotICAgICAgICBtX2NvbnRyb2xTdGFjay5hcHBlbmQobV9jb250ZXh0LmFkZElmKGNvbmRpdGlv
biwgaW5saW5lU2lnbmF0dXJlKSk7CisgICAgICAgIENvbnRyb2xUeXBlIGNvbnRyb2w7CisgICAg
ICAgIGlmICghbV9jb250ZXh0LmFkZElmKGNvbmRpdGlvbiwgaW5saW5lU2lnbmF0dXJlLCBjb250
cm9sKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBtX2NvbnRyb2xTdGFj
ay5hcHBlbmQoY29udHJvbCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGNh
c2UgT3BUeXBlOjpFbHNlOiB7Ci0gICAgICAgIHJldHVybiBtX2NvbnRleHQuYWRkRWxzZShtX2Nv
bnRyb2xTdGFjay5sYXN0KCkpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LmFkZEVsc2UobV9j
b250cm9sU3RhY2subGFzdCgpLCBtX2V4cHJlc3Npb25TdGFjayk7CiAgICAgfQogCiAgICAgY2Fz
ZSBPcFR5cGU6OkJyOgpAQCAtMzQ5LDcgKzM1Niw3IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29u
dGV4dD46OnBhcnNlVW5yZWFjaGFibGVFeHByZXNzaW9uKE9wVHlwZSBvcCkKICAgICAgICAgQ29u
dHJvbFR5cGUmIGRhdGEgPSBtX2NvbnRyb2xTdGFjay5sYXN0KCk7CiAgICAgICAgIEFTU0VSVChk
YXRhLnR5cGUoKSA9PSBCbG9ja1R5cGU6OklmKTsKICAgICAgICAgbV91bnJlYWNoYWJsZUJsb2Nr
cyA9IDA7Ci0gICAgICAgIHJldHVybiBtX2NvbnRleHQuYWRkRWxzZShkYXRhKTsKKyAgICAgICAg
cmV0dXJuIG1fY29udGV4dC5hZGRFbHNlKGRhdGEsIG1fZXhwcmVzc2lvblN0YWNrKTsKICAgICB9
CiAKICAgICBjYXNlIE9wVHlwZTo6RW5kOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
UGxhbi5jcHAKaW5kZXggZjljOGE1NDU5ZjJiYTg2ZjQ5ZWVjMWUzZGIwN2I1ZTQ4OTZiOTcxOS4u
NzM5YmU0MjUzYzBlNGE3NGIzZWQ5MTA3ZWI3N2MyNTE3ZTA1NzljNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldh
c21CM0lSR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxpbmdDb252ZW50aW9uLmgiCiAj
aW5jbHVkZSAiV2FzbU1vZHVsZVBhcnNlci5oIgorI2luY2x1ZGUgIldhc21WYWxpZGF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2Fz
bSB7CkBAIC02Myw2ICs2NCwxMyBAQCBQbGFuOjpQbGFuKFZNJiB2bSwgY29uc3QgdWludDhfdCog
c291cmNlLCBzaXplX3Qgc291cmNlTGVuZ3RoKQogICAgICAgICBjb25zdCB1aW50OF90KiBmdW5j
dGlvblN0YXJ0ID0gc291cmNlICsgaW5mby5zdGFydDsKICAgICAgICAgc2l6ZV90IGZ1bmN0aW9u
TGVuZ3RoID0gaW5mby5lbmQgLSBpbmZvLnN0YXJ0OwogICAgICAgICBBU1NFUlQoZnVuY3Rpb25M
ZW5ndGggPD0gc291cmNlTGVuZ3RoKTsKKworICAgICAgICBTdHJpbmcgZXJyb3IgPSB2YWxpZGF0
ZUZ1bmN0aW9uKGZ1bmN0aW9uU3RhcnQsIGZ1bmN0aW9uTGVuZ3RoLCBpbmZvLnNpZ25hdHVyZSwg
bW9kdWxlUGFyc2VyLmZ1bmN0aW9uSW5mb3JtYXRpb24oKSk7CisgICAgICAgIGlmICghZXJyb3Iu
aXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3I7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBtX3Jlc3VsdC5hcHBlbmQocGFyc2VB
bmRDb21waWxlKHZtLCBmdW5jdGlvblN0YXJ0LCBmdW5jdGlvbkxlbmd0aCwgbW9kdWxlUGFyc2Vy
Lm1lbW9yeSgpLmdldCgpLCBpbmZvLnNpZ25hdHVyZSwgbW9kdWxlUGFyc2VyLmZ1bmN0aW9uSW5m
b3JtYXRpb24oKSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbVZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21W
YWxpZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY5N2U0NDhmMTgyNDM4MjI3ODY1MzhhNzY2YmFiZTlm
Y2U1ZmExYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21WYWxpZGF0ZS5jcHAKQEAgLTAsMCArMSwzMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Fz
bVZhbGlkYXRlLmgiCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJXYXNt
RnVuY3Rpb25QYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisK
K25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CisKK2NsYXNzIFZhbGlkYXRlIHsKK3B1
YmxpYzoKKyAgICBjbGFzcyBDb250cm9sRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBDb250
cm9sRGF0YShCbG9ja1R5cGUgdHlwZSwgVHlwZSBzaWduYXR1cmUpCisgICAgICAgICAgICA6IG1f
YmxvY2tUeXBlKHR5cGUpCisgICAgICAgICAgICAsIG1fc2lnbmF0dXJlKHNpZ25hdHVyZSkKKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgQ29udHJvbERhdGEoKQorICAgICAgICB7Cisg
ICAgICAgIH0KKworICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKKyAg
ICAgICAgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2Ug
QmxvY2tUeXBlOjpJZjoKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIklmOiAgICAiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlOjpCbG9jazoK
KyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIkJsb2NrOiAiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlOjpMb29wOgorICAgICAgICAgICAgICAg
IG91dC5wcmludCgiTG9vcDogICIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgQmxvY2tUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX2Jsb2NrVHlwZTsgfQorICAgICAgICBUeXBlIHNpZ25hdHVyZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2lnbmF0dXJlOyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgQmxvY2tUeXBlIG1fYmxvY2tU
eXBlOworICAgICAgICBUeXBlIG1fc2lnbmF0dXJlOworICAgIH07CisgICAgdHlwZWRlZiBUeXBl
IEV4cHJlc3Npb25UeXBlOworICAgIHR5cGVkZWYgQ29udHJvbERhdGEgQ29udHJvbFR5cGU7Cisg
ICAgdHlwZWRlZiBWZWN0b3I8RXhwcmVzc2lvblR5cGUsIDE+IEV4cHJlc3Npb25MaXN0OworICAg
IHN0YXRpYyBjb25zdCBFeHByZXNzaW9uVHlwZSBlbXB0eUV4cHJlc3Npb24gPSBWb2lkOworCisg
ICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQXJndW1lbnRzKGNvbnN0IFZlY3RvcjxUeXBl
PiYpOworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZExvY2FsKFR5cGUsIHVpbnQzMl90
KTsKKyAgICBFeHByZXNzaW9uVHlwZSBhZGRDb25zdGFudChUeXBlIHR5cGUsIHVpbnQ2NF90KSB7
IHJldHVybiB0eXBlOyB9CisKKyAgICAvLyBMb2NhbHMKKyAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiBnZXRMb2NhbCh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCk7Cisg
ICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gc2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJl
c3Npb25UeXBlIHZhbHVlKTsKKworICAgIC8vIE1lbW9yeQorICAgIGJvb2wgV0FSTl9VTlVTRURf
UkVUVVJOIGxvYWQoTG9hZE9wVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCwgdWludDMyX3Qgb2Zmc2V0KTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiBzdG9yZShTdG9yZU9wVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lv
blR5cGUgdmFsdWUsIHVpbnQzMl90IG9mZnNldCk7CisKKyAgICAvLyBCYXNpYyBvcGVyYXRvcnMK
KyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBiaW5hcnlPcChCaW5hcnlPcFR5cGUsIEV4cHJl
c3Npb25UeXBlIGxlZnQsIEV4cHJlc3Npb25UeXBlIHJpZ2h0LCBFeHByZXNzaW9uVHlwZSYgcmVz
dWx0KTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiB1bmFyeU9wKFVuYXJ5T3BUeXBlLCBF
eHByZXNzaW9uVHlwZSBhcmcsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworCisgICAgLy8gQ29u
dHJvbCBmbG93CisgICAgQ29udHJvbERhdGEgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEJsb2NrKFR5
cGUgc2lnbmF0dXJlKTsKKyAgICBDb250cm9sRGF0YSBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkTG9v
cChUeXBlIHNpZ25hdHVyZSk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkSWYoRXhw
cmVzc2lvblR5cGUgY29uZGl0aW9uLCBUeXBlIHNpZ25hdHVyZSwgQ29udHJvbERhdGEmIHJlc3Vs
dCk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkRWxzZShDb250cm9sRGF0YSYsIGNv
bnN0IEV4cHJlc3Npb25MaXN0Jik7CisKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRS
ZXR1cm4oY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcyk7CisgICAgYm9vbCBXQVJO
X1VOVVNFRF9SRVRVUk4gYWRkQnJhbmNoKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvblR5cGUgY29u
ZGl0aW9uLCBjb25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKKyAgICBib29sIFdB
Uk5fVU5VU0VEX1JFVFVSTiBlbmRCbG9jayhDb250cm9sRGF0YSYsIEV4cHJlc3Npb25MaXN0JiBl
eHByZXNzaW9uU3RhY2spOworCisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQ2FsbCh1
bnNpZ25lZCBjYWxsZWVJbmRleCwgY29uc3QgRnVuY3Rpb25JbmZvcm1hdGlvbiYsIGNvbnN0IFZl
Y3RvcjxFeHByZXNzaW9uVHlwZT4mIGFyZ3MsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpOworICAg
IGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGlzQ29udGludWF0aW9uUmVhY2hhYmxlKENvbnRyb2xE
YXRhJikgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdm9pZCBkdW1wKGNvbnN0IFZlY3RvcjxDb250
cm9sVHlwZT4mIGNvbnRyb2xTdGFjaywgY29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25T
dGFjayk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
ck1lc3NhZ2U7IH0KKyAgICBWYWxpZGF0ZShFeHByZXNzaW9uVHlwZSByZXR1cm5UeXBlKQorICAg
ICAgICA6IG1fcmV0dXJuVHlwZShyZXR1cm5UeXBlKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgYm9vbCB1bmlmeShUeXBlLCBUeXBlKTsKKyAgICBib29sIHVuaWZ5KGNvbnN0IEV4cHJl
c3Npb25MaXN0JiwgY29uc3QgQ29udHJvbERhdGEmKTsKKworICAgIEV4cHJlc3Npb25UeXBlIG1f
cmV0dXJuVHlwZTsKKyAgICBWZWN0b3I8VHlwZT4gbV9sb2NhbHM7CisgICAgU3RyaW5nIG1fZXJy
b3JNZXNzYWdlOworfTsKKworYm9vbCBWYWxpZGF0ZTo6YWRkQXJndW1lbnRzKGNvbnN0IFZlY3Rv
cjxUeXBlPiYgYXJncykKK3sKKyAgICBmb3IgKFR5cGUgYXJnIDogYXJncykgeworICAgICAgICBp
ZiAoIWFkZExvY2FsKGFyZywgMSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZhbGlkYXRlOjphZGRMb2NhbChUeXBlIHR5cGUs
IHVpbnQzMl90IGNvdW50KQoreworICAgIGlmICghbV9sb2NhbHMudHJ5UmVzZXJ2ZUNhcGFjaXR5
KG1fbG9jYWxzLnNpemUoKSArIGNvdW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Zm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgIG1fbG9jYWxzLnVu
Y2hlY2tlZEFwcGVuZCh0eXBlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBWYWxpZGF0
ZTo6Z2V0TG9jYWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpCit7Cisg
ICAgaWYgKGluZGV4IDwgbV9sb2NhbHMuc2l6ZSgpKSB7CisgICAgICAgIHJlc3VsdCA9IG1fbG9j
YWxzW2luZGV4XTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1fZXJyb3JNZXNz
YWdlID0gQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIHVzZSB1bmtub3duIGxvY2FsLiIpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6c2V0TG9jYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKQoreworICAgIEV4cHJlc3Npb25UeXBlIGxvY2FsVHlw
ZTsKKyAgICBpZiAoIWdldExvY2FsKGluZGV4LCBsb2NhbFR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAobG9jYWxUeXBlID09IHZhbHVlKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQXR0ZW1wdCB0byBzZXQgbG9j
YWwgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhsb2NhbFR5cGUpLCAiIHdpdGggYSB2YXJpYWJsZSBv
ZiB0eXBlOiAiLCB0b1N0cmluZyh2YWx1ZSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKworVmFs
aWRhdGU6OkNvbnRyb2xUeXBlIFZhbGlkYXRlOjphZGRCbG9jayhUeXBlIHNpZ25hdHVyZSkKK3sK
KyAgICByZXR1cm4gQ29udHJvbERhdGEoQmxvY2tUeXBlOjpCbG9jaywgc2lnbmF0dXJlKTsKK30K
KworVmFsaWRhdGU6OkNvbnRyb2xUeXBlIFZhbGlkYXRlOjphZGRMb29wKFR5cGUgc2lnbmF0dXJl
KQoreworICAgIHJldHVybiBDb250cm9sRGF0YShCbG9ja1R5cGU6Okxvb3AsIHNpZ25hdHVyZSk7
Cit9CisKK2Jvb2wgVmFsaWRhdGU6OmFkZElmKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgVHlw
ZSBzaWduYXR1cmUsIENvbnRyb2xUeXBlJiByZXN1bHQpCit7CisgICAgaWYgKGNvbmRpdGlvbiAh
PSBJMzIpIHsKKyAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5n
IHRvIHVzZSAiLCB0b1N0cmluZyhjb25kaXRpb24pLCAiIGFzIHRoZSBjb25kaXRpb24gZm9yIGFu
IGlmIGJsb2NrIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmVzdWx0ID0g
Q29udHJvbERhdGEoQmxvY2tUeXBlOjpJZiwgc2lnbmF0dXJlKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBWYWxpZGF0ZTo6YWRkRWxzZShDb250cm9sVHlwZSYgY3VycmVudCwgY29uc3Qg
RXhwcmVzc2lvbkxpc3QmIHZhbHVlcykKK3sKKyAgICBpZiAoY3VycmVudC50eXBlKCkgIT0gQmxv
Y2tUeXBlOjpJZikgeworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkF0dGVt
cHRpbmcgdG8gYWRkIGVsc2UgYmxvY2sgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gaWYiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghdW5pZnkodmFsdWVzLCBj
dXJyZW50KSkgeworICAgICAgICBBU1NFUlQoZXJyb3JNZXNzYWdlKCkpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgY3VycmVudCA9IENvbnRyb2xEYXRhKEJsb2NrVHlwZTo6
QmxvY2ssIGN1cnJlbnQuc2lnbmF0dXJlKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IFZhbGlkYXRlOjphZGRSZXR1cm4oY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcykK
K3sKKyAgICBpZiAobV9yZXR1cm5UeXBlID09IFZvaWQpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIEFTU0VSVChyZXR1cm5WYWx1ZXMuc2l6ZSgpID09IDEpOworCisgICAgaWYgKG1fcmV0dXJu
VHlwZSA9PSByZXR1cm5WYWx1ZXNbMF0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgbV9l
cnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGFkZCByZXR1cm4gd2l0aCB0
eXBlOiAiLCB0b1N0cmluZyhyZXR1cm5WYWx1ZXNbMF0pLCAiIGJ1dCBmdW5jdGlvbiBleHBlY3Rz
IHJldHVybiB3aXRoIHR5cGU6ICIsIHRvU3RyaW5nKG1fcmV0dXJuVHlwZSkpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6YWRkQnJhbmNoKENvbnRyb2xUeXBlJiB0YXJn
ZXQsIEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIHN0YWNr
KQoreworICAgIC8vIFZvaWQgbWVhbnMgdGhpcyBpcyBub3QgYSBjb25kaXRpb25hbCBicmFuY2gu
CisgICAgaWYgKGNvbmRpdGlvbiAhPSBWb2lkICYmIGNvbmRpdGlvbiAhPSBJMzIpIHsKKyAgICAg
ICAgbV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGNvbmRp
dGlvbmFsIGJyYW5jaCB3aXRoIGNvbmRpdGlvbiB0eXBlOiAiLCB0b1N0cmluZyhjb25kaXRpb24p
LCAiIGJ1dCBleHBlY3RlZCBpMzIuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICBpZiAodGFyZ2V0LnR5cGUoKSA9PSBCbG9ja1R5cGU6OklmKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmICh0YXJnZXQuc2lnbmF0dXJlKCkgPT0gVm9pZCkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBBU1NFUlQoc3RhY2suc2l6ZSgpID09IDEpOworICAgIGlmICh0YXJn
ZXQuc2lnbmF0dXJlKCkgPT0gc3RhY2tbMF0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
bV9lcnJvck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGJyYW5jaCB0byBibG9j
ayB3aXRoIGV4cGVjdGVkIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSksICIg
YnV0IGJyYW5jaGluZyB3aXRoIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSkp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBWYWxpZGF0ZTo6ZW5kQmxvY2soQ29udHJv
bFR5cGUmIGJsb2NrLCBFeHByZXNzaW9uTGlzdCYgc3RhY2spCit7CisgICAgaWYgKGJsb2NrLnNp
Z25hdHVyZSgpID09IFZvaWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisKKyAgICBBU1NFUlQo
c3RhY2suc2l6ZSgpID09IDEpOworICAgIGlmIChibG9jay5zaWduYXR1cmUoKSA9PSBzdGFja1sw
XSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJp
bmcoIkJsb2NrIGZhbGx0aHJvdWdoIGhhcyBleHBlY3RlZCB0eXBlOiAiLCB0b1N0cmluZyhibG9j
ay5zaWduYXR1cmUoKSksICIgYnV0IHByb2R1Y2VkIHR5cGU6ICIsIHRvU3RyaW5nKGJsb2NrLnNp
Z25hdHVyZSgpKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFZhbGlkYXRlOjphZGRD
YWxsKHVuc2lnbmVkLCBjb25zdCBGdW5jdGlvbkluZm9ybWF0aW9uJiBpbmZvLCBjb25zdCBWZWN0
b3I8RXhwcmVzc2lvblR5cGU+JiBhcmdzLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQoreworICAg
IGlmIChpbmZvLnNpZ25hdHVyZS0+YXJndW1lbnRzLnNpemUoKSAhPSBhcmdzLnNpemUoKSkgewor
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJB
cml0eSBtaXNtYXRjaCBpbiBjYWxsLCBleHBlY3RlZDogIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGluZm8uc2lnbmF0dXJlLT5hcmd1bWVudHMuc2l6ZSgpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiBidXQgZ290OiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
YXJncy5zaXplKCkpOworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBhcmdzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChhcmdzW2ldICE9IGluZm8u
c2lnbmF0dXJlLT5hcmd1bWVudHNbaV0pIHsKKyAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0g
bWFrZVN0cmluZygiRXhwZWN0ZWQgYXJndW1lbnQgdHlwZTogIiwgdG9TdHJpbmcoaW5mby5zaWdu
YXR1cmUtPmFyZ3VtZW50c1tpXSksICIgZG9lcyBub3QgbWF0Y2ggcGFzc2VkIGFyZ3VtZW50IHR5
cGU6ICIsIHRvU3RyaW5nKGFyZ3NbaV0pKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHJlc3VsdCA9IGluZm8uc2lnbmF0dXJlLT5yZXR1cm5UeXBl
OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZhbGlkYXRlOjp1bmlmeShjb25zdCBFeHBy
ZXNzaW9uTGlzdCYgdmFsdWVzLCBjb25zdCBDb250cm9sVHlwZSYgYmxvY2spCit7CisgICAgQVNT
RVJUKHZhbHVlcy5zaXplKCkgPD0gMSk7CisgICAgaWYgKGJsb2NrLnNpZ25hdHVyZSgpID09IFZv
aWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCF2YWx1ZXMuc2l6ZSgpKSB7Cisg
ICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2sgaGFzIG5vbi12b2lkIHNp
Z25hdHVyZSBidXQgaGFzIG5vIHN0YWNrIGVudHJpZXMgb24gZXhpdCIpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHZhbHVlc1swXSA9PSBibG9jay5zaWduYXR1cmUo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJp
bmcoIkV4cGVjdGVkIGNvbnRyb2wgZmxvdyB0byByZXR1cm4gdmFsdWUgd2l0aCB0eXBlOiAiLCB0
b1N0cmluZyhibG9jay5zaWduYXR1cmUoKSksICIgYnV0IGdvdCB2YWx1ZSB3aXRoIHR5cGU6ICIs
IHRvU3RyaW5nKHZhbHVlc1swXSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBWYWxp
ZGF0ZTo6ZHVtcChjb25zdCBWZWN0b3I8Q29udHJvbFR5cGU+JiwgY29uc3QgRXhwcmVzc2lvbkxp
c3QmKQoreworICAgIGRhdGFMb2dMbigiVmFsaWRhdGluZyIpOworfQorCitTdHJpbmcgdmFsaWRh
dGVGdW5jdGlvbihjb25zdCB1aW50OF90KiBzb3VyY2UsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFNp
Z25hdHVyZSogc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8RnVuY3Rpb25JbmZvcm1hdGlvbj4mIGZ1
bmN0aW9ucykKK3sKKyAgICBWYWxpZGF0ZSBjb250ZXh0KHNpZ25hdHVyZS0+cmV0dXJuVHlwZSk7
CisgICAgRnVuY3Rpb25QYXJzZXI8VmFsaWRhdGU+IHZhbGlkYXRvcihjb250ZXh0LCBzb3VyY2Us
IGxlbmd0aCwgc2lnbmF0dXJlLCBmdW5jdGlvbnMpOworICAgIGlmICghdmFsaWRhdG9yLnBhcnNl
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IGFkZCBiZXR0ZXIgbG9jYXRpb24gaW5mb3JtYXRpb24g
aGVyZS4gc2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0Mjg4
CisgICAgICAgIHJldHVybiBjb250ZXh0LmVycm9yTWVzc2FnZSgpOworICAgIH0KKworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KKworI2luY2x1
ZGUgIldhc21WYWxpZGF0ZUlubGluZXMuaCIKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzYxMjRmMDk2N2FhYmZhNmRhZjIxMjZmZDgwMDJlYzNhMTE3ZTQxNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5oCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKworI2luY2x1ZGUgIldhc21Gb3Jt
YXQuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKKworU3RyaW5nIHZhbGlk
YXRlRnVuY3Rpb24oY29uc3QgdWludDhfdCosIHNpemVfdCwgY29uc3QgU2lnbmF0dXJlKiwgY29u
c3QgVmVjdG9yPEZ1bmN0aW9uSW5mb3JtYXRpb24+Jik7CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpXYXNtCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIu
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGlu
ZXNIZWFkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1YjNmODRkMzE3YTg5Nzk2YWQ2OTFiNjMwNGZkYzkx
YmZmYWMyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dl
bmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQpAQCAtMCwwICsxLDE3NCBAQAorIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
IyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBU
aGlzIHRvb2wgaGFzIGEgY291cGxlIG9mIGhlbHBmdWwgbWFjcm9zIHRvIHByb2Nlc3MgV2FzbSBm
aWxlcyBmcm9tIHRoZSB3YXNtLmpzb24uCisKK2Zyb20gZ2VuZXJhdGVXYXNtIGltcG9ydCAqCitp
bXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBzeXMKKworcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFy
c2VyKHVzYWdlPSJ1c2FnZTogJXByb2cgPHdhc20uanNvbj4gPFdhc21PcHMuaD4iKQorKG9wdGlv
bnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3Moc3lzLmFyZ3ZbMDpdKQoraWYgbGVuKGFyZ3Mp
ICE9IDM6CisgICAgcGFyc2VyLmVycm9yKHBhcnNlci51c2FnZSkKKword2FzbSA9IFdhc20oYXJn
c1swXSwgYXJnc1sxXSkKK29wY29kZXMgPSB3YXNtLm9wY29kZXMKK3dhc21WYWxpZGF0ZUlubGlu
ZXNIRmlsZSA9IG9wZW4oYXJnc1syXSwgInciKQorCisKK2RlZiBjcHBUeXBlKG5hbWUpOgorICAg
IHJlc3VsdCA9IHsKKyAgICAgICAgImJvb2wiOiAiSTMyIiwKKyAgICAgICAgImFkZHIiOiAiSTMy
IiwKKyAgICAgICAgImkzMiI6ICJJMzIiLAorICAgICAgICAiaTY0IjogIkk2NCIsCisgICAgICAg
ICJmMzIiOiAiRjMyIiwKKyAgICAgICAgImY2NCI6ICJGNjQiLAorICAgIH0uZ2V0KG5hbWUsIE5v
bmUpCisgICAgaWYgcmVzdWx0ID09IE5vbmU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVu
a25vd24gdHlwZSBuYW1lOiAiICsgbmFtZSkKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIHRv
Q3BwKG5hbWUpOgorICAgIHJldHVybiB3YXNtLnRvQ3BwKG5hbWUpCisKKworZGVmIHVuYXJ5TWFj
cm8obmFtZSk6CisgICAgb3AgPSBvcGNvZGVzW25hbWVdCisgICAgcmV0dXJuICIiIgorICAgIGNh
c2UgVW5hcnlPcFR5cGU6OiIiIiArIHRvQ3BwKG5hbWUpICsgIiIiOiB7CisgICAgICAgIGlmICh2
YWx1ZSAhPSAiIiIgKyBjcHBUeXBlKG9wWyJwYXJhbWV0ZXIiXVswXSkgKyAiIiIpIHsKKyAgICAg
ICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZyhcIiIiIiArIG5hbWUgKyAiIiIgZXhw
ZWN0cyB0aGUgdmFsdWUgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmcoIiIiICsgY3BwVHlwZShv
cFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFsdWUgd2l0aCB0eXBlOiAi
LCB0b1N0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisKKyAgICAgICAgcmVzdWx0ID0gIiIiICsgY3BwVHlwZShvcFsicmV0dXJuIl1bMF0pICsgIiIi
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IiIiCisKKworZGVmIGJpbmFyeU1hY3JvKG5h
bWUpOgorICAgIG9wID0gb3Bjb2Rlc1tuYW1lXQorICAgIHJldHVybiAiIiIKKyAgICBjYXNlIEJp
bmFyeU9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsKKyAgICAgICAgaWYgKGxlZnQg
IT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSB7CisgICAgICAgICAg
ICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIgKyBuYW1lICsgIiIiIGV4cGVjdHMg
dGhlIGxlZnQgdmFsdWUgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJpbmcoIiIiICsgY3BwVHlwZShv
cFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEgdmFsdWUgd2l0aCB0eXBlOiAi
LCB0b1N0cmluZyhsZWZ0KSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KworICAgICAgICBpZiAocmlnaHQgIT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMV0p
ICsgIiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIg
KyBuYW1lICsgIiIiIGV4cGVjdHMgdGhlIHJpZ2h0IHZhbHVlIHRvIGJlIG9mIHR5cGU6ICIsIHRv
U3RyaW5nKCIiIiArIGNwcFR5cGUob3BbInBhcmFtZXRlciJdWzBdKSArICIiIiksICIgYnV0IGdv
dCBhIHZhbHVlIHdpdGggdHlwZTogIiwgdG9TdHJpbmcocmlnaHQpKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9ICIiIiArIGNwcFR5cGUo
b3BbInJldHVybiJdWzBdKSArICIiIjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSIiIgor
CisKK2RlZiBsb2FkTWFjcm8obmFtZSk6CisgICAgb3AgPSBvcGNvZGVzW25hbWVdCisgICAgcmV0
dXJuICIiIgorICAgIGNhc2UgTG9hZE9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsK
KyAgICAgICAgaWYgKHBvaW50ZXIgIT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0p
ICsgIiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIg
KyBuYW1lICsgIiIiIGV4cGVjdHMgdGhlIHBvaW50ZXIgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJp
bmcoIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEg
dmFsdWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhwb2ludGVyKSk7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSAiIiIgKyBjcHBUeXBlKG9w
WyJyZXR1cm4iXVswXSkgKyAiIiI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0iIiIKKwor
CitkZWYgc3RvcmVNYWNybyhuYW1lKToKKyAgICBvcCA9IG9wY29kZXNbbmFtZV0KKyAgICByZXR1
cm4gIiIiCisgICAgY2FzZSBTdG9yZU9wVHlwZTo6IiIiICsgdG9DcHAobmFtZSkgKyAiIiI6IHsK
KyAgICAgICAgaWYgKHBvaW50ZXIgIT0gIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0p
ICsgIiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoXCIiIiIg
KyBuYW1lICsgIiIiIGV4cGVjdHMgdGhlIHBvaW50ZXIgdG8gYmUgb2YgdHlwZTogIiwgdG9TdHJp
bmcoIiIiICsgY3BwVHlwZShvcFsicGFyYW1ldGVyIl1bMF0pICsgIiIiKSwgIiBidXQgZ290IGEg
dmFsdWUgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyhwb2ludGVyKSk7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFsdWUgIT0gIiIiICsgY3BwVHlw
ZShvcFsicGFyYW1ldGVyIl1bMV0pICsgIiIiKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IG1ha2VTdHJpbmcoXCIiIiIgKyBuYW1lICsgIiIiIGV4cGVjdHMgdGhlIHZhbHVlIHRvIGJl
IG9mIHR5cGU6ICIsIHRvU3RyaW5nKCIiIiArIGNwcFR5cGUob3BbInBhcmFtZXRlciJdWzBdKSAr
ICIiIiksICIgYnV0IGdvdCBhIHZhbHVlIHdpdGggdHlwZTogIiwgdG9TdHJpbmcodmFsdWUpKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0iIiIKKworCit1bmFyeUNhc2VzID0gIiIuam9pbihbb3AgZm9yIG9wIGluIHdh
c20ub3Bjb2RlSXRlcmF0b3IoaXNVbmFyeSwgdW5hcnlNYWNybyldKQorYmluYXJ5Q2FzZXMgPSAi
Ii5qb2luKFtvcCBmb3Igb3AgaW4gd2FzbS5vcGNvZGVJdGVyYXRvcihpc0JpbmFyeSwgYmluYXJ5
TWFjcm8pXSkKK2xvYWRDYXNlcyA9ICIiLmpvaW4oW29wIGZvciBvcCBpbiB3YXNtLm9wY29kZUl0
ZXJhdG9yKGxhbWJkYSBvcDogb3BbImNhdGVnb3J5Il0gPT0gIm1lbW9yeSIgYW5kIGxlbihvcFsi
cmV0dXJuIl0pID09IDEsIGxvYWRNYWNybyldKQorc3RvcmVDYXNlcyA9ICIiLmpvaW4oW29wIGZv
ciBvcCBpbiB3YXNtLm9wY29kZUl0ZXJhdG9yKGxhbWJkYSBvcDogb3BbImNhdGVnb3J5Il0gPT0g
Im1lbW9yeSIgYW5kIGxlbihvcFsicmV0dXJuIl0pID09IDAsIHN0b3JlTWFjcm8pXSkKKworY29u
dGVudHMgPSB3YXNtLmhlYWRlciArICIiIgorLy8gVGhpcyBmaWxlIGlzIGludGVuZGVkIHRvIGJl
IGlubGluZWQgYnkgV2FzbVZhbGlkYXRlLmNwcCBvbmx5ISBJdCBzaG91bGQgbm90IGJlIGluY2x1
ZGVkIGVsc2V3aGVyZS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CisKK2Jvb2wgVmFsaWRhdGU6OnVu
YXJ5T3AoVW5hcnlPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlw
ZSYgcmVzdWx0KQoreworICAgIHN3aXRjaCAob3ApIHsKKyIiIiArIHVuYXJ5Q2FzZXMgKyAiIiIK
KyAgICB9Cit9CisKK2Jvb2wgVmFsaWRhdGU6OmJpbmFyeU9wKEJpbmFyeU9wVHlwZSBvcCwgRXhw
cmVzc2lvblR5cGUgbGVmdCwgRXhwcmVzc2lvblR5cGUgcmlnaHQsIEV4cHJlc3Npb25UeXBlJiBy
ZXN1bHQpCit7CisgICAgc3dpdGNoIChvcCkgeworIiIiICsgYmluYXJ5Q2FzZXMgKyAiIiIKKyAg
ICB9Cit9CisKK2Jvb2wgVmFsaWRhdGU6OmxvYWQoTG9hZE9wVHlwZSBvcCwgRXhwcmVzc2lvblR5
cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3QpCit7CisgICAgc3dp
dGNoIChvcCkgeworIiIiICsgbG9hZENhc2VzICsgIiIiCisgICAgfQorfQorCitib29sIFZhbGlk
YXRlOjpzdG9yZShTdG9yZU9wVHlwZSBvcCwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVz
c2lvblR5cGUgdmFsdWUsIHVpbnQzMl90KQoreworICAgIHN3aXRjaCAob3ApIHsKKyIiIiArIHN0
b3JlQ2FzZXMgKyAiIiIKKyAgICB9Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyIiIgorCit3YXNtVmFsaWRhdGVJbmxp
bmVzSEZpbGUud3JpdGUoY29udGVudHMpCit3YXNtVmFsaWRhdGVJbmxpbmVzSEZpbGUuY2xvc2Uo
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>