<?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>232557</bug_id>
          
          <creation_ts>2021-11-01 00:53:50 -0700</creation_ts>
          <short_desc>WebIDL: const in namespace is not supported</short_desc>
          <delta_ts>2022-03-04 14:09:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>232558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>cdumez</cc>
    
    <cc>djg</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810569</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-01 00:53:50 -0700</bug_when>
    <thetext>namespace GPUMapMode {
    const GPUFlagsConstant READ  = 0x0001;
    const GPUFlagsConstant WRITE = 0x0002;
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812544</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-07 23:54:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/85142162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847646</commentid>
    <comment_count>2</comment_count>
      <attachid>453669</attachid>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-03-02 15:43:18 -0800</bug_when>
    <thetext>Created attachment 453669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847688</commentid>
    <comment_count>3</comment_count>
      <attachid>453669</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-03-02 17:11:16 -0800</bug_when>
    <thetext>Comment on attachment 453669
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        * bindings/scripts/CodeGeneratorJS.pm:

Please fill in the ChangeLog with details about the change.

&gt; Source/WebCore/ChangeLog:23
&gt; +        * bindings/scripts/test/JS/JSTestNamespaceConst.cpp: Added.

We often replace all the bindings/scripts/tests/JS/ lines with a single:

* bindings/scripts/test/JS/*: Updated

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:7883
&gt; +    if ($interface-&gt;isNamespaceObject &amp;&amp; scalar(@runtimeEnabledProperties) == 0) {
&gt; +        push(@$outputArray, &quot;    UNUSED_PARAM(globalObject);\n&quot;);
&gt; +    }

Is this related?

&gt; Source/WebCore/bindings/scripts/IDLAttributes.json:464
&gt; -            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;dictionary&quot;, &quot;enum&quot;, &quot;attribute&quot;, &quot;operation&quot;, &quot;constant&quot;],
&gt; +            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;namespace&quot;, &quot;dictionary&quot;, &quot;enum&quot;, &quot;attribute&quot;, &quot;operation&quot;, &quot;constant&quot;],

This seems unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847695</commentid>
    <comment_count>4</comment_count>
      <attachid>453669</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-03-02 17:24:59 -0800</bug_when>
    <thetext>Comment on attachment 453669
Patch

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

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1111
&gt; +    if ($next-&gt;value() eq &quot;const&quot;) {

Would be good to update $nextNamespaceMembers_1 as well to include &quot;|const&quot; if it doesn&apos;t already have it. (Though I am unclear if it is ever used in a context where that would matter, I try to keep those correct in case they do).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847696</commentid>
    <comment_count>5</comment_count>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-03-02 17:31:48 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:7883
&gt; &gt; +    if ($interface-&gt;isNamespaceObject &amp;&amp; scalar(@runtimeEnabledProperties) == 0) {
&gt; &gt; +        push(@$outputArray, &quot;    UNUSED_PARAM(globalObject);\n&quot;);
&gt; &gt; +    }
&gt; 
&gt; Is this related?

Yes. This is fix a compilation error when a namespace contains just constants. For example, this:

namespace GPUMapMode {
    const GPUFlagsConstant READ  = 0x0001;
    const GPUFlagsConstant WRITE = 0x0002;
};

Generates the following code which has a compile error because globalObject is unused.

template&lt;&gt; void JSGPUMapModeDOMConstructor::initializeProperties(VM&amp; vm, JSDOMGlobalObject&amp; globalObject)
{
    JSC_TO_STRING_TAG_WITHOUT_TRANSITION();
    reifyStaticProperties(vm, JSGPUMapMode::info(), JSGPUMapModeConstructorTableValues, *this);
}

If there are no attributes or operations in the namespace, globalObject is unused, so I added the UNUNSED_PARAM to quiet the error.


&gt; &gt; Source/WebCore/bindings/scripts/IDLAttributes.json:464
&gt; &gt; -            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;dictionary&quot;, &quot;enum&quot;, &quot;attribute&quot;, &quot;operation&quot;, &quot;constant&quot;],
&gt; &gt; +            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;namespace&quot;, &quot;dictionary&quot;, &quot;enum&quot;, &quot;attribute&quot;, &quot;operation&quot;, &quot;constant&quot;],
&gt; 
&gt; This seems unrelated.

This allows [SecureContext] to be applied to namespace, which is allowed by the spec. Yes, it&apos;s not related to constants in namespace, so I&apos;ll open another bug for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847719</commentid>
    <comment_count>6</comment_count>
      <attachid>453690</attachid>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-03-02 19:03:42 -0800</bug_when>
    <thetext>Created attachment 453690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848139</commentid>
    <comment_count>7</comment_count>
      <attachid>453804</attachid>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-03-03 17:35:36 -0800</bug_when>
    <thetext>Created attachment 453804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848405</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-04 14:09:32 -0800</bug_when>
    <thetext>Committed r290845 (248078@main): &lt;https://commits.webkit.org/248078@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453804.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453669</attachid>
            <date>2022-03-02 15:43:18 -0800</date>
            <delta_ts>2022-03-02 19:03:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232557-20220303094316.patch</filename>
            <type>text/plain</type>
            <size>26682</size>
            <attacher name="Dan Glastonbury">djg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk2MGY3ODU3NjM2ZTk5
ODkyOGY5YTEzYTJjNDJlNDU0NjFlY2M3Ny4uOGJmY2MyYTllY2MyNGVhNmYxZmMzMGEwMjhmY2Ez
NzA1MmNiZDY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAzLTAyICBEYW4g
R2xhc3RvbmJ1cnkgIDxkamdAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgY29uc3RhbnRz
IGluIElETCBuYW1lc3BhY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNTU3CisgICAgICAgIDxyYWRyOi8vcHJvYmxlbS84NTE0MjE2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBiaW5k
aW5ncy9zY3JpcHQvdGVzdC9UZXN0TmFtZXNwYWNlQ29uc3QuaWRsCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMuanNvbjoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAg
ICAgICAgKGNvbnZlcnROYW1lc3BhY2VUb0ludGVyZmFjZSk6CisgICAgICAgIChhcHBseVR5cGVk
ZWZzKToKKyAgICAgICAgKHBhcnNlTmFtZXNwYWNlKToKKyAgICAgICAgKHBhcnNlTmFtZXNwYWNl
TWVtYmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQmluZGluZ1Rlc3RHbG9i
YWxDb25zdHJ1Y3RvcnMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yR2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZUNvbnN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3ROYW1lc3BhY2VDb25zdERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZXNwYWNlQ29uc3RET01Db25zdHJ1
Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZXNwYWNlQ29uc3Q6OkpTVGVzdE5hbWVzcGFjZUNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE5hbWVzcGFjZUNvbnN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3ROYW1lc3BhY2VDb25zdDo6Z2V0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZXNwYWNlQ29uc3Q6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TmFtZXNwYWNlQ29uc3Q6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZUNvbnN0Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZXNwYWNlQ29uc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3ROYW1lc3BhY2VDb25zdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE5hbWVzcGFjZUNvbnN0OjpzdWJzcGFjZUZvcik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROYW1lc3BhY2VDb25zdC5pZGw6IEFkZGVkLgorCiAyMDIy
LTAzLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbm5lY2Vzc2FyeSBjb3B5IG9mIFZlY3RvciBvZiBjaGlsZHJlbiBJRHMgaW4gQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZUNoaWxkcmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAwMTAyY2NlMjllNTJjMWMxZGRmZjg1ZjE1
ZGQ0OTRlNGQ5YWM3MGEwLi40OTAyOTcwNmQzZGI1ZTg2ZDIyNjRiYWZmYmUwOWIwMTIyNmM1YmRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtNzg3OCw2ICs3ODc4LDEwIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVs
cGVyTWV0aG9kcwogCiAgICAgbXkgQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcyA9IEdldFJ1bnRp
bWVFbmFibGVkU3RhdGljUHJvcGVydGllcygkaW50ZXJmYWNlKTsKIAorICAgIGlmICgkaW50ZXJm
YWNlLT5pc05hbWVzcGFjZU9iamVjdCAmJiBzY2FsYXIoQHJ1bnRpbWVFbmFibGVkUHJvcGVydGll
cykgPT0gMCkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BBUkFN
KGdsb2JhbE9iamVjdCk7XG4iKTsKKyAgICB9CisKICAgICBmb3JlYWNoIG15ICRvcGVyYXRpb25P
ckF0dHJpYnV0ZSAoQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcykgewogICAgICAgICBteSAkY29u
ZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmlu
Zygkb3BlcmF0aW9uT3JBdHRyaWJ1dGUpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIj
aWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29u
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KaW5k
ZXggOWRmMGZmOWIwM2MzNjIwNDE4MzIyNDBhNDg5MzIzYjFhZmNhOTQ0MS4uMTYxN2QxY2YxZDJk
OTFjZWE2M2Y4ZGI2YzM1ZTVjZTIzYjkxMjhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KQEAgLTQ2MSw3ICs0NjEsNyBAQAog
ICAgICAgICAgICAgInVuc3VwcG9ydGVkIjogdHJ1ZQogICAgICAgICB9LAogICAgICAgICAiU2Vj
dXJlQ29udGV4dCI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFj
ZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25z
dGFudCJdLAorICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgIm5h
bWVzcGFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIs
ICJjb25zdGFudCJdLAogICAgICAgICAgICAgInN0YW5kYXJkIjogewogICAgICAgICAgICAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNTZWN1cmVDb250ZXh0Igog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQppbmRleCBhYTBkOTAxNjNkYzY5ZGUzMDMxODIyNGVhM2JmY2QzYmMxYTRhZjQ5Li4yYjgz
NzVjZTRhYzA5ODJjOGFmZTI2YzkwNzgyOTY3NGQ3M2NiNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMTg3LDYgKzE4Nyw3IEBAIHN0cnVj
dCggSURMQ2FsbGJhY2tGdW5jdGlvbiA9PiB7CiAjIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdn
Lm9yZy8jaWRsLW5hbWVzcGFjZXMKIHN0cnVjdCggSURMTmFtZXNwYWNlID0+IHsKICAgICBuYW1l
ID0+ICckJywKKyAgICBjb25zdGFudHMgPT4gJ0AnLCAjIExpc3Qgb2YgJ0lETENvbnN0YW50Jwog
ICAgIG9wZXJhdGlvbnMgPT4gJ0AnLCAjIExpc3Qgb2YgJ0lETE9wZXJhdGlvbicKICAgICBhdHRy
aWJ1dGVzID0+ICdAJywgIyBMaXN0IG9mICdJRExBdHRyaWJ1dGUnCiAgICAgaXNQYXJ0aWFsID0+
ICckJywgIyBVc2VkIGZvciBwYXJ0aWFsIG5hbWVzcGFjZXMKQEAgLTMzNCw2ICszMzUsOCBAQCBz
dWIgY29udmVydE5hbWVzcGFjZVRvSW50ZXJmYWNlCiAgICAgICAgIHB1c2goQHskaW50ZXJmYWNl
LT5hdHRyaWJ1dGVzfSwgJGF0dHJpYnV0ZSk7CiAgICAgfQogCisgICAgcHVzaChAeyRpbnRlcmZh
Y2UtPmNvbnN0YW50c30sIEB7JG5hbWVzcGFjZS0+Y29uc3RhbnRzfSk7CisKICAgICAkaW50ZXJm
YWNlLT5pc05hbWVzcGFjZU9iamVjdCgxKTsKICAgICAkaW50ZXJmYWNlLT5pc1BhcnRpYWwoJG5h
bWVzcGFjZS0+aXNQYXJ0aWFsKTsKICAgICAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMo
JG5hbWVzcGFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKQEAgLTcxMyw2ICs3MTYsOSBAQCBzdWIg
YXBwbHlUeXBlZGVmcwogICAgICAgICB9IGVsc2lmIChyZWYoJGRlZmluaXRpb24pIGVxICJJRExD
YWxsYmFja0Z1bmN0aW9uIikgewogICAgICAgICAgICAgJHNlbGYtPmFwcGx5VHlwZWRlZnNUb09w
ZXJhdGlvbigkZGVmaW5pdGlvbi0+b3BlcmF0aW9uKTsKICAgICAgICAgfSBlbHNpZiAocmVmKCRk
ZWZpbml0aW9uKSBlcSAiSURMTmFtZXNwYWNlIikgeworICAgICAgICAgICAgZm9yZWFjaCBteSAk
Y29uc3RhbnQgKEB7JGRlZmluaXRpb24tPmNvbnN0YW50c30pIHsKKyAgICAgICAgICAgICAgICAk
Y29uc3RhbnQtPnR5cGUoJHNlbGYtPnR5cGVCeUFwcGx5aW5nVHlwZWRlZnMoJGNvbnN0YW50LT50
eXBlKSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRvcGVyYXRpb24g
KEB7JGRlZmluaXRpb24tPm9wZXJhdGlvbnN9KSB7CiAgICAgICAgICAgICAgICAgJHNlbGYtPmFw
cGx5VHlwZWRlZnNUb09wZXJhdGlvbigkb3BlcmF0aW9uKTsKICAgICAgICAgICAgIH0KQEAgLTEw
NTYsNiArMTA2MiwxMCBAQCBzdWIgcGFyc2VOYW1lc3BhY2UKICAgICAgICAgICAgICAgICBwdXNo
KEB7JG5hbWVzcGFjZS0+YXR0cmlidXRlc30sICRuYW1lc3BhY2VNZW1iZXIpOwogICAgICAgICAg
ICAgICAgIG5leHQ7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVmKCRuYW1lc3Bh
Y2VNZW1iZXIpIGVxICJJRExDb25zdGFudCIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEB7JG5h
bWVzcGFjZS0+Y29uc3RhbnRzfSwgJG5hbWVzcGFjZU1lbWJlcik7CisgICAgICAgICAgICAgICAg
bmV4dDsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChyZWYoJG5hbWVzcGFjZU1lbWJl
cikgZXEgIklETE9wZXJhdGlvbiIpIHsKICAgICAgICAgICAgICAgICBwdXNoKEB7JG5hbWVzcGFj
ZS0+b3BlcmF0aW9uc30sICRuYW1lc3BhY2VNZW1iZXIpOwogICAgICAgICAgICAgICAgIG5leHQ7
CkBAIC0xMDk4LDYgKzExMDgsOSBAQCBzdWIgcGFyc2VOYW1lc3BhY2VNZW1iZXIKICAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKICAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
fQogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmVhZG9ubHkiKSB7CiAgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmVhZG9ubHkiLCBfX0xJTkVf
Xyk7CiAgICAgICAgIG15ICRhdHRyaWJ1dGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9CaW5kaW5nVGVzdEdsb2JhbENvbnN0cnVj
dG9ycy5pZGwKaW5kZXggZGEwZmJhNTIxZDY1ZWYzZTNiN2M5YjZmMjEyYTc5MzUwMGIwYjdiZi4u
YzgwMjEzODY4ZWMwYzE1YmU1NGRkNjA5MTJlNjAyY2RlODliNjU2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0JpbmRpbmdUZXN0R2xvYmFsQ29uc3Ry
dWN0b3JzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQmlu
ZGluZ1Rlc3RHbG9iYWxDb25zdHJ1Y3RvcnMuaWRsCkBAIC00NSw2ICs0NSw3IEBAIHBhcnRpYWwg
aW50ZXJmYWNlIFRlc3RHbG9iYWxPYmplY3QgewogICAgIGF0dHJpYnV0ZSBUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yIFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOwogICAgIGF0dHJpYnV0ZSBUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IgVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllczsKICAgICBhdHRyaWJ1dGUgVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvciBUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluczsKKyAgICBhdHRyaWJ1dGUgVGVzdE5hbWVz
cGFjZUNvbnN0Q29uc3RydWN0b3IgVGVzdE5hbWVzcGFjZUNvbnN0OwogICAgIGF0dHJpYnV0ZSBU
ZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3IgVGVzdEludGVyZmFjZU5hbWU7CiAgICAgW0Nv
bmRpdGlvbmFsPUNvbmRpdGlvbkRlcml2ZWRdIGF0dHJpYnV0ZSBUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWxDb25zdHJ1Y3RvciBUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw7CiAgICAgYXR0cmlidXRl
IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IgVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3Qu
Y3BwCmluZGV4IDA3OGFjNGFkYTM5MDM0MTFmMTUxNWFmNjdmNGM0MGQ5NTQyOTEyYzguLjM0Mzcw
MGNjNTI4MTRhMmRiMjJkNjg3YzA3NzdhNjE2ZjAzZWY4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxP
YmplY3QuY3BwCkBAIC04NCw2ICs4NCw3IEBACiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMuaCIKKyNpbmNsdWRlICJKU1Rlc3ROYW1lc3BhY2VDb25zdC5oIgogI2luY2x1ZGUgIkpT
VGVzdE5hbWVzcGFjZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2UuaCIKICNpbmNsdWRlICJKU1Rlc3RQbHVnaW5JbnRlcmZhY2UuaCIK
QEAgLTIxOCw2ICsyMTksNyBAQCBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZQogc3RhdGljIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOwogc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
cik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVzcGFjZUNvbnN0Q29uc3RydWN0b3IpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3Ip
OwogI2lmIEVOQUJMRShDb25kaXRpb25EZXJpdmVkKQogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKTsKQEAgLTI2MCwxNSArMjYyLDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFj
dEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1NSwgLTEg
fSwKKyAgICB7IDU2LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDQ5
LCAtMSB9LAorICAgIHsgNTAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDY0LCAtMSB9
LAorICAgIHsgNjUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCkBAIC0yODgsMTEgKzI5MCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENv
bXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjgs
IC0xIH0sCisgICAgeyA2OSwgLTEgfSwKICAgICB7IDEzLCAyNjEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKKyAgICB7IDQ5LCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzMyLDcg
KzMzNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgMzAsIC0xIH0sCi0gICAgeyA1NywgLTEgfSwKKyAgICB7IDU4LCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzQx
LDcgKzM0Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RH
bG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDks
IDI1NyB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1OSwgLTEgfSwKKyAgICB7IDYwLCAtMSB9
LAogICAgIHsgMTksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAt
Mzg3LDcgKzM4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rl
c3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1NCwgLTEgfSwKKyAgICB7IDU1LCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApA
QCAtNDA1LDEwICs0MDcsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4
IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDY1LCAtMSB9LAotICAgIHsg
LTEsIC0xIH0sCiAgICAgeyA2NiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNjcsIC0x
IH0sCisgICAgeyAtMSwgLTEgfSwKICAgICB7IDI3LCAtMSB9LAogICAgIHsgMzIsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKQEAgLTQyMiw3ICs0MjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENv
bXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAxNSwgMjYwIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDYw
LCAtMSB9LAorICAgIHsgNjEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCkBAIC00MzUsNyArNDM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgMTYsIDI1NiB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA2MywgLTEgfSwKKyAgICB7IDY0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDY3LDcgKzQ2OSw3IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0g
PSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyA1OCwgLTEgfSwKKyAgICB7IDU5LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAx
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00NzYsMTAgKzQ3OCwxMCBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsy
NjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgNTAsIDI2NCB9LAorICAgIHsgNTEsIDI2NCB9LAogICAgIHsgNywgMjYzIH0sCiAg
ICAgeyAtMSwgLTEgfSwKLSAgICB7IDYxLCAtMSB9LAorICAgIHsgNjIsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00OTYsMTAgKzQ5
OCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFs
T2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IDMsIC0xIH0sCi0gICAgeyA1MiwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAogICAg
IHsgNTMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDU0LCAtMSB9LAorICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CkBAIC01MTEsMTAgKzUxMywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5k
ZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgNDAsIC0xIH0s
CiAgICAgeyA0MiwgLTEgfSwKICAgICB7IDQ0LCAtMSB9LAotICAgIHsgNTEsIC0xIH0sCi0gICAg
eyA1NiwgLTEgfSwKLSAgICB7IDYyLCAtMSB9LAotICAgIHsgNjcsIC0xIH0sCisgICAgeyA1Miwg
LTEgfSwKKyAgICB7IDU3LCAtMSB9LAorICAgIHsgNjMsIC0xIH0sCisgICAgeyA2OCwgLTEgfSwK
IH07CiAKIApAQCAtNTc3LDYgKzU3OSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RHbG9iYWxPYmplY3RUYWJsZVZhbHVlc1tdID0KICAgICB7ICJUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CiAgICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICAgICB7ICJUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCisgICAgeyAiVGVzdE5hbWVzcGFjZUNvbnN0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdE5hbWVzcGFjZUNvbnN0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAgICAgeyAiVGVzdElu
dGVyZmFjZU5hbWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW50ZXJmYWNlTmFt
ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAogI2lmIEVOQUJMRShDb25kaXRpb25EZXJpdmVkKQogICAgIHsg
IlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LApAQCAtNjA3LDcgKzYxMCw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZVZh
bHVlc1tdID0KICAgICB7ICJyZWd1bGFyT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uX3JlZ3VsYXJPcGVyYXRpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9Owog
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlID0geyA2OSwg
MjU1LCB0cnVlLCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmluZm8oKSwgSlNUZXN0R2xvYmFsT2JqZWN0
VGFibGVWYWx1ZXMsIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXggfTsKK3N0YXRpYyBjb25z
dCBIYXNoVGFibGUgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGUgPSB7IDcwLCAyNTUsIHRydWUsIEpT
VGVzdEdsb2JhbE9iamVjdDo6aW5mbygpLCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZVZhbHVlcywg
SlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleCB9OwogLyogSGFzaCB0YWJsZSBmb3IgY29uc3Ry
dWN0b3IgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdsb2JhbE9iamVj
dENvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CkBAIC0xMzc5LDYgKzEzODIsMTcgQEAgSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGUKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVzcGFj
ZUNvbnN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIEpTVGVzdE5hbWVzcGFjZUNvbnN0Ojpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmpl
Y3QpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0
ZU5hbWUpKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZXNwYWNlQ29uc3RDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7Cit9CisK
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEludGVyZmFjZU5h
bWVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lc3BhY2VDb25zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjMmY5ZWU0YjY0NjhlNzBkODViY2NiZThjMTVjMWExM2I5OTIxNmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZXNwYWNlQ29uc3QuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAgICBUaGlzIGZpbGUgaGFz
IGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1Rlc3ROYW1lc3BhY2VDb25zdC5o
IgorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXh0ZW5kZWRET01D
bGllbnRJc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJFeHRlbmRlZERPTUlzb1N1YnNwYWNlcy5o
IgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JO
b3RDYWxsYWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNs
dWRlICJKU0RPTUdsb2JhbE9iamVjdElubGluZXMuaCIKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXJD
YWNoZS5oIgorI2luY2x1ZGUgIlRlc3ROYW1lc3BhY2VDb25zdC5oIgorI2luY2x1ZGUgIldlYkNv
cmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvck1hY3Jvcy5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgorCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3VzaW5nIEpTVGVzdE5hbWVzcGFjZUNvbnN0RE9N
Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8SlNUZXN0TmFtZXNwYWNl
Q29uc3Q+OworCisvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLworCitzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZXNwYWNlQ29uc3RDb25zdHJ1Y3RvclRhYmxlVmFs
dWVzW10gPQoreworICAgIHsgIlRFU1RfRkxBRyIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZyko
ZmFsc2UpIH0gfSwKKyAgICB7ICJURVNUX0JJVF9NQVNLIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBs
b25nKSgweDAwMDBmYzAwKSB9IH0sCit9OworCitzdGF0aWNfYXNzZXJ0KFRlc3ROYW1lc3BhY2VD
b25zdDo6VEVTVF9GTEFHID09IGZhbHNlLCAiVEVTVF9GTEFHIGluIFRlc3ROYW1lc3BhY2VDb25z
dCBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOworc3RhdGljX2Fzc2VydChUZXN0TmFt
ZXNwYWNlQ29uc3Q6OlRFU1RfQklUX01BU0sgPT0gMHgwMDAwZmMwMCwgIlRFU1RfQklUX01BU0sg
aW4gVGVzdE5hbWVzcGFjZUNvbnN0IGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CisK
K3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVzcGFjZUNvbnN0RE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lc3BhY2VDb25zdCIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZXNwYWNlQ29uc3RE
T01Db25zdHJ1Y3RvcikgfTsKKwordGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVzcGFjZUNv
bnN0RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0o
dm0pOworICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCk7Cit9CisKK3Rl
bXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lc3BhY2VDb25zdERPTUNvbnN0cnVjdG9yOjppbml0aWFs
aXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7
CisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CisgICAgcmVpZnlT
dGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3ROYW1lc3BhY2VDb25zdDo6aW5mbygpLCBKU1Rlc3RO
YW1lc3BhY2VDb25zdENvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKKyAgICBVTlVTRURf
UEFSQU0oZ2xvYmFsT2JqZWN0KTsKK30KKworY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVzcGFj
ZUNvbnN0OjpzX2luZm8gPSB7ICJUZXN0TmFtZXNwYWNlQ29uc3QiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVzcGFjZUNvbnN0
KSB9OworCitKU1Rlc3ROYW1lc3BhY2VDb25zdDo6SlNUZXN0TmFtZXNwYWNlQ29uc3QoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCisgICAgOiBK
U0RPTU9iamVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkgeyB9CisKK3ZvaWQgSlNUZXN0TmFt
ZXNwYWNlQ29uc3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3sKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKworICAgIHN0
YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFRlc3ROYW1lc3Bh
Y2VDb25zdD46OnZhbHVlLCAiSW50ZXJmYWNlIGlzIG5vdCBtYXJrZWQgYXMgW0FjdGl2ZURPTU9i
amVjdF0gZXZlbiB0aG91Z2ggaW1wbGVtZW50YXRpb24gY2xhc3Mgc3ViY2xhc3NlcyBBY3RpdmVE
T01PYmplY3QuIik7CisKK30KKworSlNWYWx1ZSBKU1Rlc3ROYW1lc3BhY2VDb25zdDo6Z2V0Q29u
c3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorewor
ICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1Rlc3ROYW1lc3BhY2VDb25zdERPTUNvbnN0
cnVjdG9yLCBET01Db25zdHJ1Y3RvcklEOjpUZXN0TmFtZXNwYWNlQ29uc3Q+KHZtLCAqanNDYXN0
PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7Cit9CisKK3ZvaWQgSlNU
ZXN0TmFtZXNwYWNlQ29uc3Q6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCit7CisgICAgSlNU
ZXN0TmFtZXNwYWNlQ29uc3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3ROYW1lc3Bh
Y2VDb25zdCo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPkpTVGVzdE5hbWVzcGFjZUNvbnN0Ojp+
SlNUZXN0TmFtZXNwYWNlQ29uc3QoKTsKK30KKworSlNDOjpHQ0NsaWVudDo6SXNvU3Vic3BhY2Uq
IEpTVGVzdE5hbWVzcGFjZUNvbnN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCit7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6OnN1YnNwYWNlRm9ySW1wbDxKU1Rlc3ROYW1lc3BhY2VDb25zdCwg
VXNlQ3VzdG9tSGVhcENlbGxUeXBlOjpObz4odm0sCisgICAgICAgIFtdIChhdXRvJiBzcGFjZXMp
IHsgcmV0dXJuIHNwYWNlcy5tX2NsaWVudFN1YnNwYWNlRm9yVGVzdE5hbWVzcGFjZUNvbnN0Lmdl
dCgpOyB9LAorICAgICAgICBbXSAoYXV0byYgc3BhY2VzLCBhdXRvJiYgc3BhY2UpIHsgc3BhY2Vz
Lm1fY2xpZW50U3Vic3BhY2VGb3JUZXN0TmFtZXNwYWNlQ29uc3QgPSBXVEZNb3ZlKHNwYWNlKTsg
fSwKKyAgICAgICAgW10gKGF1dG8mIHNwYWNlcykgeyByZXR1cm4gc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0TmFtZXNwYWNlQ29uc3QuZ2V0KCk7IH0sCisgICAgICAgIFtdIChhdXRvJiBzcGFjZXMs
IGF1dG8mJiBzcGFjZSkgeyBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lc3BhY2VDb25zdCA9
IFdURk1vdmUoc3BhY2UpOyB9CisgICAgKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lc3BhY2VD
b25zdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYxMzUwMTY4ODE5NzkwMzczNDJiMmQxYTg3NTYyM2NlNTFhOWE1
ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAgICBU
aGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBO
T1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNUZXN0TmFtZXNwYWNlQ29uc3QgOiBw
dWJsaWMgSlNET01PYmplY3QgeworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0RPTU9iamVj
dDsKKyAgICBzdGF0aWMgSlNUZXN0TmFtZXNwYWNlQ29uc3QqIGNyZWF0ZShKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIHsKKyAg
ICAgICAgSlNUZXN0TmFtZXNwYWNlQ29uc3QqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxv
Y2F0ZUNlbGw8SlNUZXN0TmFtZXNwYWNlQ29uc3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpIEpTVGVz
dE5hbWVzcGFjZUNvbnN0KHN0cnVjdHVyZSwgKmdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICAgICAgcmV0dXJuIHB0cjsK
KyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBE
RUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0K
KworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJz
cGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMgSlNDOjpHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIHN1YnNw
YWNlRm9yKEpTQzo6Vk0mIHZtKQorICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChtb2RlID09
IEpTQzo6U3Vic3BhY2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gc3Vic3BhY2VGb3JJbXBsKHZtKTsKKyAgICB9CisgICAg
c3RhdGljIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwoSlNDOjpW
TSYgdm0pOworcHJvdGVjdGVkOgorICAgIEpTVGVzdE5hbWVzcGFjZUNvbnN0KEpTQzo6U3RydWN0
dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTsKKworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYpOworfTsKKworCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNp
ZXMuZGVwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRh
bERlcGVuZGVuY2llcy5kZXAKaW5kZXggMWNjOGZhNWI0ZTdjYTk5OTJmNmQyYjI2ZWE2MGNkYjFm
ZmI1NzY0OC4uYjgzZTY2ZDc0OTU2ZDQ3NDhlNGE1MTMyNjBlZjg5NzhhNzM0YTlhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERl
cGVuZGVuY2llcy5kZXAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKQEAgLTg2LDYgKzg2LDcgQEAgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5oOgogSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oOiAKIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllcy5oOiAKIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuaDogCitKU1Rlc3RO
YW1lc3BhY2VDb25zdC5oOiAKIEpTVGVzdE5hbWVzcGFjZU9iamVjdC5oOiBUZXN0UGFydGlhbE5h
bWVzcGFjZU9iamVjdC5pZGwKIFRlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmlkbDoKIEpTVGVz
dE5vZGUuaDogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE5hbWVzcGFjZUNvbnN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0TmFtZXNwYWNlQ29uc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMzE2M2YwNzk5ZDdm
YTYwMzlhOTRhYTZlZDVmMjAxOTBkMmQ2NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVzcGFjZUNvbnN0LmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGluZyB0
aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZworLy8gY2hhbmdlcyBp
biBpdHMgb3V0cHV0LgorWworICAgIEV4cG9zZWQ9VGVzdEdsb2JhbE9iamVjdCwKK10gbmFtZXNw
YWNlIFRlc3ROYW1lc3BhY2VDb25zdCB7CisgICAgY29uc3QgYm9vbGVhbiBURVNUX0ZMQUcgPSBm
YWxzZTsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIFRFU1RfQklUX01BU0sgPSAweDAwMDBmYzAw
OworfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453690</attachid>
            <date>2022-03-02 19:03:42 -0800</date>
            <delta_ts>2022-03-03 17:35:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232557-20220303130341.patch</filename>
            <type>text/plain</type>
            <size>26931</size>
            <attacher name="Dan Glastonbury">djg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgwNjc3Yzc5MmNmZGNl
NjVjZGI1ODc0MTQ3N2NkMzkyZWYxZDY5NC4uNGVlYTNhYzMzY2FlMDE2ZjQwOGJjNGQzMjliMDEx
Y2MwODIwODcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAzLTAyICBEYW4g
R2xhc3RvbmJ1cnkgIDxkamdAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgY29uc3RhbnRz
IGluIElETCBuYW1lc3BhY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNTU3CisgICAgICAgIDxyYWRyOi8vcHJvYmxlbS84NTE0MjE2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBiaW5k
aW5ncy9zY3JpcHQvdGVzdC9UZXN0TmFtZXNwYWNlQ29uc3QuaWRsCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgSWYgbmFtZXNwYWNlIGNvbnRhaW5zIG9ubHkg
Y29uc3RhbnRzLCBnbG9iYWxPYmplY3QgaXMgdW51c2VkCisgICAgICAgIHByb2R1Y2VzIGEgY29t
cGlsZSBlcnJvci4gQWRkIFVOVVNFRF9QQVJBTSB0byBxdWlldCBlcnJvci4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKGNvbnZlcnROYW1lc3BhY2VUb0ludGVyZmFj
ZSk6IENvcHkgbmFtZXNwYWNlIGNvbnN0YW50cyB0byBuZXcgaW50ZXJmYWNlLgorICAgICAgICAo
YXBwbHlUeXBlZGVmcyk6IEFwcGx5IHR5cGVkZWZzIHRvIG5hbWVzcGFjZSBjb25zdGFudHMuCisg
ICAgICAgIChwYXJzZU5hbWVzcGFjZSk6IEFkZGVkIHBhcnNlZCBjb25zdGFudHMgdG8gbmFtZXNw
YWNlJ3MgbGlzdCBvZiBjb25zdGFudHMuCisgICAgICAgIChwYXJzZU5hbWVzcGFjZU1lbWJlcik6
IEFjY2VwdCBjb25zdGFudHMgYXMgbmFtZXNwYWNlIG1lbWJlcnMuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvKjogVXBkYXRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVzcGFjZUNvbnN0LmlkbDogQWRkZWQuCisK
IDIwMjItMDMtMDIgIERhbiBHbGFzdG9uYnVyeSAgPGRqZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
QWxsb3cgW1NlY3VyZUNvbnRleHRdIGV4dGVuZGVkIGF0dHJpYnV0ZSBvbiBuYW1lc3BhY2VzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCAwMTAyY2NlMjllNTJjMWMxZGRmZjg1ZjE1ZGQ0OTRlNGQ5YWM3MGEwLi40OTAyOTcw
NmQzZGI1ZTg2ZDIyNjRiYWZmYmUwOWIwMTIyNmM1YmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzg3OCw2ICs3ODc4
LDEwIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogCiAgICAgbXkgQHJ1
bnRpbWVFbmFibGVkUHJvcGVydGllcyA9IEdldFJ1bnRpbWVFbmFibGVkU3RhdGljUHJvcGVydGll
cygkaW50ZXJmYWNlKTsKIAorICAgIGlmICgkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdCAm
JiBzY2FsYXIoQHJ1bnRpbWVFbmFibGVkUHJvcGVydGllcykgPT0gMCkgeworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7XG4iKTsKKyAg
ICB9CisKICAgICBmb3JlYWNoIG15ICRvcGVyYXRpb25PckF0dHJpYnV0ZSAoQHJ1bnRpbWVFbmFi
bGVkUHJvcGVydGllcykgewogICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdl
bmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkb3BlcmF0aW9uT3JBdHRyaWJ1dGUp
OwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31c
biIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0KaW5kZXggYWEwZDkwMTYzZGM2OWRlMzAzMTgyMjRlYTNiZmNkM2Jj
MWE0YWY0OS4uNmRjZjNkMGZkNWYyM2RjNTM2MWY0MjcyOWEyYzVmNDI2NWRiMDI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KQEAgLTE4Nyw2ICsx
ODcsNyBAQCBzdHJ1Y3QoIElETENhbGxiYWNrRnVuY3Rpb24gPT4gewogIyBodHRwczovL3dlYmlk
bC5zcGVjLndoYXR3Zy5vcmcvI2lkbC1uYW1lc3BhY2VzCiBzdHJ1Y3QoIElETE5hbWVzcGFjZSA9
PiB7CiAgICAgbmFtZSA9PiAnJCcsCisgICAgY29uc3RhbnRzID0+ICdAJywgIyBMaXN0IG9mICdJ
RExDb25zdGFudCcKICAgICBvcGVyYXRpb25zID0+ICdAJywgIyBMaXN0IG9mICdJRExPcGVyYXRp
b24nCiAgICAgYXR0cmlidXRlcyA9PiAnQCcsICMgTGlzdCBvZiAnSURMQXR0cmlidXRlJwogICAg
IGlzUGFydGlhbCA9PiAnJCcsICMgVXNlZCBmb3IgcGFydGlhbCBuYW1lc3BhY2VzCkBAIC0zMzQs
NiArMzM1LDggQEAgc3ViIGNvbnZlcnROYW1lc3BhY2VUb0ludGVyZmFjZQogICAgICAgICBwdXNo
KEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30sICRhdHRyaWJ1dGUpOwogICAgIH0KIAorICAgIHB1
c2goQHskaW50ZXJmYWNlLT5jb25zdGFudHN9LCBAeyRuYW1lc3BhY2UtPmNvbnN0YW50c30pOwor
CiAgICAgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QoMSk7CiAgICAgJGludGVyZmFjZS0+
aXNQYXJ0aWFsKCRuYW1lc3BhY2UtPmlzUGFydGlhbCk7CiAgICAgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRuYW1lc3BhY2UtPmV4dGVuZGVkQXR0cmlidXRlcyk7CkBAIC02MjAsNyAr
NjIzLDcgQEAgbXkgJG5leHREaWN0aW9uYXJ5TWVtYmVyXzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58YnkKIG15ICRuZXh0Q2FsbGJhY2tJbnRlcmZh
Y2VNZW1iZXJzXzEgPSAnXihcKHxjb25zdHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8
YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8
c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4
dEludGVyZmFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmlu
Z3xhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjb25zdHxjb25zdHJ1Y3RvcnxkZWxldGVyfGRv
dWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1
ZW5jZXxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHN5bWJvbHx1bmRlZmluZWR8dW5y
ZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRNaXhpbk1lbWJlcnNfMSA9ICdeKFwofGF0
dHJpYnV0ZXxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxj
b25zdHxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2hv
cnR8c3RyaW5naWZpZXJ8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7
Ci1teSAkbmV4dE5hbWVzcGFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5n
fFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3Rl
dHxyZWFkb25seXxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1
bnNpZ25lZCkkJzsKK215ICRuZXh0TmFtZXNwYWNlTWVtYmVyc18xID0gJ14oXCh8Qnl0ZVN0cmlu
Z3xET01TdHJpbmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8Y29uc3R8ZG91YmxlfGZsb2F0
fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNob3J0fHN5bWJvbHx1bmRlZmlu
ZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRQYXJ0aWFsSW50ZXJmYWNlTWVt
YmVyXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8YW55fGF0dHJpYnV0
ZXxib29sZWFufGJ5dGV8Y29uc3R8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8
bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHN0YXRpY3xz
dHJpbmdpZmllcnxzeW1ib2x8dW5kZWZpbmVkfHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15
ICRuZXh0U2luZ2xlVHlwZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGJv
b2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8
c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dEFyZ3Vt
ZW50TmFtZV8xID0gJ14oYXN5bmN8YXR0cmlidXRlfGNhbGxiYWNrfGNvbnN0fGNvbnN0cnVjdG9y
fGRlbGV0ZXJ8ZGljdGlvbmFyeXxlbnVtfGdldHRlcnxpbmNsdWRlc3xpbmhlcml0fGludGVyZmFj
ZXxpdGVyYWJsZXxtYXBsaWtlfG1peGlufG5hbWVzcGFjZXxwYXJ0aWFsfHJlYWRvbmx5fHJlcXVp
cmVkfHNldGxpa2V8c2V0dGVyfHN0YXRpY3xzdHJpbmdpZmllcnx0eXBlZGVmfHVucmVzdHJpY3Rl
ZCkkJzsKQEAgLTcxMyw2ICs3MTYsOSBAQCBzdWIgYXBwbHlUeXBlZGVmcwogICAgICAgICB9IGVs
c2lmIChyZWYoJGRlZmluaXRpb24pIGVxICJJRExDYWxsYmFja0Z1bmN0aW9uIikgewogICAgICAg
ICAgICAgJHNlbGYtPmFwcGx5VHlwZWRlZnNUb09wZXJhdGlvbigkZGVmaW5pdGlvbi0+b3BlcmF0
aW9uKTsKICAgICAgICAgfSBlbHNpZiAocmVmKCRkZWZpbml0aW9uKSBlcSAiSURMTmFtZXNwYWNl
IikgeworICAgICAgICAgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGRlZmluaXRpb24tPmNv
bnN0YW50c30pIHsKKyAgICAgICAgICAgICAgICAkY29uc3RhbnQtPnR5cGUoJHNlbGYtPnR5cGVC
eUFwcGx5aW5nVHlwZWRlZnMoJGNvbnN0YW50LT50eXBlKSk7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRvcGVyYXRpb24gKEB7JGRlZmluaXRpb24tPm9wZXJhdGlvbnN9
KSB7CiAgICAgICAgICAgICAgICAgJHNlbGYtPmFwcGx5VHlwZWRlZnNUb09wZXJhdGlvbigkb3Bl
cmF0aW9uKTsKICAgICAgICAgICAgIH0KQEAgLTEwNTYsNiArMTA2MiwxMCBAQCBzdWIgcGFyc2VO
YW1lc3BhY2UKICAgICAgICAgICAgICAgICBwdXNoKEB7JG5hbWVzcGFjZS0+YXR0cmlidXRlc30s
ICRuYW1lc3BhY2VNZW1iZXIpOwogICAgICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAocmVmKCRuYW1lc3BhY2VNZW1iZXIpIGVxICJJRExDb25zdGFudCIp
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEB7JG5hbWVzcGFjZS0+Y29uc3RhbnRzfSwgJG5hbWVz
cGFjZU1lbWJlcik7CisgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmIChyZWYoJG5hbWVzcGFjZU1lbWJlcikgZXEgIklETE9wZXJhdGlvbiIpIHsKICAg
ICAgICAgICAgICAgICBwdXNoKEB7JG5hbWVzcGFjZS0+b3BlcmF0aW9uc30sICRuYW1lc3BhY2VN
ZW1iZXIpOwogICAgICAgICAgICAgICAgIG5leHQ7CkBAIC0xMDk4LDYgKzExMDgsOSBAQCBzdWIg
cGFyc2VOYW1lc3BhY2VNZW1iZXIKICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CiAKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3Qo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAicmVhZG9ubHkiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAicmVhZG9ubHkiLCBfX0xJTkVfXyk7CiAgICAgICAgIG15ICRhdHRyaWJ1dGUg
PSAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0JpbmRpbmdUZXN0
R2xvYmFsQ29uc3RydWN0b3JzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9CaW5kaW5nVGVzdEdsb2JhbENvbnN0cnVjdG9ycy5pZGwKaW5kZXggNGQ3ODJkNmU5YzVk
ZTFiNjM5YjVlNWM3MTg3YThkN2Y3ZmQ5ODI1NC4uMzU4NjY1NTM1YjA3ZjExZmEyOTkwMGMxMmEx
MDk1OTJiOWM4NzA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQmluZGluZ1Rlc3RHbG9iYWxDb25zdHJ1Y3RvcnMu
aWRsCkBAIC00NSw2ICs0NSw3IEBAIHBhcnRpYWwgaW50ZXJmYWNlIFRlc3RHbG9iYWxPYmplY3Qg
ewogICAgIGF0dHJpYnV0ZSBUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yIFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOwog
ICAgIGF0dHJpYnV0ZSBUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQ29uc3RydWN0b3IgVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllczsKICAgICBhdHRyaWJ1dGUgVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvciBUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dEluczsKKyAgICBhdHRyaWJ1dGUgVGVzdE5hbWVzcGFjZUNvbnN0Q29uc3RydWN0b3IgVGVzdE5h
bWVzcGFjZUNvbnN0OwogICAgIFtTZWN1cmVDb250ZXh0XSBhdHRyaWJ1dGUgVGVzdE5hbWVzcGFj
ZU9iamVjdENvbnN0cnVjdG9yIFRlc3RJbnRlcmZhY2VOYW1lOwogICAgIFtDb25kaXRpb25hbD1D
b25kaXRpb25EZXJpdmVkXSBhdHRyaWJ1dGUgVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3Ry
dWN0b3IgVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsOwogICAgIGF0dHJpYnV0ZSBUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yIFRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAppbmRleCBj
ODhkOWUxYjkwMThmNmFmMTI0Mzk2ZGJjM2E5MzlmMDAwNThlMGQyLi40ZjE0YTY5YTIwZjBhMzAx
Mzk5NDA3ZGMwMGJjODA2NWVkMmRiOTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcApA
QCAtODQsNiArODQsNyBAQAogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmgiCisj
aW5jbHVkZSAiSlNUZXN0TmFtZXNwYWNlQ29uc3QuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lc3Bh
Y2VPYmplY3QuaCIKICNpbmNsdWRlICJKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlLmgiCiAjaW5jbHVkZSAiSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmgiCkBAIC0yMTgsNiAr
MjE5LDcgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2UKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lc3Bh
Y2VDb25zdENvbnN0cnVjdG9yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdF9UZXN0SW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yKTsKICNpZiBFTkFC
TEUoQ29uZGl0aW9uRGVyaXZlZCkKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdF9UZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3Rvcik7CkBA
IC0yNjAsNyArMjYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpT
VGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDU0LCAtMSB9LAorICAgIHsgNTUs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CkBAIC0yNjgsNyArMjcwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4
IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDYzLCAtMSB9LAorICAgIHsg
NjQsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCkBAIC0yODgsMTEgKzI5MCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjcsIC0xIH0sCisg
ICAgeyA2OCwgLTEgfSwKICAgICB7IDEzLCAyNjEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKKyAgICB7IDQ5LCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzMyLDcgKzMzNCw3IEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RU
YWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgMzAsIC0xIH0sCi0gICAgeyA1NiwgLTEgfSwKKyAgICB7IDU3LCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzQxLDcgKzM0Myw3
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmpl
Y3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDksIDI1NyB9LAog
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1OCwgLTEgfSwKKyAgICB7IDU5LCAtMSB9LAogICAgIHsg
MTksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzg3LDcgKzM4
OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxP
YmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1MywgLTEgfSwKKyAgICB7IDU0LCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDA1LDEw
ICs0MDcsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEds
b2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDY0LCAtMSB9LAotICAgIHsgLTEsIC0xIH0s
CiAgICAgeyA2NSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAorICAgIHsgNjYsIC0xIH0sCisgICAg
eyAtMSwgLTEgfSwKICAgICB7IDI3LCAtMSB9LAogICAgIHsgMzIsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKQEAgLTQyMiw3ICs0MjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAxNSwgMjYwIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDU5LCAtMSB9LAor
ICAgIHsgNjAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCkBAIC00MzUsNyArNDM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0
SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgMTYsIDI1NiB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA2MiwgLTEg
fSwKKyAgICB7IDYzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LApAQCAtNDY3LDcgKzQ2OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29t
cGFjdEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1Nywg
LTEgfSwKKyAgICB7IDU4LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAxLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCkBAIC00NzYsMTAgKzQ3OCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsg
NDksIDI2NCB9LAorICAgIHsgNTAsIDI2NCB9LAogICAgIHsgNywgMjYzIH0sCiAgICAgeyAtMSwg
LTEgfSwKLSAgICB7IDYwLCAtMSB9LAorICAgIHsgNjEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00OTYsMTAgKzQ5OCwxMCBAQCBz
dGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFi
bGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IDMsIC0xIH0sCi0gICAgeyA1MSwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAogICAgIHsgNTIsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDUzLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC01MTEs
MTAgKzUxMywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0
R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgNDAsIC0xIH0sCiAgICAgeyA0
MiwgLTEgfSwKICAgICB7IDQ0LCAtMSB9LAotICAgIHsgNTAsIC0xIH0sCi0gICAgeyA1NSwgLTEg
fSwKLSAgICB7IDYxLCAtMSB9LAotICAgIHsgNjYsIC0xIH0sCisgICAgeyA1MSwgLTEgfSwKKyAg
ICB7IDU2LCAtMSB9LAorICAgIHsgNjIsIC0xIH0sCisgICAgeyA2NywgLTEgfSwKIH07CiAKIApA
QCAtNTc3LDYgKzU3OSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZVZhbHVlc1tdID0KICAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAgICAgeyAi
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisg
ICAgeyAiVGVzdE5hbWVzcGFjZUNvbnN0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE5hbWVzcGFjZUNvbnN0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjaWYgRU5BQkxFKENvbmRpdGlvbkRl
cml2ZWQpCiAgICAgeyAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
ZWxzZQpAQCAtNjA2LDcgKzYwOSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RHbG9iYWxPYmplY3RUYWJsZVZhbHVlc1tdID0KICAgICB7ICJyZWd1bGFyT3BlcmF0aW9uIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3JlZ3VsYXJPcGVyYXRpb24pLCAoaW50
cHRyX3QpICgxKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2Jh
bE9iamVjdFRhYmxlID0geyA2OCwgMjU1LCB0cnVlLCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmluZm8o
KSwgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVWYWx1ZXMsIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxl
SW5kZXggfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGUg
PSB7IDY5LCAyNTUsIHRydWUsIEpTVGVzdEdsb2JhbE9iamVjdDo6aW5mbygpLCBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZVZhbHVlcywgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleCB9OwogLyog
SGFzaCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CkBAIC0xMzgw
LDYgKzEzODMsMTcgQEAgSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGUKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgYXR0cmlidXRlTmFtZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdE5hbWVzcGFjZUNvbnN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkK
K3sKKyAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIEpT
VGVzdE5hbWVzcGFjZUNvbnN0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZXNwYWNl
Q29uc3RDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
YXR0cmlidXRlTmFtZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdEludGVyZmFjZU5hbWVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewog
ICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lc3BhY2VDb25zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNw
YWNlQ29uc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMmY5ZWU0YjY0NjhlNzBkODViY2NiZThjMTVjMWEx
M2I5OTIxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3QuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisv
KgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdz
LnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJK
U1Rlc3ROYW1lc3BhY2VDb25zdC5oIgorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiRXh0ZW5kZWRET01DbGllbnRJc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJFeHRl
bmRlZERPTUlzb1N1YnNwYWNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdElubGluZXMuaCIKKyNp
bmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlRlc3ROYW1lc3BhY2VDb25z
dC5oIgorI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0NJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNEZXN0cnVj
dGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmpl
Y3RQcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvck1hY3Jv
cy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5oPgorI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgor
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK3VzaW5nIEpT
VGVzdE5hbWVzcGFjZUNvbnN0RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q2Fs
bGFibGU8SlNUZXN0TmFtZXNwYWNlQ29uc3Q+OworCisvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1
Y3RvciAqLworCitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZXNwYWNlQ29u
c3RDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQoreworICAgIHsgIlRFU1RfRkxBRyIsIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIHsgKGxvbmcgbG9uZykoZmFsc2UpIH0gfSwKKyAgICB7ICJURVNUX0JJVF9NQVNLIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBO
b0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgweDAwMDBmYzAwKSB9IH0sCit9OworCitzdGF0aWNf
YXNzZXJ0KFRlc3ROYW1lc3BhY2VDb25zdDo6VEVTVF9GTEFHID09IGZhbHNlLCAiVEVTVF9GTEFH
IGluIFRlc3ROYW1lc3BhY2VDb25zdCBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwor
c3RhdGljX2Fzc2VydChUZXN0TmFtZXNwYWNlQ29uc3Q6OlRFU1RfQklUX01BU0sgPT0gMHgwMDAw
ZmMwMCwgIlRFU1RfQklUX01BU0sgaW4gVGVzdE5hbWVzcGFjZUNvbnN0IGRvZXMgbm90IG1hdGNo
IHZhbHVlIGZyb20gSURMIik7CisKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5h
bWVzcGFjZUNvbnN0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lc3BhY2VDb25z
dCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0TmFtZXNwYWNlQ29uc3RET01Db25zdHJ1Y3RvcikgfTsKKwordGVtcGxhdGU8PiBKU1Zh
bHVlIEpTVGVzdE5hbWVzcGFjZUNvbnN0RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
K3sKKyAgICBVTlVTRURfUEFSQU0odm0pOworICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2JqZWN0
UHJvdG90eXBlKCk7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lc3BhY2VDb25zdERP
TUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFO
U0lUSU9OKCk7CisgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3ROYW1lc3BhY2VD
b25zdDo6aW5mbygpLCBKU1Rlc3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yVGFibGVWYWx1ZXMs
ICp0aGlzKTsKKyAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKK30KKworY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdE5hbWVzcGFjZUNvbnN0OjpzX2luZm8gPSB7ICJUZXN0TmFtZXNwYWNlQ29u
c3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdE5hbWVzcGFjZUNvbnN0KSB9OworCitKU1Rlc3ROYW1lc3BhY2VDb25zdDo6SlNUZXN0
TmFtZXNwYWNlQ29uc3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpCisgICAgOiBKU0RPTU9iamVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkg
eyB9CisKK3ZvaWQgSlNUZXN0TmFtZXNwYWNlQ29uc3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
K3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZt
LCBpbmZvKCkpKTsKKworICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVE
T01PYmplY3QsIFRlc3ROYW1lc3BhY2VDb25zdD46OnZhbHVlLCAiSW50ZXJmYWNlIGlzIG5vdCBt
YXJrZWQgYXMgW0FjdGl2ZURPTU9iamVjdF0gZXZlbiB0aG91Z2ggaW1wbGVtZW50YXRpb24gY2xh
c3Mgc3ViY2xhc3NlcyBBY3RpdmVET01PYmplY3QuIik7CisKK30KKworSlNWYWx1ZSBKU1Rlc3RO
YW1lc3BhY2VDb25zdDo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1Rlc3RO
YW1lc3BhY2VDb25zdERPTUNvbnN0cnVjdG9yLCBET01Db25zdHJ1Y3RvcklEOjpUZXN0TmFtZXNw
YWNlQ29uc3Q+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KSk7Cit9CisKK3ZvaWQgSlNUZXN0TmFtZXNwYWNlQ29uc3Q6OmRlc3Ryb3koSlNDOjpKU0Nl
bGwqIGNlbGwpCit7CisgICAgSlNUZXN0TmFtZXNwYWNlQ29uc3QqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU1Rlc3ROYW1lc3BhY2VDb25zdCo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPkpT
VGVzdE5hbWVzcGFjZUNvbnN0Ojp+SlNUZXN0TmFtZXNwYWNlQ29uc3QoKTsKK30KKworSlNDOjpH
Q0NsaWVudDo6SXNvU3Vic3BhY2UqIEpTVGVzdE5hbWVzcGFjZUNvbnN0OjpzdWJzcGFjZUZvcklt
cGwoSlNDOjpWTSYgdm0pCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN1YnNwYWNlRm9ySW1wbDxK
U1Rlc3ROYW1lc3BhY2VDb25zdCwgVXNlQ3VzdG9tSGVhcENlbGxUeXBlOjpObz4odm0sCisgICAg
ICAgIFtdIChhdXRvJiBzcGFjZXMpIHsgcmV0dXJuIHNwYWNlcy5tX2NsaWVudFN1YnNwYWNlRm9y
VGVzdE5hbWVzcGFjZUNvbnN0LmdldCgpOyB9LAorICAgICAgICBbXSAoYXV0byYgc3BhY2VzLCBh
dXRvJiYgc3BhY2UpIHsgc3BhY2VzLm1fY2xpZW50U3Vic3BhY2VGb3JUZXN0TmFtZXNwYWNlQ29u
c3QgPSBXVEZNb3ZlKHNwYWNlKTsgfSwKKyAgICAgICAgW10gKGF1dG8mIHNwYWNlcykgeyByZXR1
cm4gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZXNwYWNlQ29uc3QuZ2V0KCk7IH0sCisgICAg
ICAgIFtdIChhdXRvJiBzcGFjZXMsIGF1dG8mJiBzcGFjZSkgeyBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3ROYW1lc3BhY2VDb25zdCA9IFdURk1vdmUoc3BhY2UpOyB9CisgICAgKTsKK30KKworCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZXNwYWNlQ29uc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lc3BhY2VDb25zdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMzUwMTY4ODE5NzkwMzcz
NDJiMmQxYTg3NTYyM2NlNTFhOWE1ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3QuaApAQCAtMCww
ICsxLDYyIEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBz
b3VyY2UgcHJvamVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVy
YXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiSlNET01XcmFwcGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNU
ZXN0TmFtZXNwYWNlQ29uc3QgOiBwdWJsaWMgSlNET01PYmplY3QgeworcHVibGljOgorICAgIHVz
aW5nIEJhc2UgPSBKU0RPTU9iamVjdDsKKyAgICBzdGF0aWMgSlNUZXN0TmFtZXNwYWNlQ29uc3Qq
IGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQorICAgIHsKKyAgICAgICAgSlNUZXN0TmFtZXNwYWNlQ29uc3QqIHB0ciA9IG5l
dyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0TmFtZXNwYWNlQ29uc3Q+KGdsb2Jh
bE9iamVjdC0+dm0oKSkpIEpTVGVzdE5hbWVzcGFjZUNvbnN0KHN0cnVjdHVyZSwgKmdsb2JhbE9i
amVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsK
KyAgICAgICAgcmV0dXJuIHB0cjsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Qzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpT
Qzo6Tm9uQXJyYXkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3Ry
dWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMgSlNDOjpHQ0NsaWVu
dDo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQorICAgIHsKKyAgICAgICAg
aWYgY29uc3RleHByIChtb2RlID09IEpTQzo6U3Vic3BhY2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gc3Vic3BhY2VGb3JJ
bXBsKHZtKTsKKyAgICB9CisgICAgc3RhdGljIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBz
dWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pOworcHJvdGVjdGVkOgorICAgIEpTVGVzdE5hbWVz
cGFjZUNvbnN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmKTsKKworICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOworfTsKKworCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9T
dXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKaW5kZXggMWNjOGZhNWI0ZTdj
YTk5OTJmNmQyYjI2ZWE2MGNkYjFmZmI1NzY0OC4uYjgzZTY2ZDc0OTU2ZDQ3NDhlNGE1MTMyNjBl
Zjg5NzhhNzM0YTlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKQEAgLTg2
LDYgKzg2LDcgQEAgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5o
OgogSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oOiAKIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcy5oOiAKIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMuaDogCitKU1Rlc3ROYW1lc3BhY2VDb25zdC5oOiAKIEpTVGVzdE5hbWVzcGFjZU9i
amVjdC5oOiBUZXN0UGFydGlhbE5hbWVzcGFjZU9iamVjdC5pZGwKIFRlc3RQYXJ0aWFsTmFtZXNw
YWNlT2JqZWN0LmlkbDoKIEpTVGVzdE5vZGUuaDogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVzcGFjZUNvbnN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TmFtZXNwYWNlQ29uc3QuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjExMzE2M2YwNzk5ZDdmYTYwMzlhOTRhYTZlZDVmMjAxOTBkMmQ2NmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVz
cGFjZUNvbnN0LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIy
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBJREwg
ZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0
cmFja2luZworLy8gY2hhbmdlcyBpbiBpdHMgb3V0cHV0LgorWworICAgIEV4cG9zZWQ9VGVzdEds
b2JhbE9iamVjdCwKK10gbmFtZXNwYWNlIFRlc3ROYW1lc3BhY2VDb25zdCB7CisgICAgY29uc3Qg
Ym9vbGVhbiBURVNUX0ZMQUcgPSBmYWxzZTsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIFRFU1Rf
QklUX01BU0sgPSAweDAwMDBmYzAwOworfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453804</attachid>
            <date>2022-03-03 17:35:36 -0800</date>
            <delta_ts>2022-03-04 14:09:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232557-20220304113535.patch</filename>
            <type>text/plain</type>
            <size>26932</size>
            <attacher name="Dan Glastonbury">djg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ0ZjBlZDEwZjRhOTg4
MWZmMTdjZTQ3YTQ2NTU4OWJjNmIzZjQyNi4uMTBkODRhM2Q4NjJkNjkwMDkyMzA0ZjIyMWU0OTQz
YTAyOWNmODI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAzLTAyICBEYW4g
R2xhc3RvbmJ1cnkgIDxkamdAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgY29uc3RhbnRz
IGluIElETCBuYW1lc3BhY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNTU3CisgICAgICAgIDxyYWRyOi8vcHJvYmxlbS84NTE0MjE2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBiaW5k
aW5ncy9zY3JpcHQvdGVzdC9UZXN0TmFtZXNwYWNlQ29uc3QuaWRsCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgSWYgbmFtZXNwYWNlIGNvbnRhaW5zIG9ubHkg
Y29uc3RhbnRzLCBnbG9iYWxPYmplY3QgaXMgdW51c2VkCisgICAgICAgIHByb2R1Y2VzIGEgY29t
cGlsZSBlcnJvci4gQWRkIFVOVVNFRF9QQVJBTSB0byBxdWlldCBlcnJvci4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKGNvbnZlcnROYW1lc3BhY2VUb0ludGVyZmFj
ZSk6IENvcHkgbmFtZXNwYWNlIGNvbnN0YW50cyB0byBuZXcgaW50ZXJmYWNlLgorICAgICAgICAo
YXBwbHlUeXBlZGVmcyk6IEFwcGx5IHR5cGVkZWZzIHRvIG5hbWVzcGFjZSBjb25zdGFudHMuCisg
ICAgICAgIChwYXJzZU5hbWVzcGFjZSk6IEFkZGVkIHBhcnNlZCBjb25zdGFudHMgdG8gbmFtZXNw
YWNlJ3MgbGlzdCBvZiBjb25zdGFudHMuCisgICAgICAgIChwYXJzZU5hbWVzcGFjZU1lbWJlcik6
IEFjY2VwdCBjb25zdGFudHMgYXMgbmFtZXNwYWNlIG1lbWJlcnMuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3JzLmlkbDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvKjogVXBkYXRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVzcGFjZUNvbnN0LmlkbDogQWRkZWQuCisK
IDIwMjItMDMtMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAg
VGV4dCBtYW5pcHVsYXRpb24gZG9lcyBub3Qgb2JzZXJ2ZSB1cGRhdGVkIHRpdGxlIGVsZW1lbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggMDEwMmNjZTI5ZTUyYzFjMWRkZmY4NWYxNWRkNDk0ZTRkOWFjNzBhMC4uNDkwMjk3
MDZkM2RiNWU4NmQyMjY0YmFmZmJlMDliMDEyMjZjNWJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc4NzgsNiArNzg3
OCwxMCBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKIAogICAgIG15IEBy
dW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBHZXRSdW50aW1lRW5hYmxlZFN0YXRpY1Byb3BlcnRp
ZXMoJGludGVyZmFjZSk7CiAKKyAgICBpZiAoJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Qg
JiYgc2NhbGFyKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMpID09IDApIHsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpO1xuIik7Cisg
ICAgfQorCiAgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUgKEBydW50aW1lRW5h
YmxlZFByb3BlcnRpZXMpIHsKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVH
ZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJG9wZXJhdGlvbk9yQXR0cmlidXRl
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMUGFyc2VyLnBtCmluZGV4IGZlZTE5ODM3NDU0YmIzNDk5ZGZjNTczZGU2YTdhZjFi
NGUzZjcwMmEuLjFjZGQyYzFhYmEzNjdjZjQ2ZGM5MTMwNmQ0ZjY3MWFjYWJiZmNkZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkBAIC0xODcsNiAr
MTg3LDcgQEAgc3RydWN0KCBJRExDYWxsYmFja0Z1bmN0aW9uID0+IHsKICMgaHR0cHM6Ly93ZWJp
ZGwuc3BlYy53aGF0d2cub3JnLyNpZGwtbmFtZXNwYWNlcwogc3RydWN0KCBJRExOYW1lc3BhY2Ug
PT4gewogICAgIG5hbWUgPT4gJyQnLAorICAgIGNvbnN0YW50cyA9PiAnQCcsICMgTGlzdCBvZiAn
SURMQ29uc3RhbnQnCiAgICAgb3BlcmF0aW9ucyA9PiAnQCcsICMgTGlzdCBvZiAnSURMT3BlcmF0
aW9uJwogICAgIGF0dHJpYnV0ZXMgPT4gJ0AnLCAjIExpc3Qgb2YgJ0lETEF0dHJpYnV0ZScKICAg
ICBpc1BhcnRpYWwgPT4gJyQnLCAjIFVzZWQgZm9yIHBhcnRpYWwgbmFtZXNwYWNlcwpAQCAtMzM0
LDYgKzMzNSw4IEBAIHN1YiBjb252ZXJ0TmFtZXNwYWNlVG9JbnRlcmZhY2UKICAgICAgICAgcHVz
aChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9LCAkYXR0cmlidXRlKTsKICAgICB9CiAKKyAgICBw
dXNoKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSwgQHskbmFtZXNwYWNlLT5jb25zdGFudHN9KTsK
KwogICAgICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KDEpOwogICAgICRpbnRlcmZhY2Ut
PmlzUGFydGlhbCgkbmFtZXNwYWNlLT5pc1BhcnRpYWwpOwogICAgICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcygkbmFtZXNwYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOwpAQCAtNjIwLDcg
KzYyMyw3IEBAIG15ICRuZXh0RGljdGlvbmFyeU1lbWJlcl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xE
T01TdHJpbmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5CiBteSAkbmV4dENhbGxiYWNrSW50ZXJm
YWNlTWVtYmVyc18xID0gJ14oXCh8Y29uc3R8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5n
fGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNl
fHNob3J0fHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5l
eHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJp
bmd8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8Y29uc3RydWN0b3J8ZGVsZXRlcnxk
b3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2Vx
dWVuY2V8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnxzeW1ib2x8dW5kZWZpbmVkfHVu
cmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15ICRuZXh0TWl4aW5NZW1iZXJzXzEgPSAnXihcKHxh
dHRyaWJ1dGV8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGFueXxib29sZWFufGJ5dGV8
Y29uc3R8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNo
b3J0fHN0cmluZ2lmaWVyfHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQn
OwotbXkgJG5leHROYW1lc3BhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmlu
Z3xVU1ZTdHJpbmd8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0
ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2hvcnR8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8
dW5zaWduZWQpJCc7CitteSAkbmV4dE5hbWVzcGFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJp
bmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xhbnl8Ym9vbGVhbnxieXRlfGNvbnN0fGRvdWJsZXxmbG9h
dHxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzaG9ydHxzeW1ib2x8dW5kZWZp
bmVkfHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15ICRuZXh0UGFydGlhbEludGVyZmFjZU1l
bWJlcl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfGFueXxhdHRyaWJ1
dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0
fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNldHRlcnxzaG9ydHxzdGF0aWN8
c3RyaW5naWZpZXJ8c3ltYm9sfHVuZGVmaW5lZHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBt
eSAkbmV4dFNpbmdsZVR5cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xi
b29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0
fHN5bWJvbHx1bmRlZmluZWR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRBcmd1
bWVudE5hbWVfMSA9ICdeKGFzeW5jfGF0dHJpYnV0ZXxjYWxsYmFja3xjb25zdHxjb25zdHJ1Y3Rv
cnxkZWxldGVyfGRpY3Rpb25hcnl8ZW51bXxnZXR0ZXJ8aW5jbHVkZXN8aW5oZXJpdHxpbnRlcmZh
Y2V8aXRlcmFibGV8bWFwbGlrZXxtaXhpbnxuYW1lc3BhY2V8cGFydGlhbHxyZWFkb25seXxyZXF1
aXJlZHxzZXRsaWtlfHNldHRlcnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlwZWRlZnx1bnJlc3RyaWN0
ZWQpJCc7CkBAIC03MTMsNiArNzE2LDkgQEAgc3ViIGFwcGx5VHlwZWRlZnMKICAgICAgICAgfSBl
bHNpZiAocmVmKCRkZWZpbml0aW9uKSBlcSAiSURMQ2FsbGJhY2tGdW5jdGlvbiIpIHsKICAgICAg
ICAgICAgICRzZWxmLT5hcHBseVR5cGVkZWZzVG9PcGVyYXRpb24oJGRlZmluaXRpb24tPm9wZXJh
dGlvbik7CiAgICAgICAgIH0gZWxzaWYgKHJlZigkZGVmaW5pdGlvbikgZXEgIklETE5hbWVzcGFj
ZSIpIHsKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkZWZpbml0aW9uLT5j
b25zdGFudHN9KSB7CisgICAgICAgICAgICAgICAgJGNvbnN0YW50LT50eXBlKCRzZWxmLT50eXBl
QnlBcHBseWluZ1R5cGVkZWZzKCRjb25zdGFudC0+dHlwZSkpOworICAgICAgICAgICAgfQogICAg
ICAgICAgICAgZm9yZWFjaCBteSAkb3BlcmF0aW9uIChAeyRkZWZpbml0aW9uLT5vcGVyYXRpb25z
fSkgewogICAgICAgICAgICAgICAgICRzZWxmLT5hcHBseVR5cGVkZWZzVG9PcGVyYXRpb24oJG9w
ZXJhdGlvbik7CiAgICAgICAgICAgICB9CkBAIC0xMDU2LDYgKzEwNjIsMTAgQEAgc3ViIHBhcnNl
TmFtZXNwYWNlCiAgICAgICAgICAgICAgICAgcHVzaChAeyRuYW1lc3BhY2UtPmF0dHJpYnV0ZXN9
LCAkbmFtZXNwYWNlTWVtYmVyKTsKICAgICAgICAgICAgICAgICBuZXh0OwogICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKHJlZigkbmFtZXNwYWNlTWVtYmVyKSBlcSAiSURMQ29uc3RhbnQi
KSB7CisgICAgICAgICAgICAgICAgcHVzaChAeyRuYW1lc3BhY2UtPmNvbnN0YW50c30sICRuYW1l
c3BhY2VNZW1iZXIpOworICAgICAgICAgICAgICAgIG5leHQ7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAocmVmKCRuYW1lc3BhY2VNZW1iZXIpIGVxICJJRExPcGVyYXRpb24iKSB7CiAg
ICAgICAgICAgICAgICAgcHVzaChAeyRuYW1lc3BhY2UtPm9wZXJhdGlvbnN9LCAkbmFtZXNwYWNl
TWVtYmVyKTsKICAgICAgICAgICAgICAgICBuZXh0OwpAQCAtMTA5OCw2ICsxMTA4LDkgQEAgc3Vi
IHBhcnNlTmFtZXNwYWNlTWVtYmVyCiAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KICAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInJlYWRvbmx5IikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInJlYWRvbmx5IiwgX19MSU5FX18pOwogICAgICAgICBteSAkYXR0cmlidXRl
ID0gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9CaW5kaW5nVGVz
dEdsb2JhbENvbnN0cnVjdG9ycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQmluZGluZ1Rlc3RHbG9iYWxDb25zdHJ1Y3RvcnMuaWRsCmluZGV4IDRkNzgyZDZlOWM1
ZGUxYjYzOWI1ZTVjNzE4N2E4ZDdmN2ZkOTgyNTQuLjM1ODY2NTUzNWIwN2YxMWZhMjk5MDBjMTJh
MTA5NTkyYjljODcwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9CaW5kaW5nVGVzdEdsb2JhbENvbnN0cnVjdG9ycy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0JpbmRpbmdUZXN0R2xvYmFsQ29uc3RydWN0b3Jz
LmlkbApAQCAtNDUsNiArNDUsNyBAQCBwYXJ0aWFsIGludGVyZmFjZSBUZXN0R2xvYmFsT2JqZWN0
IHsKICAgICBhdHRyaWJ1dGUgVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvciBUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluczsK
ICAgICBhdHRyaWJ1dGUgVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0NvbnN0cnVjdG9yIFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXM7CiAgICAgYXR0cmlidXRlIFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IgVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnM7CisgICAgYXR0cmlidXRlIFRlc3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yIFRlc3RO
YW1lc3BhY2VDb25zdDsKICAgICBbU2VjdXJlQ29udGV4dF0gYXR0cmlidXRlIFRlc3ROYW1lc3Bh
Y2VPYmplY3RDb25zdHJ1Y3RvciBUZXN0SW50ZXJmYWNlTmFtZTsKICAgICBbQ29uZGl0aW9uYWw9
Q29uZGl0aW9uRGVyaXZlZF0gYXR0cmlidXRlIFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yIFRlc3RPcGVyYXRpb25Db25kaXRpb25hbDsKICAgICBhdHRyaWJ1dGUgVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvciBUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKaW5kZXgg
Yzg4ZDllMWI5MDE4ZjZhZjEyNDM5NmRiYzNhOTM5ZjAwMDU4ZTBkMi4uNGYxNGE2OWEyMGYwYTMw
MTM5OTQwN2RjMDBiYzgwNjVlZDJkYjkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAK
QEAgLTg0LDYgKzg0LDcgQEAKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5oIgor
I2luY2x1ZGUgIkpTVGVzdE5hbWVzcGFjZUNvbnN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZXNw
YWNlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZS5oIgogI2luY2x1ZGUgIkpTVGVzdFBsdWdpbkludGVyZmFjZS5oIgpAQCAtMjE4LDYg
KzIxOSw3IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdlCiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZXNw
YWNlQ29uc3RDb25zdHJ1Y3Rvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RfVGVzdEludGVyZmFjZU5hbWVDb25zdHJ1Y3Rvcik7CiAjaWYgRU5B
QkxFKENvbmRpdGlvbkRlcml2ZWQpCiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOwpA
QCAtMjYwLDcgKzI2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBK
U1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1NCwgLTEgfSwKKyAgICB7IDU1
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LApAQCAtMjY4LDcgKzI3MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRl
eCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA2MywgLTEgfSwKKyAgICB7
IDY0LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LApAQCAtMjg4LDExICsyOTAsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFz
aEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDY3LCAtMSB9LAor
ICAgIHsgNjgsIC0xIH0sCiAgICAgeyAxMywgMjYxIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAotICAgIHsgLTEsIC0xIH0sCisgICAgeyA0OSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTMzMiw3ICszMzQsNyBA
QCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0
VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IDMwLCAtMSB9LAotICAgIHsgNTYsIC0xIH0sCisgICAgeyA1NywgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTM0MSw3ICszNDMs
NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2Jq
ZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA5LCAyNTcgfSwK
ICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTgsIC0xIH0sCisgICAgeyA1OSwgLTEgfSwKICAgICB7
IDE5LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTM4Nyw3ICsz
ODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFs
T2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTMsIC0xIH0sCisgICAgeyA1NCwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTQwNSwx
MCArNDA3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RH
bG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA2NCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9
LAogICAgIHsgNjUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDY2LCAtMSB9LAorICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAyNywgLTEgfSwKICAgICB7IDMyLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCkBAIC00MjIsNyArNDI0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFz
aEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgMTUsIDI2MCB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1OSwgLTEgfSwK
KyAgICB7IDYwLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LApAQCAtNDM1LDcgKzQzNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFj
dEhhc2hJbmRleCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJsZUluZGV4WzI2OF0gPSB7CiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IDE2LCAyNTYgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjIsIC0x
IH0sCisgICAgeyA2MywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKQEAgLTQ2Nyw3ICs0NjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENv
bXBhY3RIYXNoSW5kZXggSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleFsyNjhdID0gewogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTcs
IC0xIH0sCisgICAgeyA1OCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LApAQCAtNDc2LDEwICs0NzgsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7
IDQ5LCAyNjQgfSwKKyAgICB7IDUwLCAyNjQgfSwKICAgICB7IDcsIDI2MyB9LAogICAgIHsgLTEs
IC0xIH0sCi0gICAgeyA2MCwgLTEgfSwKKyAgICB7IDYxLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDk2LDEwICs0OTgsMTAgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFRh
YmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAzLCAtMSB9LAotICAgIHsgNTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKICAgICB7IDUyLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCisgICAgeyA1MywgLTEgfSwKKyAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTEx
LDEwICs1MTMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVz
dEdsb2JhbE9iamVjdFRhYmxlSW5kZXhbMjY4XSA9IHsKICAgICB7IDQwLCAtMSB9LAogICAgIHsg
NDIsIC0xIH0sCiAgICAgeyA0NCwgLTEgfSwKLSAgICB7IDUwLCAtMSB9LAotICAgIHsgNTUsIC0x
IH0sCi0gICAgeyA2MSwgLTEgfSwKLSAgICB7IDY2LCAtMSB9LAorICAgIHsgNTEsIC0xIH0sCisg
ICAgeyA1NiwgLTEgfSwKKyAgICB7IDYyLCAtMSB9LAorICAgIHsgNjcsIC0xIH0sCiB9OwogCiAK
QEAgLTU3Nyw2ICs1NzksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0R2xv
YmFsT2JqZWN0VGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsg
IlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAgICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAor
ICAgIHsgIlRlc3ROYW1lc3BhY2VDb25zdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2lmIEVOQUJMRShDb25kaXRpb25E
ZXJpdmVkKQogICAgIHsgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAog
I2Vsc2UKQEAgLTYwNiw3ICs2MDksNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0R2xvYmFsT2JqZWN0VGFibGVWYWx1ZXNbXSA9CiAgICAgeyAicmVndWxhck9wZXJhdGlvbiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9yZWd1bGFyT3BlcmF0aW9uKSwgKGlu
dHB0cl90KSAoMSkgfSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZSA9IHsgNjgsIDI1NSwgdHJ1ZSwgSlNUZXN0R2xvYmFsT2JqZWN0OjppbmZv
KCksIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlVmFsdWVzLCBKU1Rlc3RHbG9iYWxPYmplY3RUYWJs
ZUluZGV4IH07CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxl
ID0geyA2OSwgMjU1LCB0cnVlLCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmluZm8oKSwgSlNUZXN0R2xv
YmFsT2JqZWN0VGFibGVWYWx1ZXMsIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXggfTsKIC8q
IEhhc2ggdGFibGUgZm9yIGNvbnN0cnVjdG9yICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQpAQCAtMTM4
MCw2ICsxMzgzLDE3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlCiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGF0dHJpYnV0ZU5hbWUpOwogfQogCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3ROYW1lc3BhY2VDb25zdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3Qp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIHJldHVybiBK
U1Rlc3ROYW1lc3BhY2VDb25zdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKK30KKworSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZXNwYWNlQ29uc3RDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVzcGFj
ZUNvbnN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGF0dHJpYnV0ZU5hbWUpOworfQorCiBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVz
cGFjZUNvbnN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzJmOWVlNGI2NDY4ZTcwZDg1YmNjYmU4YzE1YzFh
MTNiOTkyMTZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZUNvbnN0LmNwcApAQCAtMCwwICsxLDExMCBAQAor
LyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2pl
Y3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5n
cy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SlNUZXN0TmFtZXNwYWNlQ29uc3QuaCIKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIkV4dGVuZGVkRE9NQ2xpZW50SXNvU3Vic3BhY2VzLmgiCisjaW5jbHVkZSAiRXh0
ZW5kZWRET01Jc29TdWJzcGFjZXMuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3RJbmxpbmVzLmgiCisj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJUZXN0TmFtZXNwYWNlQ29u
c3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT2Jq
ZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JNYWNy
b3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdWJzcGFjZUlubGluZXMuaD4KKyNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4K
KworCituYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCit1c2luZyBK
U1Rlc3ROYW1lc3BhY2VDb25zdERPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENh
bGxhYmxlPEpTVGVzdE5hbWVzcGFjZUNvbnN0PjsKKworLyogSGFzaCB0YWJsZSBmb3IgY29uc3Ry
dWN0b3IgKi8KKworc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVzcGFjZUNv
bnN0Q29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KK3sKKyAgICB7ICJURVNUX0ZMQUciLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50
cmluc2ljLCB7IChsb25nIGxvbmcpKGZhbHNlKSB9IH0sCisgICAgeyAiVEVTVF9CSVRfTUFTSyIs
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwg
Tm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMHgwMDAwZmMwMCkgfSB9LAorfTsKKworc3RhdGlj
X2Fzc2VydChUZXN0TmFtZXNwYWNlQ29uc3Q6OlRFU1RfRkxBRyA9PSBmYWxzZSwgIlRFU1RfRkxB
RyBpbiBUZXN0TmFtZXNwYWNlQ29uc3QgZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsK
K3N0YXRpY19hc3NlcnQoVGVzdE5hbWVzcGFjZUNvbnN0OjpURVNUX0JJVF9NQVNLID09IDB4MDAw
MGZjMDAsICJURVNUX0JJVF9NQVNLIGluIFRlc3ROYW1lc3BhY2VDb25zdCBkb2VzIG5vdCBtYXRj
aCB2YWx1ZSBmcm9tIElETCIpOworCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RO
YW1lc3BhY2VDb25zdERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZXNwYWNlQ29u
c3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdE5hbWVzcGFjZUNvbnN0RE9NQ29uc3RydWN0b3IpIH07CisKK3RlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3ROYW1lc3BhY2VDb25zdERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgVU5VU0VEX1BBUkFNKHZtKTsKKyAgICByZXR1cm4gZ2xvYmFsT2JqZWN0Lm9iamVj
dFByb3RvdHlwZSgpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZXNwYWNlQ29uc3RE
T01Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJB
TlNJVElPTigpOworICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0TmFtZXNwYWNl
Q29uc3Q6OmluZm8oKSwgSlNUZXN0TmFtZXNwYWNlQ29uc3RDb25zdHJ1Y3RvclRhYmxlVmFsdWVz
LCAqdGhpcyk7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbE9iamVjdCk7Cit9CisKK2NvbnN0IENs
YXNzSW5mbyBKU1Rlc3ROYW1lc3BhY2VDb25zdDo6c19pbmZvID0geyAiVGVzdE5hbWVzcGFjZUNv
bnN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lc3BhY2VDb25zdCkgfTsKKworSlNUZXN0TmFtZXNwYWNlQ29uc3Q6OkpTVGVz
dE5hbWVzcGFjZUNvbnN0KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQorICAgIDogSlNET01PYmplY3Qoc3RydWN0dXJlLCBnbG9iYWxPYmplY3Qp
IHsgfQorCit2b2lkIEpTVGVzdE5hbWVzcGFjZUNvbnN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0p
Cit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyh2
bSwgaW5mbygpKSk7CisKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZl
RE9NT2JqZWN0LCBUZXN0TmFtZXNwYWNlQ29uc3Q+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3Qg
bWFya2VkIGFzIFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNs
YXNzIHN1YmNsYXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOworCit9CisKK0pTVmFsdWUgSlNUZXN0
TmFtZXNwYWNlQ29uc3Q6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0
TmFtZXNwYWNlQ29uc3RET01Db25zdHJ1Y3RvciwgRE9NQ29uc3RydWN0b3JJRDo6VGVzdE5hbWVz
cGFjZUNvbnN0Pih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCkpOworfQorCit2b2lkIEpTVGVzdE5hbWVzcGFjZUNvbnN0OjpkZXN0cm95KEpTQzo6SlND
ZWxsKiBjZWxsKQoreworICAgIEpTVGVzdE5hbWVzcGFjZUNvbnN0KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0TmFtZXNwYWNlQ29uc3QqPihjZWxsKTsKKyAgICB0aGlzT2JqZWN0LT5K
U1Rlc3ROYW1lc3BhY2VDb25zdDo6fkpTVGVzdE5hbWVzcGFjZUNvbnN0KCk7Cit9CisKK0pTQzo6
R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBKU1Rlc3ROYW1lc3BhY2VDb25zdDo6c3Vic3BhY2VGb3JJ
bXBsKEpTQzo6Vk0mIHZtKQoreworICAgIHJldHVybiBXZWJDb3JlOjpzdWJzcGFjZUZvckltcGw8
SlNUZXN0TmFtZXNwYWNlQ29uc3QsIFVzZUN1c3RvbUhlYXBDZWxsVHlwZTo6Tm8+KHZtLAorICAg
ICAgICBbXSAoYXV0byYgc3BhY2VzKSB7IHJldHVybiBzcGFjZXMubV9jbGllbnRTdWJzcGFjZUZv
clRlc3ROYW1lc3BhY2VDb25zdC5nZXQoKTsgfSwKKyAgICAgICAgW10gKGF1dG8mIHNwYWNlcywg
YXV0byYmIHNwYWNlKSB7IHNwYWNlcy5tX2NsaWVudFN1YnNwYWNlRm9yVGVzdE5hbWVzcGFjZUNv
bnN0ID0gV1RGTW92ZShzcGFjZSk7IH0sCisgICAgICAgIFtdIChhdXRvJiBzcGFjZXMpIHsgcmV0
dXJuIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVzcGFjZUNvbnN0LmdldCgpOyB9LAorICAg
ICAgICBbXSAoYXV0byYgc3BhY2VzLCBhdXRvJiYgc3BhY2UpIHsgc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0TmFtZXNwYWNlQ29uc3QgPSBXVEZNb3ZlKHNwYWNlKTsgfQorICAgICk7Cit9CisKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVzcGFjZUNvbnN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZXNwYWNlQ29uc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTM1MDE2ODgxOTc5MDM3
MzQyYjJkMWE4NzU2MjNjZTUxYTlhNTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZUNvbnN0LmgKQEAgLTAs
MCArMSw2MiBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4g
c291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5l
cmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpT
VGVzdE5hbWVzcGFjZUNvbnN0IDogcHVibGljIEpTRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB1
c2luZyBCYXNlID0gSlNET01PYmplY3Q7CisgICAgc3RhdGljIEpTVGVzdE5hbWVzcGFjZUNvbnN0
KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIEpTVGVzdE5hbWVzcGFjZUNvbnN0KiBwdHIgPSBu
ZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5hbWVzcGFjZUNvbnN0PihnbG9i
YWxPYmplY3QtPnZtKCkpKSBKU1Rlc3ROYW1lc3BhY2VDb25zdChzdHJ1Y3R1cmUsICpnbG9iYWxP
YmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7
CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0M6OkpTQ2VsbCopOworCisgICAgREVDTEFSRV9JTkZPOworCisgICAgc3RhdGljIEpTQzo6U3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpLCBK
U0M6Ok5vbkFycmF5KTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VBY2Nlc3MgbW9kZT4gc3RhdGljIEpTQzo6R0NDbGll
bnQ6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7CisgICAgICAg
IGlmIGNvbnN0ZXhwciAobW9kZSA9PSBKU0M6OlN1YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkp
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9y
SW1wbCh2bSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6OkdDQ2xpZW50OjpJc29TdWJzcGFjZSog
c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKTsKK3Byb3RlY3RlZDoKKyAgICBKU1Rlc3ROYW1l
c3BhY2VDb25zdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jik7CisKKyAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKK307CisKKworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
U3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCmluZGV4IDFjYzhmYTViNGU3
Y2E5OTkyZjZkMmIyNmVhNjBjZGIxZmZiNTc2NDguLmI4M2U2NmQ3NDk1NmQ0NzQ4ZTRhNTEzMjYw
ZWY4OTc4YTczNGE5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCkBAIC04
Niw2ICs4Niw3IEBAIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIu
aDoKIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuaDogCiBKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuaDogCiBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zLmg6IAorSlNUZXN0TmFtZXNwYWNlQ29uc3QuaDogCiBKU1Rlc3ROYW1lc3BhY2VP
YmplY3QuaDogVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuaWRsCiBUZXN0UGFydGlhbE5hbWVz
cGFjZU9iamVjdC5pZGw6CiBKU1Rlc3ROb2RlLmg6IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROYW1lc3BhY2VDb25zdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVzcGFjZUNvbnN0LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMTMxNjNmMDc5OWQ3ZmE2MDM5YTk0YWE2ZWQ1ZjIwMTkwZDJkNjZlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROYW1l
c3BhY2VDb25zdC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIFRoaXMgSURM
IGZpbGUgaXMgZm9yIHRlc3RpbmcgdGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFuZCBmb3Ig
dHJhY2tpbmcKKy8vIGNoYW5nZXMgaW4gaXRzIG91dHB1dC4KK1sKKyAgICBFeHBvc2VkPVRlc3RH
bG9iYWxPYmplY3QsCitdIG5hbWVzcGFjZSBUZXN0TmFtZXNwYWNlQ29uc3QgeworICAgIGNvbnN0
IGJvb2xlYW4gVEVTVF9GTEFHID0gZmFsc2U7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBURVNU
X0JJVF9NQVNLID0gMHgwMDAwZmMwMDsKK307Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>