<?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>94639</bug_id>
          
          <creation_ts>2012-08-21 15:53:40 -0700</creation_ts>
          <short_desc>Speed up compilation of tests involving WebTransformationMatrix</short_desc>
          <delta_ts>2012-08-22 21:50:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>nbhargava</reporter>
          <assigned_to>nbhargava</assigned_to>
          <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>701218</commentid>
    <comment_count>0</comment_count>
    <who name="">nbhargava</who>
    <bug_when>2012-08-21 15:53:40 -0700</bug_when>
    <thetext>Speed up compilation of tests involving WebTransformationMatrix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701225</commentid>
    <comment_count>1</comment_count>
      <attachid>159786</attachid>
    <who name="">nbhargava</who>
    <bug_when>2012-08-21 15:57:55 -0700</bug_when>
    <thetext>Created attachment 159786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701229</commentid>
    <comment_count>2</comment_count>
    <who name="">nbhargava</who>
    <bug_when>2012-08-21 16:01:16 -0700</bug_when>
    <thetext>EXPECT_TRANSFORMATION_MATRIX_EQ was changed from a macro to a function. As a macro that expanded into 16 other macros, it caused an unneeded slow down of close to 45s in the compile time of CCLayerTreeHostCommonTest.cpp.

The one thing that is lost in this change is a more precise reporting of line numbers when the tests fail. However, given that tests don&apos;t fail often, but people may recompile files fairly often, it makes more sense to cut down on a somewhat large overhead.

Bugs have been filed to clang and gcc noting the errant compiler behavior: http://llvm.org/bugs/show_bug.cgi?id=13651 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54337</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701246</commentid>
    <comment_count>3</comment_count>
      <attachid>159790</attachid>
    <who name="">nbhargava</who>
    <bug_when>2012-08-21 16:15:28 -0700</bug_when>
    <thetext>Created attachment 159790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701294</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-21 16:43:55 -0700</bug_when>
    <thetext>I&apos;m OK with this as long as James or other compositor folks are.  Theyr&apos;e the ones who use these tests I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701296</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-21 16:46:02 -0700</bug_when>
    <thetext>This makes the test failures messages pretty much completely useless.  How far out would a clang fix be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701297</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-21 16:46:34 -0700</bug_when>
    <thetext>Alternately, could you play around with the gtest failure macros to try to make the failure message still useful but still use a function?  It has some functionality for reporting errors at specific places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701301</commentid>
    <comment_count>7</comment_count>
      <attachid>159790</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-21 16:49:03 -0700</bug_when>
    <thetext>Comment on attachment 159790
Patch

Perhaps EXPECT_PRED2() could solve this, or perhaps SCOPED_TRACE()?

r- until you can make failures point to the real location. it doesn&apos;t appear to be too hard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701302</commentid>
    <comment_count>8</comment_count>
    <who name="">nbhargava</who>
    <bug_when>2012-08-21 16:49:20 -0700</bug_when>
    <thetext>I&apos;m not sure how far out a clang fix is.

Given that it makes line number stuff difficult, I was looking at this http://code.google.com/p/googletest/wiki/AdvancedGuide#Using_Assertions_in_Sub-routines. Is it worth potentially adding this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701318</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-21 16:57:44 -0700</bug_when>
    <thetext>Yes, that&apos;s what I&apos;m suggesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701377</commentid>
    <comment_count>10</comment_count>
      <attachid>159815</attachid>
    <who name="">nbhargava</who>
    <bug_when>2012-08-21 17:39:01 -0700</bug_when>
    <thetext>Created attachment 159815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701385</commentid>
    <comment_count>11</comment_count>
      <attachid>159815</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-21 17:45:11 -0700</bug_when>
    <thetext>Comment on attachment 159815
Patch

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

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:188
&gt; +    {
&gt; +        SCOPED_TRACE(&quot;&quot;);
&gt; +        ExpectTransformationMatrixEq(identityMatrix, child-&gt;drawTransform());
&gt; +    }

instead of having to change all of these lines, could you have EXPECT_TRANS...() expand to a macro that creates a new scope, SCOPED_TRACE(), and calls the matcher function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702242</commentid>
    <comment_count>12</comment_count>
      <attachid>159995</attachid>
    <who name="">nbhargava</who>
    <bug_when>2012-08-22 13:07:12 -0700</bug_when>
    <thetext>Created attachment 159995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702243</commentid>
    <comment_count>13</comment_count>
      <attachid>159995</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-22 13:08:13 -0700</bug_when>
    <thetext>Comment on attachment 159995
Patch

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702244</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-22 13:08:44 -0700</bug_when>
    <thetext>I&apos;m not sure if you are a webkit committer or not - if not, you can set the &quot;commit-queue&quot; flag to ? and a committer will put it into the commit queue for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702356</commentid>
    <comment_count>15</comment_count>
      <attachid>159995</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 14:28:41 -0700</bug_when>
    <thetext>Comment on attachment 159995
Patch

Clearing flags on attachment: 159995

Committed r126352: &lt;http://trac.webkit.org/changeset/126352&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702358</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 14:28:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702685</commentid>
    <comment_count>17</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-22 21:50:41 -0700</bug_when>
    <thetext>Just a post-landing follow up.  I just now saw this code.

I think we should still encourage the use of EXPECT_TRANSFORMATION_MATRIX_EQ macro, so that this can be changed later if we want?

If you guys agree, I&apos;ll add a comment on this function as a drive by to one of my upcoming patches - https://bugs.webkit.org/show_bug.cgi?id=94542</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159786</attachid>
            <date>2012-08-21 15:57:55 -0700</date>
            <delta_ts>2012-08-21 16:15:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94639-20120821155754.patch</filename>
            <type>text/plain</type>
            <size>60665</size>
            <attacher>nbhargava</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxYjM3OTMwN2FhN2QwNTBjYThhMzM1ZmY3NGQ5YzBjOTA3MTY4YTcuLmY2ZTlhYTI3OGE5NTQx
YjNkMTllZjg4ODIzNzllZWQ2MWExNjVmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMjEgIE5pa2hpbCBCaGFyZ2F2YSAgPG5iaGFyZ2F2YUBn
b29nbGUuY29tPgorCisgICAgICAgIFNwZWVkIHVwIGNvbXBpbGF0aW9uIG9mIHRlc3RzIGludm9s
dmluZyBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRIHdhcyBj
aGFuZ2VkIGZyb20gYSBtYWNybyB0byBhIGZ1bmN0aW9uLgorICAgICAgICBBcyBhIG1hY3JvIHRo
YXQgZXhwYW5kZWQgaW50byAxNiBvdGhlciBtYWNyb3MsIGl0IGNhdXNlZCBhbiB1bm5lZWRlZAor
ICAgICAgICBzbG93IGRvd24gb2YgY2xvc2UgdG8gNDVzIGluIHRoZSBjb21waWxlIHRpbWUgb2Yg
Q0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdAorICAgICAgICBCdWdzIGhhdmUgYmVlbiBmaWxlZCB0
byBjbGFuZyBhbmQgZ2NjIG5vdGluZyB0aGUgZXJyYW50IGJlaGF2aW9yOgorICAgICAgICBodHRw
Oi8vbGx2bS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTEgYW5kIGh0dHA6Ly9nY2MuZ251
Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTQzMzcKKworICAgICAgICAqIHRlc3RzL0ND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
VGVzdENvbW1vbi5oOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEpOgorICAgICAgICAqIHRlc3RzL1dlYlRy
YW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoY2hl
Y2tQcm9ncmVzcyk6CisgICAgICAgICogdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisKIDIwMTItMDgtMTYgIFBldGVyIEJldmVy
bG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQg
REVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IDFlNmE1OThmY2I0YTE5NzAzOGZkYzM3Y2Q0
NjhmMzc3NjI2NGQ2YTguLjNlYWMzNTIzZDM2MmY5MDc3Nzc5ODljNGNkNTE5YWU2ZTc2YTU4MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LmNwcApAQCAtMTYyLDEwICsxNjIsMTAgQEAgVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yTm9PcExheWVyKQogCiAgICAg
ZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkp
OwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwg
Y2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Cisg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRy
YXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0
eU1hdHJpeCwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwg
Z3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiB9CiAKIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQpAQCAtMTc5
LDMwICsxNzksMzAgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFu
c2Zvcm1zRm9yU2luZ2xlTGF5ZXIpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhs
YXllci5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGFyYml0cmFyeVRyYW5zbGF0aW9uLCBGbG9hdFBv
aW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSwgZmFsc2UpOwog
ICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0
KCkpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkRHJhd1RyYW5zZm9ybSA9
IGlkZW50aXR5TWF0cml4OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhw
ZWN0ZWREcmF3VHJhbnNmb3JtLCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBsYXllci0+c2NyZWVuU3Bh
Y2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZERyYXdUcmFuc2Zvcm0sIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjogU2V0dGluZyB0aGUgYm91bmRzIG9mIHRoZSBsYXll
ciBzaG91bGQgbm90IGFmZmVjdCBlaXRoZXIgdGhlIGRyYXcgdHJhbnNmb3JtIG9yIHRoZSBzY3Jl
ZW5zcGFjZSB0cmFuc2Zvcm0uCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNsYXRp
b25Ub0NlbnRlcjsKICAgICB0cmFuc2xhdGlvblRvQ2VudGVyLnRyYW5zbGF0ZSg1LCA2KTsKICAg
ICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBpZGVudGl0eU1hdHJp
eCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIElu
dFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGxheWVyLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlk
ZW50aXR5TWF0cml4LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zv
cm0oKSk7CiAKICAgICAvLyBDYXNlIDM6IFRoZSBhbmNob3IgcG9pbnQgYnkgaXRzZWxmICh3aXRo
b3V0IGEgbGF5ZXIgdHJhbnNmb3JtKSBzaG91bGQgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIHRyYW5z
Zm9ybXMuCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMjUsIDAuMjUpLCBGbG9h
dFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KGxheWVyLmdldCgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBsYXllci0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0
cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7Cisg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgbGF5ZXItPnNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAgICAgLy8gQ2FzZSA0OiBBIGNoYW5nZSBpbiBhY3R1
YWwgcG9zaXRpb24gYWZmZWN0cyBib3RoIHRoZSBkcmF3IHRyYW5zZm9ybSBhbmQgc2NyZWVuIHNw
YWNlIHRyYW5zZm9ybS4KICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwb3NpdGlvblRyYW5z
Zm9ybTsKICAgICBwb3NpdGlvblRyYW5zZm9ybS50cmFuc2xhdGUoMCwgMS4yKTsKICAgICBzZXRM
YXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4yNSwgMC4yNSksIEZsb2F0UG9pbnQoMCwgMS4yZiks
IEludFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNm
b3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEocG9zaXRpb25UcmFuc2Zvcm0sIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocG9zaXRpb25UcmFuc2Zvcm0sIGxh
eWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKHBvc2l0aW9uVHJhbnNmb3JtLCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBvc2l0aW9uVHJhbnNmb3JtLCBsYXllci0+c2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDU6IEluIHRoZSBjb3JyZWN0IHNl
cXVlbmNlIG9mIHRyYW5zZm9ybXMsIHRoZSBsYXllciB0cmFuc2Zvcm0gc2hvdWxkIHByZS1tdWx0
aXBseSB0aGUgdHJhbnNsYXRpb25Ub0NlbnRlci4gVGhpcyBpcyBlYXNpbHkgdGVzdGVkIGJ5CiAg
ICAgLy8gICAgICAgICB1c2luZyBhIHNjYWxlIHRyYW5zZm9ybSwgYmVjYXVzZSBzY2FsZSBhbmQg
dHJhbnNsYXRpb24gYXJlIG5vdCBjb21tdXRhdGl2ZS4KQEAgLTIxMCw4ICsyMTAsOCBAQCBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW5nbGVMYXll
cikKICAgICBsYXllclRyYW5zZm9ybS5zY2FsZTNkKDIsIDIsIDEpOwogICAgIHNldExheWVyUHJv
cGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBpZGVudGl0eU1h
dHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMCwgMTIp
LCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0
eShsYXllci5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShsYXll
clRyYW5zZm9ybSwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShsYXllclRyYW5zZm9ybSwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEobGF5ZXJUcmFuc2Zvcm0s
IGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAg
IC8vIENhc2UgNjogVGhlIGxheWVyIHRyYW5zZm9ybSBzaG91bGQgb2NjdXIgd2l0aCByZXNwZWN0
IHRvIHRoZSBhbmNob3IgcG9pbnQuCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNs
YXRpb25Ub0FuY2hvcjsKQEAgLTIxOSw4ICsyMTksOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW5nbGVMYXllcikKICAgICBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBleHBlY3RlZFJlc3VsdCA9IHRyYW5zbGF0aW9uVG9BbmNob3IgKiBsYXll
clRyYW5zZm9ybSAqIHRyYW5zbGF0aW9uVG9BbmNob3IuaW52ZXJzZSgpOwogICAgIHNldExheWVy
UHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBpZGVudGl0
eU1hdHJpeCwgRmxvYXRQb2ludCgwLjUsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEw
LCAxMiksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNp
YmlsaXR5KGxheWVyLmdldCgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KGV4cGVjdGVkUmVzdWx0LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkUmVzdWx0LCBsYXllci0+c2NyZWVuU3BhY2VU
cmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFJl
c3VsdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwog
CiAgICAgLy8gQ2FzZSA3OiBWZXJpZnkgdGhhdCBwb3NpdGlvbiBwcmUtbXVsdGlwbGllcyB0aGUg
bGF5ZXIgdHJhbnNmb3JtLgogICAgIC8vICAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRp
b24gb2YgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXMgZG9lcyB0aGlzIGltcGxpY2l0bHksIGJ1dCBp
dCBpcwpAQCAtMjI4LDggKzIyOCw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwg
dmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQogICAgIGV4cGVjdGVkUmVzdWx0ID0gcG9z
aXRpb25UcmFuc2Zvcm0gKiB0cmFuc2xhdGlvblRvQW5jaG9yICogbGF5ZXJUcmFuc2Zvcm0gKiB0
cmFuc2xhdGlvblRvQW5jaG9yLmludmVyc2UoKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JU
ZXN0aW5nKGxheWVyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0
UG9pbnQoMC41LCAwKSwgRmxvYXRQb2ludCgwLCAxLjJmKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxz
ZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShsYXll
ci5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJl
c3VsdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRSZXN1bHQsIGxheWVy
LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWRSZXN1bHQsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxlSGllcmFy
Y2h5KQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxlSGllcmFyY2h5KQogICAgIHNldExheWVyUHJvcGVy
dGllc0ZvclRlc3RpbmcoY2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJp
eCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxNiwgMTgpLCBm
YWxzZSk7CiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgp
LCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0
UG9pbnQoMCwgMCksIEludFNpemUoNzYsIDc4KSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxh
dGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0
cml4LCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4
LCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhF
cShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjogcGFyZW50J3MgcG9zaXRpb24g
YWZmZWN0cyBjaGlsZCBhbmQgZ3JhbmRDaGlsZC4KICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBwYXJlbnRQb3NpdGlvblRyYW5zZm9ybTsKQEAgLTI1OCwxMCArMjU4LDEwIEBAIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbXBsZUhpZXJhcmNo
eSkKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVudGl0
eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwg
MCksIEludFNpemUoMTYsIDE4KSwgZmFsc2UpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRl
c3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDc2LCA3OCksIGZhbHNl
KTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVu
dC5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQb3Np
dGlvblRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPnNjcmVl
blNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEo
cGFyZW50UG9zaXRpb25UcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9y
bSwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRQb3NpdGlv
blRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50UG9zaXRpb25UcmFuc2Zvcm0sIGdyYW5kQ2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJl
bnRQb3NpdGlvblRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7
CiAKICAgICAvLyBDYXNlIDM6IHBhcmVudCdzIGxvY2FsIHRyYW5zZm9ybSBhZmZlY3RzIGNoaWxk
IGFuZCBncmFuZGNoaWxkCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggcGFyZW50TGF5ZXJU
cmFuc2Zvcm07CkBAIC0yNzMsMTAgKzI3MywxMCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5ZXJQ
cm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5
TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAx
OCksIGZhbHNlKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQu
Z2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwg
RmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNh
bGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBj
aGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRl
VHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxk
LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Cisg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0s
IGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0
ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAv
LyBDYXNlIDQ6IHBhcmVudCdzIHN1YmxheWVyTWF0cml4IGFmZmVjdHMgY2hpbGQgYW5kIGdyYW5k
Y2hpbGQKICAgICAvLyAgICAgICAgIHNjYWxpbmcgaXMgdXNlZCBoZXJlIGFnYWluIHNvIHRoYXQg
dGhlIGNvcnJlY3Qgc2VxdWVuY2Ugb2YgdHJhbnNmb3JtcyBpcyBwcm9wZXJseSB0ZXN0ZWQuCkBA
IC0yOTQsMTAgKzI5NCwxMCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlm
eVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9y
VGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9h
dFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsK
ICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgw
LCAwKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdU
cmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1Ry
YW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKHBhcmVudENv
bXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZmxhdHRlbmVkQ29tcG9zaXRlVHJhbnNmb3Jt
LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZmxhdHRlbmVkQ29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBh
cmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxk
LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGZsYXR0ZW5lZENvbXBvc2l0ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZsYXR0ZW5lZENvbXBvc2l0
ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAv
LyBDYXNlIDU6IHNhbWUgYXMgQ2FzZSA0LCBleGNlcHQgdGhhdCBjaGlsZCBkb2VzIHByZXNlcnZl
IDNELCBzbyB0aGUgZ3JhbmRDaGlsZCBzaG91bGQgcmVjZWl2ZSB0aGUgbm9uLWZsYXR0ZW5lZCBj
b21wb3NpdGUgdHJhbnNmb3JtLgogICAgIC8vCkBAIC0zMDUsMTAgKzMwNSwxMCBAQCBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJj
aHkpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRp
dHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAs
IDApLCBJbnRTaXplKDE2LCAxOCksIHRydWUpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRl
c3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDc2LCA3OCksIGZhbHNl
KTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVu
dC5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21w
b3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+c2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFu
c2Zvcm0sIGdyYW5kQ2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENv
bXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFu
ZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFu
c2Zvcm1zRm9yU2luZ2xlUmVuZGVyU3VyZmFjZSkKQEAgLTM0OCwxNCArMzQ4LDE0IEBAIFRFU1Qo
Q0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZVJlbmRl
clN1cmZhY2UpCiAKICAgICAvLyBUaGUgY2hpbGQgbGF5ZXIncyBkcmF3IHRyYW5zZm9ybSBzaG91
bGQgcmVmZXIgdG8gaXRzIG5ldyByZW5kZXIgc3VyZmFjZS4KICAgICAvLyBUaGUgc2NyZWVuLXNw
YWNlIHRyYW5zZm9ybSwgaG93ZXZlciwgc2hvdWxkIHN0aWxsIHJlZmVyIHRvIHRoZSByb290Lgot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGNoaWxk
LT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEo
cGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7
CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJl
bnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAog
ICAgIC8vIEJlY2F1c2UgdGhlIGdyYW5kQ2hpbGQgaXMgdGhlIG9ubHkgZHJhd2FibGUgY29udGVu
dCwgdGhlIGNoaWxkJ3MgcmVuZGVyU3VyZmFjZSB3aWxsIHRpZ2h0ZW4gaXRzIGJvdW5kcyB0byB0
aGUgZ3JhbmRDaGlsZC4KLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKHBhcmVu
dENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNl
KCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShw
YXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJUYXJnZXQoKS0+cmVuZGVyU3Vy
ZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgLy8gVGhlIHNjcmVlbiBzcGFjZSBpcyB0
aGUgc2FtZSBhcyB0aGUgdGFyZ2V0IHNpbmNlIHRoZSBjaGlsZCBzdXJmYWNlIGRyYXdzIGludG8g
dGhlIHJvb3QuCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21w
b3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJUYXJnZXQoKS0+cmVuZGVyU3VyZmFjZSgpLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJT
dXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JSZXBsaWNhKQpAQCAtNDAxLDggKzQw
MSw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0Zv
clJlcGxpY2EpCiAgICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7CiAgICAg
QVNTRVJUX0VRKGNoaWxkLCBjaGlsZC0+cmVuZGVyVGFyZ2V0KCkpOwogCi0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShyZXBsaWNhQ29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+
cmVuZGVyVGFyZ2V0KCktPnJlbmRlclN1cmZhY2UoKS0+cmVwbGljYURyYXdUcmFuc2Zvcm0oKSk7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShyZXBsaWNhQ29tcG9zaXRlVHJh
bnNmb3JtLCBjaGlsZC0+cmVuZGVyVGFyZ2V0KCktPnJlbmRlclN1cmZhY2UoKS0+cmVwbGljYVNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
cmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJT
dXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0
aW9uTWF0cml4RXEocmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdl
dCgpLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIH0K
IAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yUmVu
ZGVyU3VyZmFjZUhpZXJhcmNoeSkKQEAgLTUwOSw0NCArNTA5LDQ0IEBAIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJj
aHkpCiAgICAgLy8gIG5vdGUgdGhhdCBkcmF3IHRyYW5zZm9ybXMgYXJlIGRlc2NyaWJlZCB3aXRo
IHJlc3BlY3QgdG8gdGhlIG5lYXJlc3QgYW5jZXN0b3IgcmVuZGVyIHN1cmZhY2UKICAgICAvLyAg
YnV0IHNjcmVlbiBzcGFjZSB0cmFuc2Zvcm1zIGFyZSBkZXNjcmliZWQgd2l0aCByZXNwZWN0IHRv
IHRoZSByb290LgogICAgIC8vCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShB
LCBwYXJlbnQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01B
VFJJWF9FUShBICogQiAqIEEsIGNoaWxkT2ZSb290LT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hp
bGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShBLCBwYXJlbnQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShBICogQiAqIEEsIGNoaWxkT2ZSb290LT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hp
bGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCByZW5kZXJTdXJmYWNlMS0+ZHJhd1RyYW5zZm9ybSgp
KTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEIgKiBBLCBjaGlsZE9mUlMx
LT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEo
QiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1cmZhY2Ux
LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQiAq
IEEsIGNoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShCICogQSAqIEIgKiBBLCBncmFuZENoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm0o
KSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4
LCByZW5kZXJTdXJmYWNlMi0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKEIgKiBBLCBjaGlsZE9mUlMyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQiAqIEEgKiBCICogQSwgZ3JhbmRDaGls
ZE9mUlMyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoaWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1cmZhY2UyLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQiAqIEEsIGNoaWxkT2ZSUzItPmRyYXdUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShCICogQSAqIEIgKiBB
LCBncmFuZENoaWxkT2ZSUzItPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBWZXJpZnkgbGF5
ZXIgc2NyZWVuLXNwYWNlIHRyYW5zZm9ybXMKICAgICAvLwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoQSwgcGFyZW50LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBF
WFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSwgY2hpbGRPZlJvb3QtPnNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSwgcGFyZW50LT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEg
KiBCICogQSwgY2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVj
dFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJv
b3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShBICogQiAqIEEsIHJlbmRlclN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSAqIEIg
KiBBLCBjaGlsZE9mUlMxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hp
bGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShBICogQiAqIEEsIHJlbmRlclN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSAqIEIgKiBB
LCBjaGlsZE9mUlMxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJT
MS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKEEgKiBCICogQSAqIEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+c2NyZWVuU3BhY2VU
cmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAq
IEEgKiBCICogQSAqIEIgKiBBLCBjaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsK
LSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSAqIEIgKiBBICog
QiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSAqIEIgKiBBLCByZW5k
ZXJTdXJmYWNlMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShBICogQiAqIEEgKiBCICogQSAqIEIgKiBBLCBjaGlsZE9mUlMyLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEg
KiBCICogQSAqIEIgKiBBICogQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIFZlcmlmeSByZW5kZXIgc3VyZmFjZSB0cmFuc2Zv
cm1zLgogICAgIC8vCiAgICAgLy8gRHJhdyB0cmFuc2Zvcm0gb2YgcmVuZGVyIHN1cmZhY2UgMSBp
cyBkZXNjcmliZWQgd2l0aCByZXNwZWN0IHRvIHJvb3QuCi0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShBICogQiAqIEEsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCkt
PmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShB
ICogQiAqIFIsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJh
bnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBB
LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgp
KTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogUiwgcmVuZGVy
U3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+cmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBBLCByZW5kZXJTdXJm
YWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBSLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFj
ZSgpLT5yZXBsaWNhRHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKEEgKiBCICogQSwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICog
QiAqIFIsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFj
ZVRyYW5zZm9ybSgpKTsKICAgICAvLyBEcmF3IHRyYW5zZm9ybSBvZiByZW5kZXIgc3VyZmFjZSAy
IGlzIGRlc2NyaWJlZCB3aXRoIHJlc3BlY3QgdG8gcmVuZGVyIHN1cmZhY2UgMi4KLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+cmVuZGVy
U3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoQiAqIFIsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FE
cmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAq
IEIgKiBBICogQiAqIEEsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAq
IEIgKiBBICogQiAqIFIsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FT
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQiAqIFIsIHJlbmRlclN1cmZhY2Uy
LT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBBICogQiAqIEEsIHJlbmRlclN1cmZhY2UyLT5y
ZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBBICogQiAqIFIsIHJlbmRlclN1cmZhY2UyLT5yZW5k
ZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIFNh
bml0eSBjaGVjay4gSWYgdGhlc2UgZmFpbCB0aGVyZSBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUg
dGVzdCBpdHNlbGYuCiAgICAgLy8gSXQgaXMgZXhwZWN0ZWQgdGhhdCB3ZSBjb3JyZWN0bHkgc2V0
IHVwIHRyYW5zZm9ybXMgc28gdGhhdCB0aGUgeS1jb21wb25lbnQgb2YgdGhlIHNjcmVlbi1zcGFj
ZSB0cmFuc2Zvcm0KQEAgLTYwMSwxMiArNjAxLDEyIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvckZsYXR0ZW5pbmdMYXllcikKIAogICAgIC8vIFRo
ZSBjaGlsZCdzIGRyYXdUcmFuc2Zvcm0gc2hvdWxkIGhhdmUgYmVlbiB0YWtlbiBieSBpdHMgc3Vy
ZmFjZS4KICAgICBBU1NFUlRfVFJVRShjaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGREcmF3VHJhbnNmb3JtLCBj
aGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFNjcmVlblNwYWNlVHJhbnNmb3JtLCBj
aGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1Ry
YW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVk
Q2hpbGRTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxk
RHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFNjcmVlblNwYWNlVHJh
bnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGREcmF3VHJhbnNmb3JtLCBjaGlsZC0+
cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0
aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFNjcmVlblNwYWNlVHJhbnNmb3JtLCBjaGlsZC0+cmVu
ZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRTY3JlZW5TcGFj
ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkRHJhd1RyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGV4cGVjdGVkR3JhbmRDaGlsZFNjcmVlblNwYWNlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yRGVnZW5lcmF0ZUludGVybWVkaWF0ZUxheWVyKQpAQCAt
NjM0LDkgKzYzNCw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJh
bnNmb3Jtc0ZvckRlZ2VuZXJhdGVJbnRlcm1lZGlhdGVMYXllcikKICAgICBleGVjdXRlQ2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3QuZ2V0KCkpOwogCiAgICAgQVNTRVJU
X1RSVUUoY2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1Ry
YW5zZm9ybSgpKTsgLy8gVGhpcyBpcyB0aGUgcmVhbCB0ZXN0LCB0aGUgcmVzdCBhcmUgc2FuaXR5
IGNoZWNrcy4KLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0
cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIGNoaWxkLT5y
ZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7IC8vIFRoaXMgaXMgdGhlIHJlYWwgdGVz
dCwgdGhlIHJlc3QgYXJlIHNhbml0eSBjaGVja3MuCisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJp
ZnlSZW5kZXJTdXJmYWNlTGlzdEZvclJlbmRlclN1cmZhY2VXaXRoQ2xpcHBlZExheWVyKQpAQCAt
NzUyLDggKzc1Miw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Ny
b2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKICAgICBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0gPSBleHBlY3RlZENoaWxkVHJhbnNm
b3JtOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxk
VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+
ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVj
dGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENo
aWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgLy8gQ2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAx
MCwgMTAKICAgICBjaGlsZC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMTApKTsKQEAgLTc2
Myw4ICs3NjMsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9s
bENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogICAgIGV4cGVjdGVkQ2hpbGRU
cmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS50cmFu
c2xhdGUoLTEwLCAtMTApOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShl
eHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwg
Z3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNm
b3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25M
YXllcldpdGhUcmFuc2Zvcm1lZERpcmVjdENvbnRhaW5lcikKQEAgLTgwMCw4ICs4MDAsOCBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZv
ckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhw
ZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtID0gZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKIAotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwg
Y2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJh
bnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1Ry
YW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDIwCiAgICAg
Y2hpbGQtPnNldFNjcm9sbERlbHRhKEludFNpemUoMTAsIDIwKSk7CkBAIC04MTIsOCArODEyLDgg
QEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRp
b25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLnRy
YW5zbGF0ZSgtMTAsIC0yMCk7IC8vIHNjcm9sbERlbHRhCiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybS5tdWx0aXBseShub25Vbmlmb3JtU2NhbGUpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRD
aGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRH
cmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZv
ckZpeGVkUG9zaXRpb25MYXllcldpdGhEaXN0YW50Q29udGFpbmVyKQpAQCAtODQxLDkgKzg0MSw5
IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0
aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSA9IGV4cGVjdGVkR3JhbmRDaGlsZFRy
YW5zZm9ybTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRD
aGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRD
aGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBl
Y3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOwogCiAgICAgLy8gQ2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAxMCwgMTAKICAgICBjaGls
ZC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMTApKTsKQEAgLTg1NCw5ICs4NTQsOSBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZv
ckZpeGVkUG9zaXRpb25MYXllcldpdAogICAgIGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0udHJhbnNs
YXRlKC0xMCwgLTEwKTsKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0ubWFrZUlkZW50
aXR5KCk7CiAgICAgZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgtMiwgLTQp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3Rl
ZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3Jt
KCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0
R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwog
fQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNh
dGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdGhEaXN0YW50Q29udGFpbmVyQW5kVHJhbnNmb3Jt
cykKQEAgLTg5NCw5ICs4OTQsOSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAgICAgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0gPSBl
eHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxk
VHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdy
ZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJh
bnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9y
bWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3Jh
bmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEg
b2YgMTAsIDIwCiAgICAgY2hpbGQtPnNldFNjcm9sbERlbHRhKEludFNpemUoMTAsIDIwKSk7CkBA
IC05MTMsOSArOTEzLDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlT
Y3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBleHBlY3RlZEdy
YW5kQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKDgsIDYpOyAvLyB0cmFuc2xhdGlvbiBiZWNhdXNl
IG9mIHBvc2l0aW9uIG9jY3VycyBiZWZvcmUgbGF5ZXIncyBsb2NhbCB0cmFuc2Zvcm0uCiAgICAg
ZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLm11bHRpcGx5KHJvdGF0aW9uQWJvdXRaKTsgLy8g
Z3JhbmRDaGlsZCdzIGxvY2FsIHRyYW5zZm9ybQogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBn
cmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRy
YW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdy
YW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0
aE11bHRpcGxlU2Nyb2xsRGVsdGFzKQpAQCAtOTU2LDkgKzk1Niw5IEBAIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlv
bkxheWVyV2l0CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyZWF0R3Jh
bmRDaGlsZFRyYW5zZm9ybSA9IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybTsKIAotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgLy8g
Q2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAxMCwgMjAKICAgICBjaGlsZC0+c2V0U2Nyb2xsRGVsdGEo
SW50U2l6ZSgxMCwgMCkpOwpAQCAtOTc3LDkgKzk3Nyw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVy
V2l0CiAgICAgZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSg4LCA2KTsgLy8g
dHJhbnNsYXRpb24gYmVjYXVzZSBvZiBwb3NpdGlvbiBvY2N1cnMgYmVmb3JlIGxheWVyJ3MgbG9j
YWwgdHJhbnNmb3JtLgogICAgIGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybS5tdWx0aXBseShy
b3RhdGlvbkFib3V0Wik7IC8vIGdyYW5kQ2hpbGQncyBsb2NhbCB0cmFuc2Zvcm0KIAotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZp
eGVkUG9zaXRpb25MYXllcldpdGhJbnRlcm1lZGlhdGVTdXJmYWNlQW5kVHJhbnNmb3JtcykKQEAg
LTEwMTYsMTAgKzEwMTYsMTAgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJp
ZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBXZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAgICAgV2ViVHJh
bnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAgICAg
QVNTRVJUX1RSVUUoZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0
ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0
ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRU
cmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRT
dXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJh
bnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFu
ZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVj
dFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0s
IGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjogc2Ny
b2xsRGVsdGEgb2YgMTAsIDMwCiAgICAgY2hpbGQtPnNldFNjcm9sbERlbHRhKEludFNpemUoMTAs
IDMwKSk7CkBAIC0xMDQ5LDEwICsxMDQ5LDEwIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAg
ICAgZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0ubXVsdGlwbHkocm90YXRpb25BYm91
dFopOwogCiAgICAgQVNTRVJUX1RSVUUoZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAg
ICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0s
IGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3Vy
ZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVh
dEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0s
IGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFj
ZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
ZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hp
bGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVT
VChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JG
aXhlZFBvc2l0aW9uTGF5ZXJXaXRoTXVsdGlwbGVJbnRlcm1lZGlhdGVTdXJmYWNlcykKQEAgLTEx
MTksMTIgKzExMTksMTIgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlT
Y3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKIAogICAgIEFTU0VSVF9U
UlVFKGdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7CiAgICAgQVNTRVJUX1RSVUUoZ3JlYXRH
cmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRT
dXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJh
bnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRH
cmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRTdXJm
YWNlRHJhd1RyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdU
cmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3Rl
ZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRGaXhlZFBv
c2l0aW9uQ2hpbGRUcmFuc2Zvcm0sIGZpeGVkUG9zaXRpb25DaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zv
cm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQt
PnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVk
R3JlYXRHcmFuZENoaWxkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+cmVu
ZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4
cGVjdGVkRml4ZWRQb3NpdGlvbkNoaWxkVHJhbnNmb3JtLCBmaXhlZFBvc2l0aW9uQ2hpbGQtPmRy
YXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDI6IHNjcm9sbERlbHRhIG9mIDEwLCAzMAog
ICAgIGNoaWxkLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKDEwLCAzMCkpOwpAQCAtMTE1OCwxMiAr
MTE1OCwxMiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENv
bXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAgICAgQVNTRVJUX1RSVUUoZ3Jh
bmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICBBU1NFUlRfVFJVRShncmVhdEdyYW5kQ2hp
bGQtPnJlbmRlclN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBF
WFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFN1cmZhY2VE
cmF3VHJhbnNmb3JtLCBncmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hp
bGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFN1cmZhY2VEcmF3
VHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9y
bSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JlYXRH
cmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEZpeGVkUG9zaXRpb25D
aGlsZFRyYW5zZm9ybSwgZml4ZWRQb3NpdGlvbkNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZEdyYW5kQ2hpbGRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVy
U3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdy
YW5kQ2hpbGRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5yZW5kZXJTdXJm
YWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhF
cShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRG
aXhlZFBvc2l0aW9uQ2hpbGRUcmFuc2Zvcm0sIGZpeGVkUG9zaXRpb25DaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3Jv
bGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXRoQ29udGFpbmVyTGF5ZXJUaGF0
SGFzU3VyZmFjZSkKQEAgLTExOTIsOSArMTE5Miw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0
CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKICAg
ICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAg
ICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+
cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5k
Q2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGls
ZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9y
bWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hp
bGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNl
IDI6IHNjcm9sbERlbHRhIG9mIDEwLCAxMAogICAgIGNoaWxkLT5zZXRTY3JvbGxEZWx0YShJbnRT
aXplKDEwLCAxMCkpOwpAQCAtMTIwOSw5ICsxMjA5LDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJX
aXQKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKDEwLCAxMCk7CiAK
ICAgICBBU1NFUlRfVFJVRShjaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNoaWxk
LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNo
aWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRD
aGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhl
ZFBvc2l0aW9uTGF5ZXJUaGF0SXNBbHNvRml4ZWRQb3NpdGlvbkNvbnRhaW5lcikKQEAgLTEyMzcs
OCArMTIzNyw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xs
Q29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyVGhhCiAKICAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBleHBlY3RlZENoaWxkVHJhbnNmb3JtOwogICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFu
ZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVj
dFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRy
YXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAg
ICAvLyBDYXNlIDI6IHNjcm9sbERlbHRhIG9mIDEwLCAxMAogICAgIGNoaWxkLT5zZXRTY3JvbGxE
ZWx0YShJbnRTaXplKDEwLCAxMCkpOwpAQCAtMTI0Nyw4ICsxMjQ3LDggQEAgVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0
aW9uTGF5ZXJUaGEKICAgICAvLyBIZXJlIHRoZSBjaGlsZCBpcyBhZmZlY3RlZCBieSBzY3JvbGxE
ZWx0YSwgYnV0IHRoZSBmaXhlZCBwb3NpdGlvbiBncmFuZENoaWxkIHNob3VsZCBub3QgYmUgYWZm
ZWN0ZWQuCiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsKICAgICBl
eHBlY3RlZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgtMTAsIC0xMCk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAg
ICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNo
aWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
ZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBl
bnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllclRoYXRIYXNOb0NvbnRhaW5lcikKQEAgLTEyNzgs
OCArMTI3OCw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xs
Q29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyVGhhCiAgICAgV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXggZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtOwogICAgIGV4cGVjdGVkR3JhbmRD
aGlsZFRyYW5zZm9ybS5tdWx0aXBseShyb3RhdGlvbkJ5Wik7CiAKLSAgICBFWFBFQ1RfVFJBTlNG
T1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJh
bnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRH
cmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBl
Y3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAK
ICAgICAvLyBDYXNlIDI6IHJvb3Qgc2Nyb2xsRGVsdGEgb2YgMTAsIDEwCiAgICAgcm9vdC0+c2V0
U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMTApKTsKQEAgLTEyOTAsOCArMTI5MCw4IEBAIFRFU1Qo
Q0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4
ZWRQb3NpdGlvbkxheWVyVGhhCiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS50cmFuc2xhdGUo
LTEwLCAtMTApOyAvLyB0aGUgc2Nyb2xsRGVsdGEKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3Jt
Lm11bHRpcGx5KHJvdGF0aW9uQnlaKTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFu
c2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlDbGlwUmVjdEN1bGxzUmVuZGVyU3VyZmFjZXMp
CkBAIC0zMDk4LDggKzMwOTgsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeUxheWVyVHJhbnNmb3Jtc0luSGlnaERQSSkKIAogICAgIC8vIFZlcmlmeSBwYXJlbnQgdHJh
bnNmb3JtcwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkUGFyZW50VHJhbnNm
b3JtOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRQYXJlbnRU
cmFuc2Zvcm0sIHBhcmVudC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFBhcmVudFRyYW5zZm9ybSwgcGFyZW50LT5k
cmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0
ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFBhcmVudFRyYW5zZm9ybSwgcGFy
ZW50LT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgLy8gVmVyaWZ5IHJlc3VsdHMgb2YgdHJhbnNm
b3JtZWQgcGFyZW50IHJlY3RzCiAgICAgRmxvYXRSZWN0IHBhcmVudENvbnRlbnRCb3VuZHMoRmxv
YXRQb2ludCgpLCBGbG9hdFNpemUocGFyZW50LT5jb250ZW50Qm91bmRzKCkpKTsKQEAgLTMxMTUs
OCArMzExNSw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5TGF5ZXJU
cmFuc2Zvcm1zSW5IaWdoRFBJKQogICAgIC8vIFZlcmlmeSBjaGlsZCB0cmFuc2Zvcm1zCiAgICAg
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKICAgICBleHBl
Y3RlZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZShkZXZpY2VTY2FsZUZhY3RvciAqIGNoaWxkLT5w
b3NpdGlvbigpLngoKSwgZGV2aWNlU2NhbGVGYWN0b3IgKiBjaGlsZC0+cG9zaXRpb24oKS55KCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxk
VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpKTsKIAogICAgIC8vIFZlcmlmeSByZXN1bHRzIG9mIHRyYW5zZm9ybWVkIGNoaWxk
IHJlY3RzCiAgICAgRmxvYXRSZWN0IGNoaWxkQ29udGVudEJvdW5kcyhGbG9hdFBvaW50KCksIEZs
b2F0U2l6ZShjaGlsZC0+Y29udGVudEJvdW5kcygpKSk7CkBAIC0zMTM1LDggKzMxMzUsOCBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUxheWVyVHJhbnNmb3Jtc0luSGln
aERQSSkKICAgICAvLyBBbGwgdHJhbnNmb3JtcyBvcGVyYXRlIG9uIGNvbnRlbnQgcmVjdHMuIFRo
ZSBjaGlsZCdzIGNvbnRlbnQgcmVjdAogICAgIC8vIGluY29ycG9yYXRlcyBkZXZpY2Ugc2NhbGUs
IGJ1dCB0aGUgY2hpbGROb1NjYWxlIGRvZXMgbm90OyBhZGQgaXQgaGVyZS4KICAgICBleHBlY3Rl
ZENoaWxkTm9TY2FsZVRyYW5zZm9ybS5zY2FsZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkTm9TY2FsZVRyYW5zZm9y
bSwgY2hpbGROb1NjYWxlLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZE5vU2NhbGVUcmFuc2Zvcm0sIGNoaWxkTm9TY2Fs
ZS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShleHBlY3RlZENoaWxkTm9TY2FsZVRyYW5zZm9ybSwgY2hpbGROb1NjYWxlLT5kcmF3VHJh
bnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGls
ZE5vU2NhbGVUcmFuc2Zvcm0sIGNoaWxkTm9TY2FsZS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7
CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5UmVuZGVyU3VyZmFj
ZVRyYW5zZm9ybXNJbkhpZ2hEUEkpCkBAIC0zMTgwLDQ1ICszMTgwLDQ1IEBAIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5UmVuZGVyU3VyZmFjZVRyYW5zZm9ybXNJbkhpZ2hE
UEkpCiAgICAgRVhQRUNUX0VRKDJ1LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LnNpemUoKSk7CiAK
ICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFBhcmVudFRyYW5zZm9ybTsKLSAg
ICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkUGFyZW50VHJhbnNmb3Jt
LCBwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUGFyZW50
VHJhbnNmb3JtLCBwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+ZHJh
d1RyYW5zZm9ybSgpKTsKIAogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkRHJh
d1RyYW5zZm9ybTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVk
RHJhd1RyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShleHBlY3RlZERyYXdUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRTY3JlZW5TcGFj
ZVRyYW5zZm9ybTsKICAgICBleHBlY3RlZFNjcmVlblNwYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZShk
ZXZpY2VTY2FsZUZhY3RvciAqIGNoaWxkLT5wb3NpdGlvbigpLngoKSwgZGV2aWNlU2NhbGVGYWN0
b3IgKiBjaGlsZC0+cG9zaXRpb24oKS55KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoZXhwZWN0ZWRTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRT
Y3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWREdXBsaWNhdGVDaGlsZERyYXdUcmFu
c2Zvcm0gPSBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSwgZHVwbGljYXRlQ2hpbGROb25Pd25l
ci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KGNoaWxkLT5kcmF3VHJhbnNmb3JtKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPmRyYXdUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShjaGlsZC0+c2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKSwgZHVwbGljYXRlQ2hpbGROb25Pd25lci0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CiAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNoaWxkLT5kcmF3YWJsZUNvbnRlbnRS
ZWN0KCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAg
ICAgRVhQRUNUX0VRKGNoaWxkLT5jb250ZW50Qm91bmRzKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3du
ZXItPmNvbnRlbnRCb3VuZHMoKSk7CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBl
Y3RlZFJlbmRlclN1cmZhY2VEcmF3VHJhbnNmb3JtOwogICAgIGV4cGVjdGVkUmVuZGVyU3VyZmFj
ZURyYXdUcmFuc2Zvcm0udHJhbnNsYXRlKGRldmljZVNjYWxlRmFjdG9yICogY2hpbGQtPnBvc2l0
aW9uKCkueCgpLCBkZXZpY2VTY2FsZUZhY3RvciAqIGNoaWxkLT5wb3NpdGlvbigpLnkoKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlbmRlclN1cmZhY2VE
cmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRSZW5kZXJTdXJmYWNlRHJh
d1RyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKIAog
ICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm07
CiAgICAgZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybS50cmFuc2xhdGUoZGV2aWNlU2NhbGVG
YWN0b3IgKiAyLCBkZXZpY2VTY2FsZUZhY3RvciAqIDIpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgY2hpbGQtPnJlbmRl
clN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNl
KCktPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBl
Y3RlZFN1cmZhY2VTY3JlZW5TcGFjZVRyYW5zZm9ybTsKICAgICBleHBlY3RlZFN1cmZhY2VTY3Jl
ZW5TcGFjZVRyYW5zZm9ybS50cmFuc2xhdGUoZGV2aWNlU2NhbGVGYWN0b3IgKiAyLCBkZXZpY2VT
Y2FsZUZhY3RvciAqIDIpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhw
ZWN0ZWRTdXJmYWNlU2NyZWVuU3BhY2VUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCkt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWRTdXJmYWNlU2NyZWVuU3BhY2VUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJm
YWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggZXhwZWN0ZWRSZXBsaWNhRHJhd1RyYW5zZm9ybTsKICAgICBleHBlY3RlZFJlcGxpY2FE
cmF3VHJhbnNmb3JtLnNldE0yMigtMSk7CiAgICAgZXhwZWN0ZWRSZXBsaWNhRHJhd1RyYW5zZm9y
bS5zZXRNNDEoNik7CiAgICAgZXhwZWN0ZWRSZXBsaWNhRHJhd1RyYW5zZm9ybS5zZXRNNDIoNik7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlcGxpY2FEcmF3
VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5yZXBsaWNhRHJhd1RyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUmVwbGljYURyYXdU
cmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkp
OwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRSZXBsaWNhU2NyZWVuU3Bh
Y2VUcmFuc2Zvcm07CiAgICAgZXhwZWN0ZWRSZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0uc2V0
TTIyKC0xKTsKICAgICBleHBlY3RlZFJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybS5zZXRNNDEo
Nik7CiAgICAgZXhwZWN0ZWRSZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0uc2V0TTQyKDYpOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRSZXBsaWNhU2NyZWVu
U3BhY2VUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFj
ZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVk
UmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5yZXBs
aWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5U3VidHJlZVNlYXJjaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlVGVzdENvbW1vbi5oCmluZGV4IDVjMDFjODA0OTNjYTJm
NzFkY2MwZTUxN2NhNjVhN2NkOGI4YzNkMzcuLjRjNjZhZTQ1NWM4MzIyNjhjOWZkOGEyOWViNTgx
ZGY5ZDVhNjVkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVUZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZVRlc3RDb21tb24uaApAQCAtMjUsNiArMjUsOSBAQAogI2lmbmRlZiBDQ0xheWVy
VHJlZVRlc3RDb21tb25faAogI2RlZmluZSBDQ0xheWVyVHJlZVRlc3RDb21tb25faAogCisjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXguaD4KKwogbmFtZXNwYWNlIFdlYktpdFRlc3RzIHsKIAogLy8gVGhlc2UgYXJlIG1hY3Jv
cyBpbnN0ZWFkIG9mIGZ1bmN0aW9ucyBzbyB0aGF0IHdlIGdldCB1c2VmdWwgbGluZSBudW1iZXJz
IHdoZXJlIGEgdGVzdCBmYWlsZWQuCkBAIC00MCwyNiArNDMsMjkgQEAgbmFtZXNwYWNlIFdlYktp
dFRlc3RzIHsKICAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkud2lkdGgoKSwgKGFjdHVh
bCkuc2l6ZSgpLndpZHRoKCkpOyAgICAgIFwKICAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXpl
KCkuaGVpZ2h0KCksIChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKIAotLy8gVGhpcyBpcyBhIG1h
Y3JvIGluc3RlYWQgb2YgYSBmdW5jdGlvbiBzbyB0aGF0IHdlIGdldCB1c2VmdWwgbGluZSBudW1i
ZXJzIHdoZXJlIGEgdGVzdCBmYWlsZWQuCi0vLyBFdmVuIHRob3VnaCBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCB2YWx1ZXMgYXJlIGRvdWJsZSBwcmVjaXNpb24sIHRoZXJlIGFyZSBtYW55IG90aGVy
IGZsb2F0aW5nLXBvaW50IHZhbHVlcyB1c2VkIHRoYXQgYWZmZWN0Ci0vLyB0aGUgdHJhbnNmb3Jt
cywgYW5kIHNvIHdlIG9ubHkgZXhwZWN0IHRoZW0gdG8gYmUgYWNjdXJhdGUgdXAgdG8gZmxvYXRp
bmctcG9pbnQgcHJlY2lzaW9uLgotI2RlZmluZSBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKGV4cGVjdGVkLCBhY3R1YWwpICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVj
dGVkKS5tMTEoKSwgKGFjdHVhbCkubTExKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FU
X0VRKChleHBlY3RlZCkubTEyKCksIChhY3R1YWwpLm0xMigpKTsgICAgICAgICAgXAotICAgIEVY
UEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMygpLCAoYWN0dWFsKS5tMTMoKSk7ICAgICAgICAg
IFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTQoKSwgKGFjdHVhbCkubTE0KCkp
OyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIxKCksIChhY3R1
YWwpLm0yMSgpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0y
MigpLCAoYWN0dWFsKS5tMjIoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4
cGVjdGVkKS5tMjMoKSwgKGFjdHVhbCkubTIzKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZM
T0FUX0VRKChleHBlY3RlZCkubTI0KCksIChhY3R1YWwpLm0yNCgpKTsgICAgICAgICAgXAotICAg
IEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMSgpLCAoYWN0dWFsKS5tMzEoKSk7ICAgICAg
ICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzIoKSwgKGFjdHVhbCkubTMy
KCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMzKCksIChh
Y3R1YWwpLm0zMygpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQp
Lm0zNCgpLCAoYWN0dWFsKS5tMzQoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
KGV4cGVjdGVkKS5tNDEoKSwgKGFjdHVhbCkubTQxKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNU
X0ZMT0FUX0VRKChleHBlY3RlZCkubTQyKCksIChhY3R1YWwpLm00MigpKTsgICAgICAgICAgXAot
ICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMoKSk7ICAg
ICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDQoKSwgKGFjdHVhbCku
bTQ0KCkpCisvLyBUaGlzIGlzIGEgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBtYWNybyBiZWNhdXNl
IHdoZW4gdGhpcyBpcyBpbmNsdWRlZCBhcyBhIG1hY3JvCisvLyBpbiBidWxrLCBpdCBjYXVzZXMg
YSBzaWduaWZpY2FudCBzbG93LWRvd24gaW4gY29tcGlsYXRpb24gdGltZS4gVGhpcyBwcm9ibGVt
CisvLyBleGlzdHMgd2l0aCBib3RoIGdjYyBhbmQgY2xhbmcsIGFuZCBidWdzIGhhdmUgYmVlbiBm
aWxlZCBhdAorLy8gaHR0cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEzNjUxIGFu
ZCBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU0MzM3Citpbmxp
bmUgdm9pZCBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKFdlYktpdDo6V2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXggYWN0dWFsKSB7CisgICAgRVhQ
RUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTExKCksIChhY3R1YWwpLm0xMSgpKTsKKyAgICBFWFBF
Q1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTIoKSwgKGFjdHVhbCkubTEyKCkpOworICAgIEVYUEVD
VF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMygpLCAoYWN0dWFsKS5tMTMoKSk7CisgICAgRVhQRUNU
X0ZMT0FUX0VRKChleHBlY3RlZCkubTE0KCksIChhY3R1YWwpLm0xNCgpKTsKKyAgICBFWFBFQ1Rf
RkxPQVRfRVEoKGV4cGVjdGVkKS5tMjEoKSwgKGFjdHVhbCkubTIxKCkpOworICAgIEVYUEVDVF9G
TE9BVF9FUSgoZXhwZWN0ZWQpLm0yMigpLCAoYWN0dWFsKS5tMjIoKSk7CisgICAgRVhQRUNUX0ZM
T0FUX0VRKChleHBlY3RlZCkubTIzKCksIChhY3R1YWwpLm0yMygpKTsKKyAgICBFWFBFQ1RfRkxP
QVRfRVEoKGV4cGVjdGVkKS5tMjQoKSwgKGFjdHVhbCkubTI0KCkpOworICAgIEVYUEVDVF9GTE9B
VF9FUSgoZXhwZWN0ZWQpLm0zMSgpLCAoYWN0dWFsKS5tMzEoKSk7CisgICAgRVhQRUNUX0ZMT0FU
X0VRKChleHBlY3RlZCkubTMyKCksIChhY3R1YWwpLm0zMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRf
RVEoKGV4cGVjdGVkKS5tMzMoKSwgKGFjdHVhbCkubTMzKCkpOworICAgIEVYUEVDVF9GTE9BVF9F
USgoZXhwZWN0ZWQpLm0zNCgpLCAoYWN0dWFsKS5tMzQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VR
KChleHBlY3RlZCkubTQxKCksIChhY3R1YWwpLm00MSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEo
KGV4cGVjdGVkKS5tNDIoKSwgKGFjdHVhbCkubTQyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgo
ZXhwZWN0ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChl
eHBlY3RlZCkubTQ0KCksIChhY3R1YWwpLm00NCgpKTsKK30KIAogfSAvLyBuYW1lc3BhY2UKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1PcGVy
YXRpb25zVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9y
bU9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCBkZWFmN2FkNzRmNTMyOTFlZjViNDFhYWUxMDllZDI3
MTgwZWYwZDllLi5iOWFmOGFkYTg3NjgwM2EyMGNhNmI5MTQxOTQyOGJmM2Q2M2VjNDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlv
bnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9y
bU9wZXJhdGlvbnNUZXN0LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIFRFU1QoV2ViVHJhbnNmb3Jt
T3BlcmF0aW9uVGVzdCwgYXBwbHlUcmFuc2xhdGUpCiAgICAgb3BlcmF0aW9ucy5hcHBlbmRUcmFu
c2xhdGUoeCwgeSwgeik7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWQ7CiAg
ICAgZXhwZWN0ZWQudHJhbnNsYXRlM2QoeCwgeSwgeik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKKyAgICBXZWJLaXRU
ZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZCwgb3BlcmF0aW9ucy5h
cHBseSgpKTsKIH0KIAogVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseVJvdGF0
ZSkKQEAgLTEzNCw3ICsxMzQsNyBAQCBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFw
cGx5Um90YXRlKQogICAgIG9wZXJhdGlvbnMuYXBwZW5kUm90YXRlKHgsIHksIHosIGRlZ3JlZXMp
OwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkOwogICAgIGV4cGVjdGVkLnJv
dGF0ZTNkKHgsIHksIHosIGRlZ3JlZXMpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CisgICAgV2ViS2l0VGVzdHM6OkV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7
CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwgYXBwbHlTY2FsZSkKQEAgLTE0
Niw3ICsxNDYsNyBAQCBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5U2NhbGUp
CiAgICAgb3BlcmF0aW9ucy5hcHBlbmRTY2FsZSh4LCB5LCB6KTsKICAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBleHBlY3RlZDsKICAgICBleHBlY3RlZC5zY2FsZTNkKHgsIHksIHopOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBw
bHkoKSk7CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0
aW9uVGVzdCwgYXBwbHlTa2V3KQpAQCAtMTU4LDcgKzE1OCw3IEBAIFRFU1QoV2ViVHJhbnNmb3Jt
T3BlcmF0aW9uVGVzdCwgYXBwbHlTa2V3KQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4
cGVjdGVkOwogICAgIGV4cGVjdGVkLnNrZXdYKHgpOwogICAgIGV4cGVjdGVkLnNrZXdZKHkpOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMu
YXBwbHkoKSk7CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
ZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3Bl
cmF0aW9uVGVzdCwgYXBwbHlQZXJzcGVjdGl2ZSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBURVNUKFdl
YlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5UGVyc3BlY3RpdmUpCiAgICAgb3BlcmF0aW9u
cy5hcHBlbmRQZXJzcGVjdGl2ZShkZXB0aCk7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgg
ZXhwZWN0ZWQ7CiAgICAgZXhwZWN0ZWQuYXBwbHlQZXJzcGVjdGl2ZShkZXB0aCk7Ci0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9ucy5hcHBseSgp
KTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKIH0KIAogVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25U
ZXN0LCBhcHBseU1hdHJpeCkKQEAgLTE4MCw3ICsxODAsNyBAQCBURVNUKFdlYlRyYW5zZm9ybU9w
ZXJhdGlvblRlc3QsIGFwcGx5TWF0cml4KQogICAgIGV4cGVjdGVkTWF0cml4LnRyYW5zbGF0ZTNk
KGR4LCBkeSwgZHopOwogICAgIFdlYlRyYW5zZm9ybU9wZXJhdGlvbnMgbWF0cml4VHJhbnNmb3Jt
OwogICAgIG1hdHJpeFRyYW5zZm9ybS5hcHBlbmRNYXRyaXgoZXhwZWN0ZWRNYXRyaXgpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRNYXRyaXgsIG1hdHJpeFRy
YW5zZm9ybS5hcHBseSgpKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShleHBlY3RlZE1hdHJpeCwgbWF0cml4VHJhbnNmb3JtLmFwcGx5KCkpOwogfQogCiBU
RVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5T3JkZXIpCkBAIC0yMDYsNyArMjA2
LDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseU9yZGVyKQogICAgIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkQ29tYmluZWRNYXRyaXggPSBleHBlY3RlZFNj
YWxlTWF0cml4OwogICAgIGV4cGVjdGVkQ29tYmluZWRNYXRyaXgubXVsdGlwbHkoZXhwZWN0ZWRU
cmFuc2xhdGVNYXRyaXgpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShl
eHBlY3RlZENvbWJpbmVkTWF0cml4LCBvcGVyYXRpb25zLmFwcGx5KCkpOworICAgIFdlYktpdFRl
c3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ29tYmluZWRNYXRyaXgs
IG9wZXJhdGlvbnMuYXBwbHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVz
dCwgYmxlbmRPcmRlcikKQEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKFdlYlRyYW5zZm9ybU9wZXJh
dGlvblRlc3QsIGJsZW5kT3JkZXIpCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0
ZWQgPSBibGVuZGVkU2NhbGU7CiAgICAgZXhwZWN0ZWQubXVsdGlwbHkoYmxlbmRlZFRyYW5zbGF0
ZSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkLCBvcGVy
YXRpb25zVG8uYmxlbmQob3BlcmF0aW9uc0Zyb20sIHByb2dyZXNzKSk7CisgICAgV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIG9wZXJhdGlvbnNUby5i
bGVuZChvcGVyYXRpb25zRnJvbSwgcHJvZ3Jlc3MpKTsKIH0KIAogc3RhdGljIHZvaWQgY2hlY2tQ
cm9ncmVzcyhkb3VibGUgcHJvZ3Jlc3MsCkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIHZvaWQg
Y2hlY2tQcm9ncmVzcyhkb3VibGUgcHJvZ3Jlc3MsCiB7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggZXhwZWN0ZWRNYXRyaXggPSB0b01hdHJpeDsKICAgICBleHBlY3RlZE1hdHJpeC5ibGVu
ZChmcm9tTWF0cml4LCBwcm9ncmVzcyk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZE1hdHJpeCwgdG9UcmFuc2Zvcm0uYmxlbmQoZnJvbVRyYW5zZm9ybSwgcHJv
Z3Jlc3MpKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZE1hdHJpeCwgdG9UcmFuc2Zvcm0uYmxlbmQoZnJvbVRyYW5zZm9ybSwgcHJvZ3Jlc3Mp
KTsKIH0KIAogVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBibGVuZFByb2dyZXNzKQpA
QCAtMzM3LDUgKzMzNyw1IEBAIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwgYmxlbmRX
aGVuVHlwZXNEb05vdE1hdGNoKQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVk
ID0gdG87CiAgICAgZXhwZWN0ZWQuYmxlbmQoZnJvbSwgcHJvZ3Jlc3MpOwogCi0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9uc1RvLmJsZW5kKG9w
ZXJhdGlvbnNGcm9tLCBwcm9ncmVzcykpOworICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkLCBvcGVyYXRpb25zVG8uYmxlbmQob3BlcmF0aW9uc0Zy
b20sIHByb2dyZXNzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAKaW5kZXggZWI0NDJmNGUz
ZGVlZjJlYzk5YjY3YTM5ZWY1NDlhYzU2NWNkNTQyMy4uNjA1MWY3NmI3NjUwNWY0ZGRjZDExNDU0
M2NkOGI3OTIyMTE4M2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcApAQCAtMTAwNyw3ICsx
MDA3LDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9y
VHJhbnNsYXRpb24pCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8udHJhbnNsYXRlM2Qo
MjAwLCAxMDAsIDMwMCk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOwogCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7
CiAgICAgdG8udHJhbnNsYXRlM2QoMjAwLCAxMDAsIDMwMCk7CkBAIC0xMDQ0LDcgKzEwNDQsNyBA
QCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5QmxlbmRGb3JTY2FsZSkK
ICAgICB0by5tYWtlSWRlbnRpdHkoKTsKICAgICB0by5zY2FsZTNkKDIwMCwgMTAwLCAzMDApOwog
ICAgIHRvLmJsZW5kKGZyb20sIDApOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoZnJvbSwgdG8pOworICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGZyb20sIHRvKTsKIAogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnNjYWxlM2Qo
MjAwLCAxMDAsIDMwMCk7CkBAIC0xMDgxLDcgKzEwODEsNyBAQCBURVNUKFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4VGVzdCwgdmVyaWZ5QmxlbmRGb3JTa2V3WCkKICAgICB0by5tYWtlSWRlbnRpdHko
KTsKICAgICB0by5za2V3WCg0NSk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgV2ViS2l0VGVzdHM6OkV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOwogCiAgICAgdG8ubWFrZUlkZW50
aXR5KCk7CiAgICAgdG8uc2tld1goNDUpOwpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgVEVTVChXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yU2tld1kpCiAgICAgdG8ubWFr
ZUlkZW50aXR5KCk7CiAgICAgdG8uc2tld1koNDUpOwogICAgIHRvLmJsZW5kKGZyb20sIDApOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJvbSwgdG8pOworICAgIFdlYktp
dFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZyb20sIHRvKTsKIAogICAgIHRv
Lm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnNrZXdZKDQ1KTsKQEAgLTExNzIsNyArMTE3Miw3IEBA
IFRFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVuZEZvclJvdGF0aW9u
QWJvdXRYKQogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnJvdGF0ZTNkKDEsIDAsIDAs
IDkwKTsKICAgICB0by5ibGVuZChmcm9tLCAwKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKGZyb20sIHRvKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShmcm9tLCB0byk7CiAKICAgICBkb3VibGUgZXhwZWN0ZWRSb3RhdGlvbkFuZ2xl
ID0gMjIuNSAqIHBpRG91YmxlIC8gMTgwLjA7CiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CkBAIC0x
MjExLDcgKzEyMTEsNyBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5
QmxlbmRGb3JSb3RhdGlvbkFib3V0WSkKICAgICB0by5tYWtlSWRlbnRpdHkoKTsKICAgICB0by5y
b3RhdGUzZCgwLCAxLCAwLCA5MCk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgV2ViS2l0VGVzdHM6OkV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOwogCiAgICAgZG91YmxlIGV4cGVj
dGVkUm90YXRpb25BbmdsZSA9IDIyLjUgKiBwaURvdWJsZSAvIDE4MC4wOwogICAgIHRvLm1ha2VJ
ZGVudGl0eSgpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yUm90YXRpb25BYm91dFopCiAgICAgdG8ubWFrZUlkZW50
aXR5KCk7CiAgICAgdG8ucm90YXRlM2QoMCwgMCwgMSwgOTApOwogICAgIHRvLmJsZW5kKGZyb20s
IDApOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJvbSwgdG8pOworICAg
IFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZyb20sIHRvKTsKIAog
ICAgIGRvdWJsZSBleHBlY3RlZFJvdGF0aW9uQW5nbGUgPSAyMi41ICogcGlEb3VibGUgLyAxODAu
MDsKICAgICB0by5tYWtlSWRlbnRpdHkoKTsKQEAgLTEzMDMsNyArMTMwMyw3IEBAIFRFU1QoV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVuZEZvckNvbXBvc2l0ZVRyYW5zZm9y
bSkKICAgICAKICAgICB0byA9IGV4cGVjdGVkRW5kT2ZBbmltYXRpb247CiAgICAgdG8uYmxlbmQo
ZnJvbSwgMCk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7
CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8p
OwogCiAgICAgdG8gPSBleHBlY3RlZEVuZE9mQW5pbWF0aW9uOwogICAgIHRvLmJsZW5kKGZyb20s
IDEpOwpAQCAtMTMxOSw3ICsxMzE5LDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRl
c3QsIHZlcmlmeUJsZW5kRm9yQ29tcG9zaXRlVHJhbnNmb3JtKQogICAgIG5vcm1hbGl6YXRpb25N
YXRyaXguc2V0TTQ0KDEgLyBleHBlY3RlZEVuZE9mQW5pbWF0aW9uLm00NCgpKTsKICAgICBub3Jt
YWxpemVkRXhwZWN0ZWRFbmRPZkFuaW1hdGlvbi5tdWx0aXBseShub3JtYWxpemF0aW9uTWF0cml4
KTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEobm9ybWFsaXplZEV4cGVj
dGVkRW5kT2ZBbmltYXRpb24sIHRvKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShub3JtYWxpemVkRXhwZWN0ZWRFbmRPZkFuaW1hdGlvbiwgdG8pOwogfQog
CiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159790</attachid>
            <date>2012-08-21 16:15:28 -0700</date>
            <delta_ts>2012-08-21 17:38:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94639-20120821161527.patch</filename>
            <type>text/plain</type>
            <size>61013</size>
            <attacher>nbhargava</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxYjM3OTMwN2FhN2QwNTBjYThhMzM1ZmY3NGQ5YzBjOTA3MTY4YTcuLmY2ZTlhYTI3OGE5NTQx
YjNkMTllZjg4ODIzNzllZWQ2MWExNjVmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMjEgIE5pa2hpbCBCaGFyZ2F2YSAgPG5iaGFyZ2F2YUBn
b29nbGUuY29tPgorCisgICAgICAgIFNwZWVkIHVwIGNvbXBpbGF0aW9uIG9mIHRlc3RzIGludm9s
dmluZyBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRIHdhcyBj
aGFuZ2VkIGZyb20gYSBtYWNybyB0byBhIGZ1bmN0aW9uLgorICAgICAgICBBcyBhIG1hY3JvIHRo
YXQgZXhwYW5kZWQgaW50byAxNiBvdGhlciBtYWNyb3MsIGl0IGNhdXNlZCBhbiB1bm5lZWRlZAor
ICAgICAgICBzbG93IGRvd24gb2YgY2xvc2UgdG8gNDVzIGluIHRoZSBjb21waWxlIHRpbWUgb2Yg
Q0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdAorICAgICAgICBCdWdzIGhhdmUgYmVlbiBmaWxlZCB0
byBjbGFuZyBhbmQgZ2NjIG5vdGluZyB0aGUgZXJyYW50IGJlaGF2aW9yOgorICAgICAgICBodHRw
Oi8vbGx2bS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTEgYW5kIGh0dHA6Ly9nY2MuZ251
Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTQzMzcKKworICAgICAgICAqIHRlc3RzL0ND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
VGVzdENvbW1vbi5oOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEpOgorICAgICAgICAqIHRlc3RzL1dlYlRy
YW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoY2hl
Y2tQcm9ncmVzcyk6CisgICAgICAgICogdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisKIDIwMTItMDgtMTYgIFBldGVyIEJldmVy
bG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQg
REVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IDFlNmE1OThmY2I0YTE5NzAzOGZkYzM3Y2Q0
NjhmMzc3NjI2NGQ2YTguLjlmNWU1MzJjNDMwZjEwODViYTAzN2Q2NzU5ZDIwMGEwYzNmMzA1NTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LmNwcApAQCAtNDYsNiArNDYsMjcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0VGVzdHM7CiB1c2luZyBXZWJLaXQ6Oldl
YlRyYW5zZm9ybWF0aW9uTWF0cml4OwogCit2b2lkIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBhY3R1YWwpCit7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTExKCks
IChhY3R1YWwpLm0xMSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTIoKSwg
KGFjdHVhbCkubTEyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMygpLCAo
YWN0dWFsKS5tMTMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTE0KCksIChh
Y3R1YWwpLm0xNCgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjEoKSwgKGFj
dHVhbCkubTIxKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMigpLCAoYWN0
dWFsKS5tMjIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIzKCksIChhY3R1
YWwpLm0yMygpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjQoKSwgKGFjdHVh
bCkubTI0KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMSgpLCAoYWN0dWFs
KS5tMzEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMyKCksIChhY3R1YWwp
Lm0zMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzMoKSwgKGFjdHVhbCku
bTMzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zNCgpLCAoYWN0dWFsKS5t
MzQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQxKCksIChhY3R1YWwpLm00
MSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDIoKSwgKGFjdHVhbCkubTQy
KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMo
KSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQ0KCksIChhY3R1YWwpLm00NCgp
KTsKK30KKwogbmFtZXNwYWNlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlPgpAQCAt
MTYyLDEwICsxODMsMTAgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlU
cmFuc2Zvcm1zRm9yTm9PcExheWVyKQogCiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zv
cm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgY2hpbGQt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoaWRlbnRpdHlNYXRyaXgsIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGls
ZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlN
YXRyaXgsIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJh
bnNmb3Jtc0ZvclNpbmdsZUxheWVyKQpAQCAtMTc5LDMwICsyMDAsMzAgQEAgVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2luZ2xlTGF5ZXIpCiAgICAg
c2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgaWRlbnRpdHlNYXRyaXgs
IGFyYml0cmFyeVRyYW5zbGF0aW9uLCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDAp
LCBJbnRTaXplKDEwMCwgMTAwKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJh
bnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IGV4cGVjdGVkRHJhd1RyYW5zZm9ybSA9IGlkZW50aXR5TWF0cml4OwotICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWREcmF3VHJhbnNmb3JtLCBsYXllci0+
ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlk
ZW50aXR5TWF0cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZERyYXdUcmFuc2Zvcm0sIGxheWVyLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlN
YXRyaXgsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjog
U2V0dGluZyB0aGUgYm91bmRzIG9mIHRoZSBsYXllciBzaG91bGQgbm90IGFmZmVjdCBlaXRoZXIg
dGhlIGRyYXcgdHJhbnNmb3JtIG9yIHRoZSBzY3JlZW5zcGFjZSB0cmFuc2Zvcm0uCiAgICAgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNsYXRpb25Ub0NlbnRlcjsKICAgICB0cmFuc2xhdGlv
blRvQ2VudGVyLnRyYW5zbGF0ZSg1LCA2KTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0
aW5nKGxheWVyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9p
bnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAg
IGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGxh
eWVyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoaWRlbnRpdHlNYXRyaXgsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBsYXllci0+ZHJhd1Ry
YW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDM6IFRo
ZSBhbmNob3IgcG9pbnQgYnkgaXRzZWxmICh3aXRob3V0IGEgbGF5ZXIgdHJhbnNmb3JtKSBzaG91
bGQgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIHRyYW5zZm9ybXMuCiAgICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4
LCBGbG9hdFBvaW50KDAuMjUsIDAuMjUpLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAx
MiksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmls
aXR5KGxheWVyLmdldCgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlk
ZW50aXR5TWF0cml4LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNG
T1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJp
eCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShpZGVudGl0eU1hdHJpeCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAg
ICAgLy8gQ2FzZSA0OiBBIGNoYW5nZSBpbiBhY3R1YWwgcG9zaXRpb24gYWZmZWN0cyBib3RoIHRo
ZSBkcmF3IHRyYW5zZm9ybSBhbmQgc2NyZWVuIHNwYWNlIHRyYW5zZm9ybS4KICAgICBXZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBwb3NpdGlvblRyYW5zZm9ybTsKICAgICBwb3NpdGlvblRyYW5zZm9y
bS50cmFuc2xhdGUoMCwgMS4yKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxh
eWVyLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4y
NSwgMC4yNSksIEZsb2F0UG9pbnQoMCwgMS4yZiksIEludFNpemUoMTAsIDEyKSwgZmFsc2UpOwog
ICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocG9zaXRpb25UcmFuc2Zv
cm0sIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEocG9zaXRpb25UcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBvc2l0aW9uVHJhbnNmb3JtLCBs
YXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KHBvc2l0aW9uVHJhbnNmb3JtLCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAg
ICAvLyBDYXNlIDU6IEluIHRoZSBjb3JyZWN0IHNlcXVlbmNlIG9mIHRyYW5zZm9ybXMsIHRoZSBs
YXllciB0cmFuc2Zvcm0gc2hvdWxkIHByZS1tdWx0aXBseSB0aGUgdHJhbnNsYXRpb25Ub0NlbnRl
ci4gVGhpcyBpcyBlYXNpbHkgdGVzdGVkIGJ5CiAgICAgLy8gICAgICAgICB1c2luZyBhIHNjYWxl
IHRyYW5zZm9ybSwgYmVjYXVzZSBzY2FsZSBhbmQgdHJhbnNsYXRpb24gYXJlIG5vdCBjb21tdXRh
dGl2ZS4KQEAgLTIxMCw4ICsyMzEsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeVRyYW5zZm9ybXNGb3JTaW5nbGVMYXllcikKICAgICBsYXllclRyYW5zZm9ybS5zY2Fs
ZTNkKDIsIDIsIDEpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIuZ2V0
KCksIGxheWVyVHJhbnNmb3JtLCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxv
YXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1
bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShsYXllci5nZXQoKSk7Ci0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShsYXllclRyYW5zZm9ybSwgbGF5ZXItPmRyYXdUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShsYXllclRyYW5z
Zm9ybSwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9y
bWF0aW9uTWF0cml4RXEobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2UgNjogVGhlIGxheWVyIHRyYW5z
Zm9ybSBzaG91bGQgb2NjdXIgd2l0aCByZXNwZWN0IHRvIHRoZSBhbmNob3IgcG9pbnQuCiAgICAg
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNsYXRpb25Ub0FuY2hvcjsKQEAgLTIxOSw4ICsy
NDAsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNG
b3JTaW5nbGVMYXllcikKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFJlc3Vs
dCA9IHRyYW5zbGF0aW9uVG9BbmNob3IgKiBsYXllclRyYW5zZm9ybSAqIHRyYW5zbGF0aW9uVG9B
bmNob3IuaW52ZXJzZSgpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcobGF5ZXIu
Z2V0KCksIGxheWVyVHJhbnNmb3JtLCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjUsIDAp
LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKICAgICBleGVjdXRl
Q2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KGxheWVyLmdldCgpKTsKLSAgICBF
WFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkUmVzdWx0LCBsYXllci0+ZHJh
d1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkUmVzdWx0LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0o
KSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFJlc3VsdCwgbGF5
ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAgICAgLy8gQ2FzZSA3OiBWZXJpZnkgdGhh
dCBwb3NpdGlvbiBwcmUtbXVsdGlwbGllcyB0aGUgbGF5ZXIgdHJhbnNmb3JtLgogICAgIC8vICAg
ICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgY2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXMgZG9lcyB0aGlzIGltcGxpY2l0bHksIGJ1dCBpdCBpcwpAQCAtMjI4LDggKzI0OSw4IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxh
eWVyKQogICAgIGV4cGVjdGVkUmVzdWx0ID0gcG9zaXRpb25UcmFuc2Zvcm0gKiB0cmFuc2xhdGlv
blRvQW5jaG9yICogbGF5ZXJUcmFuc2Zvcm0gKiB0cmFuc2xhdGlvblRvQW5jaG9yLmludmVyc2Uo
KTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBsYXllclRy
YW5zZm9ybSwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC41LCAwKSwgRmxvYXRQb2ludCgw
LCAxLjJmKSwgSW50U2l6ZSgxMCwgMTIpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURy
YXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShsYXllci5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlc3VsdCwg
bGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZXhwZWN0ZWRSZXN1bHQsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRSZXN1bHQsIGxheWVyLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2
ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxlSGllcmFyY2h5KQpAQCAtMjQ2LDEwICsyNjcsMTAgQEAg
VEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxl
SGllcmFyY2h5KQogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGQuZ2V0KCks
IGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQ
b2ludCgwLCAwKSwgSW50U2l6ZSgxNiwgMTgpLCBmYWxzZSk7CiAgICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlN
YXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoNzYsIDc4
KSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHkocGFyZW50LmdldCgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlk
ZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNG
T1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1h
dHJpeCwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Cisg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlk
ZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAg
IC8vIENhc2UgMjogcGFyZW50J3MgcG9zaXRpb24gYWZmZWN0cyBjaGlsZCBhbmQgZ3JhbmRDaGls
ZC4KICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwYXJlbnRQb3NpdGlvblRyYW5zZm9ybTsK
QEAgLTI1OCwxMCArMjc5LDEwIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5VHJhbnNmb3Jtc0ZvclNpbXBsZUhpZXJhcmNoeSkKICAgICBzZXRMYXllclByb3BlcnRpZXNG
b3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTYsIDE4KSwgZmFsc2Up
OwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50
KDAsIDApLCBJbnRTaXplKDc2LCA3OCksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJh
d1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQ
b3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50UG9zaXRpb25UcmFuc2Zvcm0sIGdy
YW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01B
VFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VU
cmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRQb3Np
dGlvblRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50
UG9zaXRpb25UcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgZ3JhbmRD
aGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDM6IHBhcmVudCdz
IGxvY2FsIHRyYW5zZm9ybSBhZmZlY3RzIGNoaWxkIGFuZCBncmFuZGNoaWxkCiAgICAgV2ViVHJh
bnNmb3JtYXRpb25NYXRyaXggcGFyZW50TGF5ZXJUcmFuc2Zvcm07CkBAIC0yNzMsMTAgKzI5NCwx
MCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JT
aW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5n
ZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBG
bG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKICAgICBzZXRMYXllclBy
b3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVu
dGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3
NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlz
aWJpbGl0eShwYXJlbnQuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAg
ICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9y
bSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50
Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9y
bSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRy
YW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDQ6IHBhcmVudCdzIHN1YmxheWVy
TWF0cml4IGFmZmVjdHMgY2hpbGQgYW5kIGdyYW5kY2hpbGQKICAgICAvLyAgICAgICAgIHNjYWxp
bmcgaXMgdXNlZCBoZXJlIGFnYWluIHNvIHRoYXQgdGhlIGNvcnJlY3Qgc2VxdWVuY2Ugb2YgdHJh
bnNmb3JtcyBpcyBwcm9wZXJseSB0ZXN0ZWQuCkBAIC0yOTQsMTAgKzMxNSwxMCBAQCBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJj
aHkpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRp
dHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAs
IDApLCBJbnRTaXplKDE2LCAxOCksIGZhbHNlKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JU
ZXN0aW5nKGdyYW5kQ2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwg
RmxvYXRQb2ludCgwLCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxz
ZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJl
bnQuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29t
cG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoZmxhdHRlbmVkQ29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZmxhdHRlbmVkQ29tcG9z
aXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShw
YXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZsYXR0ZW5lZENvbXBvc2l0ZVRyYW5z
Zm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGZsYXR0ZW5lZENvbXBvc2l0ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDU6IHNhbWUgYXMgQ2FzZSA0LCBl
eGNlcHQgdGhhdCBjaGlsZCBkb2VzIHByZXNlcnZlIDNELCBzbyB0aGUgZ3JhbmRDaGlsZCBzaG91
bGQgcmVjZWl2ZSB0aGUgbm9uLWZsYXR0ZW5lZCBjb21wb3NpdGUgdHJhbnNmb3JtLgogICAgIC8v
CkBAIC0zMDUsMTAgKzMyNiwxMCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVz
Rm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIHRydWUp
OwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRl
bnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50
KDAsIDApLCBJbnRTaXplKDc2LCA3OCksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJh
d1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50
Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0s
IGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50
Q29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
cGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3Jt
LCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2luZ2xlUmVuZGVyU3VyZmFj
ZSkKQEAgLTM0OCwxNCArMzY5LDE0IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwg
dmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZVJlbmRlclN1cmZhY2UpCiAKICAgICAvLyBUaGUgY2hp
bGQgbGF5ZXIncyBkcmF3IHRyYW5zZm9ybSBzaG91bGQgcmVmZXIgdG8gaXRzIG5ldyByZW5kZXIg
c3VyZmFjZS4KICAgICAvLyBUaGUgc2NyZWVuLXNwYWNlIHRyYW5zZm9ybSwgaG93ZXZlciwgc2hv
dWxkIHN0aWxsIHJlZmVyIHRvIHRoZSByb290LgotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBj
aGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxk
LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIEJlY2F1c2UgdGhlIGdyYW5kQ2hp
bGQgaXMgdGhlIG9ubHkgZHJhd2FibGUgY29udGVudCwgdGhlIGNoaWxkJ3MgcmVuZGVyU3VyZmFj
ZSB3aWxsIHRpZ2h0ZW4gaXRzIGJvdW5kcyB0byB0aGUgZ3JhbmRDaGlsZC4KLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQt
PnJlbmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNo
aWxkLT5yZW5kZXJUYXJnZXQoKS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwog
CiAgICAgLy8gVGhlIHNjcmVlbiBzcGFjZSBpcyB0aGUgc2FtZSBhcyB0aGUgdGFyZ2V0IHNpbmNl
IHRoZSBjaGlsZCBzdXJmYWNlIGRyYXdzIGludG8gdGhlIHJvb3QuCi0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5yZW5k
ZXJUYXJnZXQoKS0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAg
ICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwg
Y2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5z
Zm9ybXNGb3JSZXBsaWNhKQpAQCAtNDAxLDggKzQyMiw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclJlcGxpY2EpCiAgICAgQVNTRVJUX1RSVUUo
Y2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7CiAgICAgQVNTRVJUX0VRKGNoaWxkLCBjaGlsZC0+cmVu
ZGVyVGFyZ2V0KCkpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShyZXBs
aWNhQ29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyVGFyZ2V0KCktPnJlbmRlclN1cmZh
Y2UoKS0+cmVwbGljYURyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShyZXBsaWNhQ29tcG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyVGFyZ2V0
KCktPnJlbmRlclN1cmZhY2UoKS0+cmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwg
Y2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNm
b3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocmVwbGljYUNvbXBvc2l0
ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxp
Y2FTY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKQEAgLTUw
OSw0NCArNTMwLDQ0IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJh
bnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkpCiAgICAgLy8gIG5vdGUgdGhhdCBkcmF3
IHRyYW5zZm9ybXMgYXJlIGRlc2NyaWJlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIG5lYXJlc3QgYW5j
ZXN0b3IgcmVuZGVyIHN1cmZhY2UKICAgICAvLyAgYnV0IHNjcmVlbiBzcGFjZSB0cmFuc2Zvcm1z
IGFyZSBkZXNjcmliZWQgd2l0aCByZXNwZWN0IHRvIHRoZSByb290LgogICAgIC8vCi0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBLCBwYXJlbnQtPmRyYXdUcmFuc2Zvcm0oKSk7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEsIGNoaWxkT2ZS
b290LT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm0oKSk7
CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBLCBwYXJlbnQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEsIGNoaWxk
T2ZSb290LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm0oKSk7
CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBy
ZW5kZXJTdXJmYWNlMS0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJ
T05fTUFUUklYX0VRKEIgKiBBLCBjaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9m
UlMxLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
aWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1cmZhY2UxLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQiAqIEEsIGNoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShCICogQSAqIEIgKiBBLCBn
cmFuZENoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCByZW5kZXJTdXJmYWNlMi0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEIgKiBBLCBjaGls
ZE9mUlMyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMyLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1
cmZhY2UyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoQiAqIEEsIGNoaWxkT2ZSUzItPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShCICogQSAqIEIgKiBBLCBncmFuZENoaWxkT2ZSUzItPmRyYXdUcmFu
c2Zvcm0oKSk7CiAKICAgICAvLyBWZXJpZnkgbGF5ZXIgc2NyZWVuLXNwYWNlIHRyYW5zZm9ybXMK
ICAgICAvLwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSwgcGFyZW50LT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKEEgKiBCICogQSwgY2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIEEsIGdyYW5k
Q2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9y
bWF0aW9uTWF0cml4RXEoQSwgcGFyZW50LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSwgY2hpbGRPZlJvb3QtPnNjcmVl
blNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAq
IEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkp
OwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEsIHJlbmRl
clN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKEEgKiBCICogQSAqIEIgKiBBLCBjaGlsZE9mUlMxLT5zY3JlZW5TcGFj
ZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBC
ICogQSAqIEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEsIHJlbmRl
clN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKEEgKiBCICogQSAqIEIgKiBBLCBjaGlsZE9mUlMxLT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSAq
IEIgKiBBICogQiAqIEEsIGdyYW5kQ2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7
CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSAqIEIgKiBB
LCByZW5kZXJTdXJmYWNlMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEgKiBCICogQSAqIEIgKiBBLCBjaGlsZE9m
UlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKEEgKiBCICogQSAqIEIgKiBBICogQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9m
UlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKEEgKiBCICogQSAqIEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEgKiBC
ICogQSAqIEIgKiBBLCBjaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSAqIEIgKiBBICogQiAqIEEgKiBC
ICogQSwgZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8v
IFZlcmlmeSByZW5kZXIgc3VyZmFjZSB0cmFuc2Zvcm1zLgogICAgIC8vCiAgICAgLy8gRHJhdyB0
cmFuc2Zvcm0gb2YgcmVuZGVyIHN1cmZhY2UgMSBpcyBkZXNjcmliZWQgd2l0aCByZXNwZWN0IHRv
IHJvb3QuCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEsIHJl
bmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIFIsIHJlbmRlclN1cmZhY2UxLT5y
ZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3Vy
ZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJ
T05fTUFUUklYX0VRKEEgKiBCICogUiwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+
cmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoQSAqIEIgKiBBLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBS
LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5yZXBsaWNhRHJhd1RyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSwgcmVuZGVyU3Vy
ZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIFIsIHJlbmRlclN1cmZhY2UxLT5yZW5k
ZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKICAgICAvLyBEcmF3
IHRyYW5zZm9ybSBvZiByZW5kZXIgc3VyZmFjZSAyIGlzIGRlc2NyaWJlZCB3aXRoIHJlc3BlY3Qg
dG8gcmVuZGVyIHN1cmZhY2UgMi4KLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQiAqIFIsIHJlbmRlclN1cmZh
Y2UyLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIEEsIHJlbmRlclN1cmZh
Y2UyLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIFIsIHJlbmRlclN1cmZh
Y2UyLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAg
ICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+cmVu
ZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoQiAqIFIsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FE
cmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIg
KiBBICogQiAqIEEsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBB
ICogQiAqIFIsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5T
cGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIFNhbml0eSBjaGVjay4gSWYgdGhlc2UgZmFpbCB0
aGVyZSBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgdGVzdCBpdHNlbGYuCiAgICAgLy8gSXQgaXMg
ZXhwZWN0ZWQgdGhhdCB3ZSBjb3JyZWN0bHkgc2V0IHVwIHRyYW5zZm9ybXMgc28gdGhhdCB0aGUg
eS1jb21wb25lbnQgb2YgdGhlIHNjcmVlbi1zcGFjZSB0cmFuc2Zvcm0KQEAgLTYwMSwxMiArNjIy
LDEyIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0Zv
ckZsYXR0ZW5pbmdMYXllcikKIAogICAgIC8vIFRoZSBjaGlsZCdzIGRyYXdUcmFuc2Zvcm0gc2hv
dWxkIGhhdmUgYmVlbiB0YWtlbiBieSBpdHMgc3VyZmFjZS4KICAgICBBU1NFUlRfVFJVRShjaGls
ZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KGV4cGVjdGVkQ2hpbGREcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0
ZWRDaGlsZFNjcmVlblNwYWNlVHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRTY3JlZW5TcGFjZVRyYW5zZm9ybSwg
Y2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+
ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4
cGVjdGVkR3JhbmRDaGlsZFNjcmVlblNwYWNlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVj
dGVkQ2hpbGREcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNm
b3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFNj
cmVlblNwYWNlVHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkQ2hpbGRTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0
ZWRHcmFuZENoaWxkRHJhd1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsK
KyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFNjcmVl
blNwYWNlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIH0K
IAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yRGVn
ZW5lcmF0ZUludGVybWVkaWF0ZUxheWVyKQpAQCAtNjM0LDkgKzY1NSw5IEBAIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvckRlZ2VuZXJhdGVJbnRlcm1l
ZGlhdGVMYXllcikKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmls
aXR5KHJvb3QuZ2V0KCkpOwogCiAgICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRlclN1cmZhY2Uo
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwg
Y2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsgLy8gVGhpcyBpcyB0aGUg
cmVhbCB0ZXN0LCB0aGUgcmVzdCBhcmUgc2FuaXR5IGNoZWNrcy4KLSAgICBFWFBFQ1RfVFJBTlNG
T1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBn
cmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoaWRlbnRpdHlNYXRyaXgsIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zv
cm0oKSk7IC8vIFRoaXMgaXMgdGhlIHJlYWwgdGVzdCwgdGhlIHJlc3QgYXJlIHNhbml0eSBjaGVj
a3MuCisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShp
ZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlTGlzdEZvclJlbmRl
clN1cmZhY2VXaXRoQ2xpcHBlZExheWVyKQpAQCAtNzUyLDggKzc3Myw4IEBAIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3Np
dGlvbkxheWVyV2l0CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRDaGlsZFRy
YW5zZm9ybTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyYW5kQ2hpbGRU
cmFuc2Zvcm0gPSBleHBlY3RlZENoaWxkVHJhbnNmb3JtOwogCi0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5k
cmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0
ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogCiAg
ICAgLy8gQ2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAxMCwgMTAKICAgICBjaGlsZC0+c2V0U2Nyb2xs
RGVsdGEoSW50U2l6ZSgxMCwgMTApKTsKQEAgLTc2Myw4ICs3ODQsOCBAQCBURVNUKENDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRp
b25MYXllcldpdAogICAgIGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CiAg
ICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS50cmFuc2xhdGUoLTEwLCAtMTApOwogCi0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zv
cm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9s
bENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdGhUcmFuc2Zvcm1lZERpcmVjdENv
bnRhaW5lcikKQEAgLTgwMCw4ICs4MjEsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtID0g
ZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFu
c2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIAogICAgIC8vIENhc2Ug
Mjogc2Nyb2xsRGVsdGEgb2YgMTAsIDIwCiAgICAgY2hpbGQtPnNldFNjcm9sbERlbHRhKEludFNp
emUoMTAsIDIwKSk7CkBAIC04MTIsOCArODMzLDggQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQK
ICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgtMTAsIC0yMCk7IC8vIHNjcm9s
bERlbHRhCiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS5tdWx0aXBseShub25Vbmlmb3JtU2Nh
bGUpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxk
VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+
ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVj
dGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENo
aWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdGhEaXN0
YW50Q29udGFpbmVyKQpAQCAtODQxLDkgKzg2Miw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0
CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRy
YW5zZm9ybSA9IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybTsKIAotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3Rl
ZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRy
YW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdy
YW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9y
bSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgLy8gQ2FzZSAyOiBz
Y3JvbGxEZWx0YSBvZiAxMCwgMTAKICAgICBjaGlsZC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgx
MCwgMTApKTsKQEAgLTg1NCw5ICs4NzUsOSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogICAg
IGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKC0xMCwgLTEwKTsKICAgICBleHBlY3Rl
ZEdyYW5kQ2hpbGRUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CiAgICAgZXhwZWN0ZWRHcmFuZENo
aWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgtMiwgLTQpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hp
bGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwg
Z3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0
aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRU
cmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRH
cmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldp
dGhEaXN0YW50Q29udGFpbmVyQW5kVHJhbnNmb3JtcykKQEAgLTg5NCw5ICs5MTUsOSBAQCBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZp
eGVkUG9zaXRpb25MYXllcldpdAogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0
ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0gPSBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07
CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFu
c2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0
ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFu
c2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJh
bnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVh
dEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsK
IAogICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDIwCiAgICAgY2hpbGQtPnNldFNj
cm9sbERlbHRhKEludFNpemUoMTAsIDIwKSk7CkBAIC05MTMsOSArOTM0LDkgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBv
c2l0aW9uTGF5ZXJXaXQKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRl
KDgsIDYpOyAvLyB0cmFuc2xhdGlvbiBiZWNhdXNlIG9mIHBvc2l0aW9uIG9jY3VycyBiZWZvcmUg
bGF5ZXIncyBsb2NhbCB0cmFuc2Zvcm0uCiAgICAgZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3Jt
Lm11bHRpcGx5KHJvdGF0aW9uQWJvdXRaKTsgLy8gZ3JhbmRDaGlsZCdzIGxvY2FsIHRyYW5zZm9y
bQogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJh
bnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJ
T05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJh
bnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1Ry
YW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3Jl
YXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVu
c2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0aE11bHRpcGxlU2Nyb2xsRGVsdGFzKQpAQCAt
OTU2LDkgKzk3Nyw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Ny
b2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAKICAgICBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSA9IGV4cGVjdGVk
R3JhbmRDaGlsZFRyYW5zZm9ybTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zv
cm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFu
ZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0s
IGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxk
LT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgLy8gQ2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAxMCwg
MjAKICAgICBjaGlsZC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMCkpOwpAQCAtOTc3LDkg
Kzk5OCw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29t
cGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAgICAgZXhwZWN0ZWRHcmFuZENoaWxk
VHJhbnNmb3JtLnRyYW5zbGF0ZSg4LCA2KTsgLy8gdHJhbnNsYXRpb24gYmVjYXVzZSBvZiBwb3Np
dGlvbiBvY2N1cnMgYmVmb3JlIGxheWVyJ3MgbG9jYWwgdHJhbnNmb3JtLgogICAgIGV4cGVjdGVk
R3JhbmRDaGlsZFRyYW5zZm9ybS5tdWx0aXBseShyb3RhdGlvbkFib3V0Wik7IC8vIGdyYW5kQ2hp
bGQncyBsb2NhbCB0cmFuc2Zvcm0KIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zv
cm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFu
ZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0s
IGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25N
YXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxk
LT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdGhJbnRlcm1l
ZGlhdGVTdXJmYWNlQW5kVHJhbnNmb3JtcykKQEAgLTEwMTYsMTAgKzEwMzcsMTAgQEAgVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhl
ZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdy
YW5kQ2hpbGRUcmFuc2Zvcm07CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRH
cmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAgICAgQVNTRVJUX1RSVUUoZ3JhbmRDaGlsZC0+cmVu
ZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFu
ZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+
ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVj
dGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRD
aGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxk
LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKIAogICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDMwCiAgICAgY2hp
bGQtPnNldFNjcm9sbERlbHRhKEludFNpemUoMTAsIDMwKSk7CkBAIC0xMDQ5LDEwICsxMDcwLDEw
IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0
aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAgICAgZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRU
cmFuc2Zvcm0ubXVsdGlwbHkocm90YXRpb25BYm91dFopOwogCiAgICAgQVNTRVJUX1RSVUUoZ3Jh
bmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFU
UklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd1Ry
YW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJh
bnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0
R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5z
Zm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3Jt
LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXRoTXVsdGlw
bGVJbnRlcm1lZGlhdGVTdXJmYWNlcykKQEAgLTExMTksMTIgKzExNDAsMTIgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBv
c2l0aW9uTGF5ZXJXaXQKIAogICAgIEFTU0VSVF9UUlVFKGdyYW5kQ2hpbGQtPnJlbmRlclN1cmZh
Y2UoKSk7CiAgICAgQVNTRVJUX1RSVUUoZ3JlYXRHcmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JhbmRD
aGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENo
aWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRTdXJmYWNlRHJhd1RyYW5zZm9ybSwgZ3JlYXRHcmFu
ZENoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwg
Z3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRGaXhlZFBvc2l0aW9uQ2hpbGRUcmFuc2Zvcm0sIGZpeGVk
UG9zaXRpb25DaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkU3Vy
ZmFjZURyYXdUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5z
Zm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRD
aGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkU3VyZmFjZURyYXdU
cmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3Jt
KCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5k
Q2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkRml4ZWRQb3NpdGlvbkNoaWxkVHJh
bnNmb3JtLCBmaXhlZFBvc2l0aW9uQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBD
YXNlIDI6IHNjcm9sbERlbHRhIG9mIDEwLCAzMAogICAgIGNoaWxkLT5zZXRTY3JvbGxEZWx0YShJ
bnRTaXplKDEwLCAzMCkpOwpAQCAtMTE1OCwxMiArMTE3OSwxMiBAQCBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25M
YXllcldpdAogCiAgICAgQVNTRVJUX1RSVUUoZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsK
ICAgICBBU1NFUlRfVFJVRShncmVhdEdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBj
aGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKGV4cGVjdGVkR3JhbmRDaGlsZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmFuZENoaWxkLT5y
ZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRy
YXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBl
Y3RlZEdyZWF0R3JhbmRDaGlsZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQt
PnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdy
YW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01B
VFJJWF9FUShleHBlY3RlZEZpeGVkUG9zaXRpb25DaGlsZFRyYW5zZm9ybSwgZml4ZWRQb3NpdGlv
bkNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRTdXJmYWNlRHJh
d1RyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJh
bnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9y
bWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRTdXJmYWNlRHJhd1RyYW5zZm9y
bSwgZ3JlYXRHcmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Cisg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRy
YW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRGaXhlZFBvc2l0aW9uQ2hpbGRUcmFuc2Zvcm0s
IGZpeGVkUG9zaXRpb25DaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0
aW9uTGF5ZXJXaXRoQ29udGFpbmVyTGF5ZXJUaGF0SGFzU3VyZmFjZSkKQEAgLTExOTIsOSArMTIx
Myw5IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVu
c2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXggZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBl
eHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAgICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRl
clN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3Rl
ZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGls
ZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBl
Y3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJh
bnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGls
ZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRy
YXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDI6IHNjcm9sbERlbHRhIG9mIDEwLCAxMAog
ICAgIGNoaWxkLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKDEwLCAxMCkpOwpAQCAtMTIwOSw5ICsx
MjMwLDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21w
ZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRU
cmFuc2Zvcm0udHJhbnNsYXRlKDEwLCAxMCk7CiAKICAgICBBU1NFUlRfVFJVRShjaGlsZC0+cmVu
ZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENo
aWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNG
T1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4
cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENo
aWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+
ZHJhd1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2
ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJUaGF0SXNBbHNvRml4
ZWRQb3NpdGlvbkNvbnRhaW5lcikKQEAgLTEyMzcsOCArMTI1OCw4IEBAIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlv
bkxheWVyVGhhCiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZENoaWxkVHJh
bnNmb3JtOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkR3JhbmRDaGlsZFRy
YW5zZm9ybTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hp
bGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxk
LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5k
Q2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDI6IHNjcm9sbERlbHRhIG9m
IDEwLCAxMAogICAgIGNoaWxkLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKDEwLCAxMCkpOwpAQCAt
MTI0Nyw4ICsxMjY4LDggQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlT
Y3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJUaGEKICAgICAvLyBIZXJlIHRo
ZSBjaGlsZCBpcyBhZmZlY3RlZCBieSBzY3JvbGxEZWx0YSwgYnV0IHRoZSBmaXhlZCBwb3NpdGlv
biBncmFuZENoaWxkIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQuCiAgICAgZXhwZWN0ZWRDaGlsZFRy
YW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLnRyYW5z
bGF0ZSgtMTAsIC0xMCk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBl
Y3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3Jt
LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXll
clRoYXRIYXNOb0NvbnRhaW5lcikKQEAgLTEyNzgsOCArMTI5OSw4IEBAIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlv
bkxheWVyVGhhCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRHcmFuZENoaWxk
VHJhbnNmb3JtOwogICAgIGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybS5tdWx0aXBseShyb3Rh
dGlvbkJ5Wik7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVk
Q2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENo
aWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEo
ZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdy
YW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAgICAvLyBDYXNlIDI6IHJvb3Qgc2Nyb2xs
RGVsdGEgb2YgMTAsIDEwCiAgICAgcm9vdC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMTAp
KTsKQEAgLTEyOTAsOCArMTMxMSw4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwg
dmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyVGhhCiAgICAgZXhw
ZWN0ZWRDaGlsZFRyYW5zZm9ybS50cmFuc2xhdGUoLTEwLCAtMTApOyAvLyB0aGUgc2Nyb2xsRGVs
dGEKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLm11bHRpcGx5KHJvdGF0aW9uQnlaKTsKIAot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9y
bSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01B
VFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFu
c2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxk
VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJp
ZnlDbGlwUmVjdEN1bGxzUmVuZGVyU3VyZmFjZXMpCkBAIC0zMDk4LDggKzMxMTksOCBAQCBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUxheWVyVHJhbnNmb3Jtc0luSGlnaERQ
SSkKIAogICAgIC8vIFZlcmlmeSBwYXJlbnQgdHJhbnNmb3JtcwogICAgIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4IGV4cGVjdGVkUGFyZW50VHJhbnNmb3JtOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+c2NyZWVuU3Bh
Y2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBl
Y3RlZFBhcmVudFRyYW5zZm9ybSwgcGFyZW50LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVj
dFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhF
cShleHBlY3RlZFBhcmVudFRyYW5zZm9ybSwgcGFyZW50LT5kcmF3VHJhbnNmb3JtKCkpOwogCiAg
ICAgLy8gVmVyaWZ5IHJlc3VsdHMgb2YgdHJhbnNmb3JtZWQgcGFyZW50IHJlY3RzCiAgICAgRmxv
YXRSZWN0IHBhcmVudENvbnRlbnRCb3VuZHMoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUocGFyZW50
LT5jb250ZW50Qm91bmRzKCkpKTsKQEAgLTMxMTUsOCArMzEzNiw4IEBAIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5TGF5ZXJUcmFuc2Zvcm1zSW5IaWdoRFBJKQogICAgIC8v
IFZlcmlmeSBjaGlsZCB0cmFuc2Zvcm1zCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhw
ZWN0ZWRDaGlsZFRyYW5zZm9ybTsKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0
ZShkZXZpY2VTY2FsZUZhY3RvciAqIGNoaWxkLT5wb3NpdGlvbigpLngoKSwgZGV2aWNlU2NhbGVG
YWN0b3IgKiBjaGlsZC0+cG9zaXRpb24oKS55KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJh
bnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRU
cmFuc2Zvcm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKIAogICAgIC8vIFZlcmlm
eSByZXN1bHRzIG9mIHRyYW5zZm9ybWVkIGNoaWxkIHJlY3RzCiAgICAgRmxvYXRSZWN0IGNoaWxk
Q29udGVudEJvdW5kcyhGbG9hdFBvaW50KCksIEZsb2F0U2l6ZShjaGlsZC0+Y29udGVudEJvdW5k
cygpKSk7CkBAIC0zMTM1LDggKzMxNTYsOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeUxheWVyVHJhbnNmb3Jtc0luSGlnaERQSSkKICAgICAvLyBBbGwgdHJhbnNmb3Jt
cyBvcGVyYXRlIG9uIGNvbnRlbnQgcmVjdHMuIFRoZSBjaGlsZCdzIGNvbnRlbnQgcmVjdAogICAg
IC8vIGluY29ycG9yYXRlcyBkZXZpY2Ugc2NhbGUsIGJ1dCB0aGUgY2hpbGROb1NjYWxlIGRvZXMg
bm90OyBhZGQgaXQgaGVyZS4KICAgICBleHBlY3RlZENoaWxkTm9TY2FsZVRyYW5zZm9ybS5zY2Fs
ZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZENoaWxkTm9TY2FsZVRyYW5zZm9ybSwgY2hpbGROb1NjYWxlLT5kcmF3VHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGls
ZE5vU2NhbGVUcmFuc2Zvcm0sIGNoaWxkTm9TY2FsZS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7
CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkTm9TY2FsZVRy
YW5zZm9ybSwgY2hpbGROb1NjYWxlLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZE5vU2NhbGVUcmFuc2Zvcm0sIGNoaWxkTm9T
Y2FsZS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5UmVuZGVyU3VyZmFjZVRyYW5zZm9ybXNJbkhpZ2hEUEkpCkBAIC0z
MTgwLDQ1ICszMjAxLDQ1IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5
UmVuZGVyU3VyZmFjZVRyYW5zZm9ybXNJbkhpZ2hEUEkpCiAgICAgRVhQRUNUX0VRKDJ1LCByZW5k
ZXJTdXJmYWNlTGF5ZXJMaXN0LnNpemUoKSk7CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBleHBlY3RlZFBhcmVudFRyYW5zZm9ybTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFU
UklYX0VRKGV4cGVjdGVkUGFyZW50VHJhbnNmb3JtLCBwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRQYXJl
bnRUcmFuc2Zvcm0sIHBhcmVudC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUGFyZW50VHJhbnNmb3JtLCBwYXJlbnQtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0
ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+ZHJhd1RyYW5zZm9ybSgpKTsKIAogICAgIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkRHJhd1RyYW5zZm9ybTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkRHJhd1RyYW5zZm9ybSwgY2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZERy
YXdUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggZXhwZWN0ZWRTY3JlZW5TcGFjZVRyYW5zZm9ybTsKICAgICBleHBlY3RlZFNj
cmVlblNwYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZShkZXZpY2VTY2FsZUZhY3RvciAqIGNoaWxkLT5w
b3NpdGlvbigpLngoKSwgZGV2aWNlU2NhbGVGYWN0b3IgKiBjaGlsZC0+cG9zaXRpb24oKS55KCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRTY3JlZW5TcGFj
ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgg
ZXhwZWN0ZWREdXBsaWNhdGVDaGlsZERyYXdUcmFuc2Zvcm0gPSBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoY2hpbGQtPmRyYXdUcmFu
c2Zvcm0oKSwgZHVwbGljYXRlQ2hpbGROb25Pd25lci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBF
WFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAg
ICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGNoaWxkLT5kcmF3VHJhbnNmb3JtKCksIGR1
cGxpY2F0ZUNoaWxkTm9uT3duZXItPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgZHVwbGljYXRl
Q2hpbGROb25Pd25lci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CiAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKGNoaWxkLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCksIGR1cGxpY2F0ZUNoaWxkTm9uT3du
ZXItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAgICAgRVhQRUNUX0VRKGNoaWxkLT5jb250ZW50
Qm91bmRzKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPmNvbnRlbnRCb3VuZHMoKSk7CiAKICAg
ICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFJlbmRlclN1cmZhY2VEcmF3VHJhbnNm
b3JtOwogICAgIGV4cGVjdGVkUmVuZGVyU3VyZmFjZURyYXdUcmFuc2Zvcm0udHJhbnNsYXRlKGRl
dmljZVNjYWxlRmFjdG9yICogY2hpbGQtPnBvc2l0aW9uKCkueCgpLCBkZXZpY2VTY2FsZUZhY3Rv
ciAqIGNoaWxkLT5wb3NpdGlvbigpLnkoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01B
VFJJWF9FUShleHBlY3RlZFJlbmRlclN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVy
U3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWRSZW5kZXJTdXJmYWNlRHJhd1RyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKIAogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
IGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm07CiAgICAgZXhwZWN0ZWRTdXJmYWNlRHJhd1Ry
YW5zZm9ybS50cmFuc2xhdGUoZGV2aWNlU2NhbGVGYWN0b3IgKiAyLCBkZXZpY2VTY2FsZUZhY3Rv
ciAqIDIpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRTdXJm
YWNlRHJhd1RyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgp
KTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkU3VyZmFjZURyYXdU
cmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7CiAKICAg
ICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFN1cmZhY2VTY3JlZW5TcGFjZVRyYW5z
Zm9ybTsKICAgICBleHBlY3RlZFN1cmZhY2VTY3JlZW5TcGFjZVRyYW5zZm9ybS50cmFuc2xhdGUo
ZGV2aWNlU2NhbGVGYWN0b3IgKiAyLCBkZXZpY2VTY2FsZUZhY3RvciAqIDIpOwotICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRTdXJmYWNlU2NyZWVuU3BhY2VUcmFu
c2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwor
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRTdXJmYWNlU2NyZWVuU3Bh
Y2VUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRSZXBsaWNhRHJhd1Ry
YW5zZm9ybTsKICAgICBleHBlY3RlZFJlcGxpY2FEcmF3VHJhbnNmb3JtLnNldE0yMigtMSk7CiAg
ICAgZXhwZWN0ZWRSZXBsaWNhRHJhd1RyYW5zZm9ybS5zZXRNNDEoNik7CiAgICAgZXhwZWN0ZWRS
ZXBsaWNhRHJhd1RyYW5zZm9ybS5zZXRNNDIoNik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZFJlcGxpY2FEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3Vy
ZmFjZSgpLT5yZXBsaWNhRHJhd1RyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkUmVwbGljYURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJm
YWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggZXhwZWN0ZWRSZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm07CiAgICAgZXhwZWN0ZWRS
ZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0uc2V0TTIyKC0xKTsKICAgICBleHBlY3RlZFJlcGxp
Y2FTY3JlZW5TcGFjZVRyYW5zZm9ybS5zZXRNNDEoNik7CiAgICAgZXhwZWN0ZWRSZXBsaWNhU2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0uc2V0TTQyKDYpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoZXhwZWN0ZWRSZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0sIGNoaWxkLT5yZW5k
ZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3Jt
LCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5yZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7
CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U3VidHJlZVNlYXJj
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVU
ZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlVGVz
dENvbW1vbi5oCmluZGV4IDVjMDFjODA0OTNjYTJmNzFkY2MwZTUxN2NhNjVhN2NkOGI4YzNkMzcu
LjAxZDgwM2FiZmU2ZWFmYzlmNGQ0NDcyMjE4OTc1NWE4MTRmNjExNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaApAQCAt
MjUsNiArMjUsOSBAQAogI2lmbmRlZiBDQ0xheWVyVHJlZVRlc3RDb21tb25faAogI2RlZmluZSBD
Q0xheWVyVHJlZVRlc3RDb21tb25faAogCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNs
dWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KKwogbmFtZXNwYWNlIFdlYktp
dFRlc3RzIHsKIAogLy8gVGhlc2UgYXJlIG1hY3JvcyBpbnN0ZWFkIG9mIGZ1bmN0aW9ucyBzbyB0
aGF0IHdlIGdldCB1c2VmdWwgbGluZSBudW1iZXJzIHdoZXJlIGEgdGVzdCBmYWlsZWQuCkBAIC00
MCwyNyArNDMsMTIgQEAgbmFtZXNwYWNlIFdlYktpdFRlc3RzIHsKICAgICBFWFBFQ1RfRVEoKGV4
cGVjdGVkKS5zaXplKCkud2lkdGgoKSwgKGFjdHVhbCkuc2l6ZSgpLndpZHRoKCkpOyAgICAgIFwK
ICAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkuaGVpZ2h0KCksIChhY3R1YWwpLnNpemUo
KS5oZWlnaHQoKSkKIAotLy8gVGhpcyBpcyBhIG1hY3JvIGluc3RlYWQgb2YgYSBmdW5jdGlvbiBz
byB0aGF0IHdlIGdldCB1c2VmdWwgbGluZSBudW1iZXJzIHdoZXJlIGEgdGVzdCBmYWlsZWQuCi0v
LyBFdmVuIHRob3VnaCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCB2YWx1ZXMgYXJlIGRvdWJsZSBw
cmVjaXNpb24sIHRoZXJlIGFyZSBtYW55IG90aGVyIGZsb2F0aW5nLXBvaW50IHZhbHVlcyB1c2Vk
IHRoYXQgYWZmZWN0Ci0vLyB0aGUgdHJhbnNmb3JtcywgYW5kIHNvIHdlIG9ubHkgZXhwZWN0IHRo
ZW0gdG8gYmUgYWNjdXJhdGUgdXAgdG8gZmxvYXRpbmctcG9pbnQgcHJlY2lzaW9uLgotI2RlZmlu
ZSBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkLCBhY3R1YWwpICAgICAg
IFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTEoKSwgKGFjdHVhbCkubTExKCkp
OyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTEyKCksIChhY3R1
YWwpLm0xMigpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0x
MygpLCAoYWN0dWFsKS5tMTMoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4
cGVjdGVkKS5tMTQoKSwgKGFjdHVhbCkubTE0KCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZM
T0FUX0VRKChleHBlY3RlZCkubTIxKCksIChhY3R1YWwpLm0yMSgpKTsgICAgICAgICAgXAotICAg
IEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMigpLCAoYWN0dWFsKS5tMjIoKSk7ICAgICAg
ICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjMoKSwgKGFjdHVhbCkubTIz
KCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTI0KCksIChh
Y3R1YWwpLm0yNCgpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQp
Lm0zMSgpLCAoYWN0dWFsKS5tMzEoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
KGV4cGVjdGVkKS5tMzIoKSwgKGFjdHVhbCkubTMyKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNU
X0ZMT0FUX0VRKChleHBlY3RlZCkubTMzKCksIChhY3R1YWwpLm0zMygpKTsgICAgICAgICAgXAot
ICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zNCgpLCAoYWN0dWFsKS5tMzQoKSk7ICAg
ICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDEoKSwgKGFjdHVhbCku
bTQxKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQyKCks
IChhY3R1YWwpLm00MigpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0
ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRf
RVEoKGV4cGVjdGVkKS5tNDQoKSwgKGFjdHVhbCkubTQ0KCkpCi0KKy8vIFRoaXMgaXMgYSBmdW5j
dGlvbiByYXRoZXIgdGhhbiBhIG1hY3JvIGJlY2F1c2Ugd2hlbiB0aGlzIGlzIGluY2x1ZGVkIGFz
IGEgbWFjcm8KKy8vIGluIGJ1bGssIGl0IGNhdXNlcyBhIHNpZ25pZmljYW50IHNsb3ctZG93biBp
biBjb21waWxhdGlvbiB0aW1lLiBUaGlzIHByb2JsZW0KKy8vIGV4aXN0cyB3aXRoIGJvdGggZ2Nj
IGFuZCBjbGFuZywgYW5kIGJ1Z3MgaGF2ZSBiZWVuIGZpbGVkIGF0CisvLyBodHRwOi8vbGx2bS5v
cmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTEgYW5kIGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6
aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTQzMzcKK3ZvaWQgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXgg
YWN0dWFsKTsKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZiAvLyBDQ0xheWVyVHJlZVRlc3RDb21t
b25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zv
cm1PcGVyYXRpb25zVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRy
YW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCBkZWFmN2FkNzRmNTMyOTFlZjViNDFhYWUx
MDllZDI3MTgwZWYwZDllLi5iOWFmOGFkYTg3NjgwM2EyMGNhNmI5MTQxOTQyOGJmM2Q2M2VjNDMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9w
ZXJhdGlvbnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRy
YW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIFRFU1QoV2ViVHJh
bnNmb3JtT3BlcmF0aW9uVGVzdCwgYXBwbHlUcmFuc2xhdGUpCiAgICAgb3BlcmF0aW9ucy5hcHBl
bmRUcmFuc2xhdGUoeCwgeSwgeik7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0
ZWQ7CiAgICAgZXhwZWN0ZWQudHJhbnNsYXRlM2QoeCwgeSwgeik7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKKyAgICBX
ZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZCwgb3BlcmF0
aW9ucy5hcHBseSgpKTsKIH0KIAogVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBs
eVJvdGF0ZSkKQEAgLTEzNCw3ICsxMzQsNyBAQCBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRl
c3QsIGFwcGx5Um90YXRlKQogICAgIG9wZXJhdGlvbnMuYXBwZW5kUm90YXRlKHgsIHksIHosIGRl
Z3JlZXMpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkOwogICAgIGV4cGVj
dGVkLnJvdGF0ZTNkKHgsIHksIHosIGRlZ3JlZXMpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CisgICAgV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBw
bHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwgYXBwbHlTY2FsZSkK
QEAgLTE0Niw3ICsxNDYsNyBAQCBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5
U2NhbGUpCiAgICAgb3BlcmF0aW9ucy5hcHBlbmRTY2FsZSh4LCB5LCB6KTsKICAgICBXZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZDsKICAgICBleHBlY3RlZC5zY2FsZTNkKHgsIHksIHop
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIG9wZXJhdGlv
bnMuYXBwbHkoKSk7CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3Jt
T3BlcmF0aW9uVGVzdCwgYXBwbHlTa2V3KQpAQCAtMTU4LDcgKzE1OCw3IEBAIFRFU1QoV2ViVHJh
bnNmb3JtT3BlcmF0aW9uVGVzdCwgYXBwbHlTa2V3KQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4IGV4cGVjdGVkOwogICAgIGV4cGVjdGVkLnNrZXdYKHgpOwogICAgIGV4cGVjdGVkLnNrZXdZ
KHkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIG9wZXJh
dGlvbnMuYXBwbHkoKSk7CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNm
b3JtT3BlcmF0aW9uVGVzdCwgYXBwbHlQZXJzcGVjdGl2ZSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBU
RVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5UGVyc3BlY3RpdmUpCiAgICAgb3Bl
cmF0aW9ucy5hcHBlbmRQZXJzcGVjdGl2ZShkZXB0aCk7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggZXhwZWN0ZWQ7CiAgICAgZXhwZWN0ZWQuYXBwbHlQZXJzcGVjdGl2ZShkZXB0aCk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9ucy5h
cHBseSgpKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKIH0KIAogVEVTVChXZWJUcmFuc2Zvcm1PcGVy
YXRpb25UZXN0LCBhcHBseU1hdHJpeCkKQEAgLTE4MCw3ICsxODAsNyBAQCBURVNUKFdlYlRyYW5z
Zm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5TWF0cml4KQogICAgIGV4cGVjdGVkTWF0cml4LnRyYW5z
bGF0ZTNkKGR4LCBkeSwgZHopOwogICAgIFdlYlRyYW5zZm9ybU9wZXJhdGlvbnMgbWF0cml4VHJh
bnNmb3JtOwogICAgIG1hdHJpeFRyYW5zZm9ybS5hcHBlbmRNYXRyaXgoZXhwZWN0ZWRNYXRyaXgp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRNYXRyaXgsIG1h
dHJpeFRyYW5zZm9ybS5hcHBseSgpKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShleHBlY3RlZE1hdHJpeCwgbWF0cml4VHJhbnNmb3JtLmFwcGx5KCkpOwog
fQogCiBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGFwcGx5T3JkZXIpCkBAIC0yMDYs
NyArMjA2LDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseU9yZGVyKQog
ICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkQ29tYmluZWRNYXRyaXggPSBleHBl
Y3RlZFNjYWxlTWF0cml4OwogICAgIGV4cGVjdGVkQ29tYmluZWRNYXRyaXgubXVsdGlwbHkoZXhw
ZWN0ZWRUcmFuc2xhdGVNYXRyaXgpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZENvbWJpbmVkTWF0cml4LCBvcGVyYXRpb25zLmFwcGx5KCkpOworICAgIFdl
YktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ29tYmluZWRN
YXRyaXgsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0
aW9uVGVzdCwgYmxlbmRPcmRlcikKQEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKFdlYlRyYW5zZm9y
bU9wZXJhdGlvblRlc3QsIGJsZW5kT3JkZXIpCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgg
ZXhwZWN0ZWQgPSBibGVuZGVkU2NhbGU7CiAgICAgZXhwZWN0ZWQubXVsdGlwbHkoYmxlbmRlZFRy
YW5zbGF0ZSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVk
LCBvcGVyYXRpb25zVG8uYmxlbmQob3BlcmF0aW9uc0Zyb20sIHByb2dyZXNzKSk7CisgICAgV2Vi
S2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIG9wZXJhdGlv
bnNUby5ibGVuZChvcGVyYXRpb25zRnJvbSwgcHJvZ3Jlc3MpKTsKIH0KIAogc3RhdGljIHZvaWQg
Y2hlY2tQcm9ncmVzcyhkb3VibGUgcHJvZ3Jlc3MsCkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGlj
IHZvaWQgY2hlY2tQcm9ncmVzcyhkb3VibGUgcHJvZ3Jlc3MsCiB7CiAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggZXhwZWN0ZWRNYXRyaXggPSB0b01hdHJpeDsKICAgICBleHBlY3RlZE1hdHJp
eC5ibGVuZChmcm9tTWF0cml4LCBwcm9ncmVzcyk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZE1hdHJpeCwgdG9UcmFuc2Zvcm0uYmxlbmQoZnJvbVRyYW5zZm9y
bSwgcHJvZ3Jlc3MpKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShleHBlY3RlZE1hdHJpeCwgdG9UcmFuc2Zvcm0uYmxlbmQoZnJvbVRyYW5zZm9ybSwgcHJv
Z3Jlc3MpKTsKIH0KIAogVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBibGVuZFByb2dy
ZXNzKQpAQCAtMzM3LDUgKzMzNyw1IEBAIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwg
YmxlbmRXaGVuVHlwZXNEb05vdE1hdGNoKQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4
cGVjdGVkID0gdG87CiAgICAgZXhwZWN0ZWQuYmxlbmQoZnJvbSwgcHJvZ3Jlc3MpOwogCi0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9uc1RvLmJs
ZW5kKG9wZXJhdGlvbnNGcm9tLCBwcm9ncmVzcykpOworICAgIFdlYktpdFRlc3RzOjpFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkLCBvcGVyYXRpb25zVG8uYmxlbmQob3BlcmF0
aW9uc0Zyb20sIHByb2dyZXNzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAKaW5kZXggZWI0
NDJmNGUzZGVlZjJlYzk5YjY3YTM5ZWY1NDlhYzU2NWNkNTQyMy4uNjA1MWY3NmI3NjUwNWY0ZGRj
ZDExNDU0M2NkOGI3OTIyMTE4M2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcApAQCAtMTAw
Nyw3ICsxMDA3LDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJs
ZW5kRm9yVHJhbnNsYXRpb24pCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8udHJhbnNs
YXRlM2QoMjAwLCAxMDAsIDMwMCk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgV2ViS2l0VGVzdHM6OkV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOwogCiAgICAgdG8ubWFrZUlkZW50
aXR5KCk7CiAgICAgdG8udHJhbnNsYXRlM2QoMjAwLCAxMDAsIDMwMCk7CkBAIC0xMDQ0LDcgKzEw
NDQsNyBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5QmxlbmRGb3JT
Y2FsZSkKICAgICB0by5tYWtlSWRlbnRpdHkoKTsKICAgICB0by5zY2FsZTNkKDIwMCwgMTAwLCAz
MDApOwogICAgIHRvLmJsZW5kKGZyb20sIDApOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoZnJvbSwgdG8pOworICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGZyb20sIHRvKTsKIAogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnNj
YWxlM2QoMjAwLCAxMDAsIDMwMCk7CkBAIC0xMDgxLDcgKzEwODEsNyBAQCBURVNUKFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5QmxlbmRGb3JTa2V3WCkKICAgICB0by5tYWtlSWRl
bnRpdHkoKTsKICAgICB0by5za2V3WCg0NSk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOwogCiAgICAgdG8ubWFr
ZUlkZW50aXR5KCk7CiAgICAgdG8uc2tld1goNDUpOwpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgVEVT
VChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yU2tld1kpCiAgICAg
dG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8uc2tld1koNDUpOwogICAgIHRvLmJsZW5kKGZyb20s
IDApOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJvbSwgdG8pOworICAg
IFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZyb20sIHRvKTsKIAog
ICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnNrZXdZKDQ1KTsKQEAgLTExNzIsNyArMTE3
Miw3IEBAIFRFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVuZEZvclJv
dGF0aW9uQWJvdXRYKQogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnJvdGF0ZTNkKDEs
IDAsIDAsIDkwKTsKICAgICB0by5ibGVuZChmcm9tLCAwKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGZyb20sIHRvKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShmcm9tLCB0byk7CiAKICAgICBkb3VibGUgZXhwZWN0ZWRSb3RhdGlv
bkFuZ2xlID0gMjIuNSAqIHBpRG91YmxlIC8gMTgwLjA7CiAgICAgdG8ubWFrZUlkZW50aXR5KCk7
CkBAIC0xMjExLDcgKzEyMTEsNyBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwg
dmVyaWZ5QmxlbmRGb3JSb3RhdGlvbkFib3V0WSkKICAgICB0by5tYWtlSWRlbnRpdHkoKTsKICAg
ICB0by5yb3RhdGUzZCgwLCAxLCAwLCA5MCk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOwogCiAgICAgZG91Ymxl
IGV4cGVjdGVkUm90YXRpb25BbmdsZSA9IDIyLjUgKiBwaURvdWJsZSAvIDE4MC4wOwogICAgIHRv
Lm1ha2VJZGVudGl0eSgpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yUm90YXRpb25BYm91dFopCiAgICAgdG8ubWFr
ZUlkZW50aXR5KCk7CiAgICAgdG8ucm90YXRlM2QoMCwgMCwgMSwgOTApOwogICAgIHRvLmJsZW5k
KGZyb20sIDApOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJvbSwgdG8p
OworICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZyb20sIHRv
KTsKIAogICAgIGRvdWJsZSBleHBlY3RlZFJvdGF0aW9uQW5nbGUgPSAyMi41ICogcGlEb3VibGUg
LyAxODAuMDsKICAgICB0by5tYWtlSWRlbnRpdHkoKTsKQEAgLTEzMDMsNyArMTMwMyw3IEBAIFRF
U1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVuZEZvckNvbXBvc2l0ZVRy
YW5zZm9ybSkKICAgICAKICAgICB0byA9IGV4cGVjdGVkRW5kT2ZBbmltYXRpb247CiAgICAgdG8u
YmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShmcm9t
LCB0byk7CisgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJv
bSwgdG8pOwogCiAgICAgdG8gPSBleHBlY3RlZEVuZE9mQW5pbWF0aW9uOwogICAgIHRvLmJsZW5k
KGZyb20sIDEpOwpAQCAtMTMxOSw3ICsxMzE5LDcgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yQ29tcG9zaXRlVHJhbnNmb3JtKQogICAgIG5vcm1hbGl6
YXRpb25NYXRyaXguc2V0TTQ0KDEgLyBleHBlY3RlZEVuZE9mQW5pbWF0aW9uLm00NCgpKTsKICAg
ICBub3JtYWxpemVkRXhwZWN0ZWRFbmRPZkFuaW1hdGlvbi5tdWx0aXBseShub3JtYWxpemF0aW9u
TWF0cml4KTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEobm9ybWFsaXpl
ZEV4cGVjdGVkRW5kT2ZBbmltYXRpb24sIHRvKTsKKyAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShub3JtYWxpemVkRXhwZWN0ZWRFbmRPZkFuaW1hdGlvbiwgdG8p
OwogfQogCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159815</attachid>
            <date>2012-08-21 17:39:01 -0700</date>
            <delta_ts>2012-08-22 13:07:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94639-20120821173859.patch</filename>
            <type>text/plain</type>
            <size>69394</size>
            <attacher>nbhargava</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxYjM3OTMwN2FhN2QwNTBjYThhMzM1ZmY3NGQ5YzBjOTA3MTY4YTcuLmY2ZTlhYTI3OGE5NTQx
YjNkMTllZjg4ODIzNzllZWQ2MWExNjVmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMjEgIE5pa2hpbCBCaGFyZ2F2YSAgPG5iaGFyZ2F2YUBn
b29nbGUuY29tPgorCisgICAgICAgIFNwZWVkIHVwIGNvbXBpbGF0aW9uIG9mIHRlc3RzIGludm9s
dmluZyBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRIHdhcyBj
aGFuZ2VkIGZyb20gYSBtYWNybyB0byBhIGZ1bmN0aW9uLgorICAgICAgICBBcyBhIG1hY3JvIHRo
YXQgZXhwYW5kZWQgaW50byAxNiBvdGhlciBtYWNyb3MsIGl0IGNhdXNlZCBhbiB1bm5lZWRlZAor
ICAgICAgICBzbG93IGRvd24gb2YgY2xvc2UgdG8gNDVzIGluIHRoZSBjb21waWxlIHRpbWUgb2Yg
Q0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdAorICAgICAgICBCdWdzIGhhdmUgYmVlbiBmaWxlZCB0
byBjbGFuZyBhbmQgZ2NjIG5vdGluZyB0aGUgZXJyYW50IGJlaGF2aW9yOgorICAgICAgICBodHRw
Oi8vbGx2bS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTEgYW5kIGh0dHA6Ly9nY2MuZ251
Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTQzMzcKKworICAgICAgICAqIHRlc3RzL0ND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
VGVzdENvbW1vbi5oOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViS2l0VGVz
dHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEpOgorICAgICAgICAqIHRlc3RzL1dlYlRy
YW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcDoKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoY2hl
Y2tQcm9ncmVzcyk6CisgICAgICAgICogdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisKIDIwMTItMDgtMTYgIFBldGVyIEJldmVy
bG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQg
REVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IDFlNmE1OThmY2I0YTE5NzAzOGZkYzM3Y2Q0
NjhmMzc3NjI2NGQ2YTguLjdiNTM3ZDM1NDZiY2ZjNWU3ODc3MDI3NWFiNmU5OTZiNGY5ZmY5YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LmNwcApAQCAtNDYsNiArNDYsMjcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0VGVzdHM7CiB1c2luZyBXZWJLaXQ6Oldl
YlRyYW5zZm9ybWF0aW9uTWF0cml4OwogCit2b2lkIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBhY3R1YWwpCit7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTExKCks
IChhY3R1YWwpLm0xMSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTIoKSwg
KGFjdHVhbCkubTEyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMygpLCAo
YWN0dWFsKS5tMTMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTE0KCksIChh
Y3R1YWwpLm0xNCgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjEoKSwgKGFj
dHVhbCkubTIxKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMigpLCAoYWN0
dWFsKS5tMjIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIzKCksIChhY3R1
YWwpLm0yMygpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjQoKSwgKGFjdHVh
bCkubTI0KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMSgpLCAoYWN0dWFs
KS5tMzEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMyKCksIChhY3R1YWwp
Lm0zMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzMoKSwgKGFjdHVhbCku
bTMzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zNCgpLCAoYWN0dWFsKS5t
MzQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQxKCksIChhY3R1YWwpLm00
MSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDIoKSwgKGFjdHVhbCkubTQy
KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMo
KSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQ0KCksIChhY3R1YWwpLm00NCgp
KTsKK30KKwogbmFtZXNwYWNlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlPgpAQCAt
MTQ4LDcgKzE2OSw2IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJh
bnNmb3Jtc0Zvck5vT3BMYXllcikKICAgICAvLyBhbmQgd2l0aCBpZGVudGl0eSB0cmFuc2Zvcm1z
LCB0aGVuIHRoZSBkcmF3VHJhbnNmb3JtLAogICAgIC8vIHNjcmVlblNwYWNlVHJhbnNmb3JtLCBh
bmQgdGhlIGhpZXJhcmNoeSBwYXNzZWQgb24gdG8gY2hpbGRyZW4KICAgICAvLyBsYXllcnMgc2hv
dWxkIGFsc28gYmUgaWRlbnRpdHkgdHJhbnNmb3Jtcy4KLQogICAgIFJlZlB0cjxMYXllckNocm9t
aXVtPiBwYXJlbnQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKICAgICBSZWZQdHI8TGF5ZXJD
aHJvbWl1bT4gY2hpbGQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKICAgICBSZWZQdHI8TGF5
ZXJDaHJvbWl1bT4gZ3JhbmRDaGlsZCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwpAQCAtMTYy
LDEwICsxODIsMjIgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFu
c2Zvcm1zRm9yTm9PcExheWVyKQogCiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1z
QW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAg
RVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPnNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhf
RVEoaWRlbnRpdHlNYXRyaXgsIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIp
OworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBj
aGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAg
ICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhF
cShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9Cisg
ICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQpAQCAtMTc5LDMwICsyMTEsNTQgQEAgVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2luZ2xlTGF5ZXIp
CiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgaWRlbnRpdHlN
YXRyaXgsIGFyYml0cmFyeVRyYW5zbGF0aW9uLCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50
KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwogICAgIFdlYlRyYW5zZm9y
bWF0aW9uTWF0cml4IGV4cGVjdGVkRHJhd1RyYW5zZm9ybSA9IGlkZW50aXR5TWF0cml4OwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWREcmF3VHJhbnNmb3JtLCBs
YXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKGlkZW50aXR5TWF0cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAg
eworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkRHJhd1RyYW5zZm9ybSwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7
CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgbGF5ZXItPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOworICAgIH0KIAogICAgIC8vIENhc2UgMjogU2V0dGluZyB0aGUgYm91bmRz
IG9mIHRoZSBsYXllciBzaG91bGQgbm90IGFmZmVjdCBlaXRoZXIgdGhlIGRyYXcgdHJhbnNmb3Jt
IG9yIHRoZSBzY3JlZW5zcGFjZSB0cmFuc2Zvcm0uCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXggdHJhbnNsYXRpb25Ub0NlbnRlcjsKICAgICB0cmFuc2xhdGlvblRvQ2VudGVyLnRyYW5zbGF0
ZSg1LCA2KTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBp
ZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9p
bnQoMCwgMCksIEludFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGxheWVyLT5kcmF3VHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgs
IGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlN
YXRyaXgsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFND
T1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRl
bnRpdHlNYXRyaXgsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CiAKICAg
ICAvLyBDYXNlIDM6IFRoZSBhbmNob3IgcG9pbnQgYnkgaXRzZWxmICh3aXRob3V0IGEgbGF5ZXIg
dHJhbnNmb3JtKSBzaG91bGQgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIHRyYW5zZm9ybXMuCiAgICAg
c2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhsYXllci5nZXQoKSwgaWRlbnRpdHlNYXRyaXgs
IGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMjUsIDAuMjUpLCBGbG9hdFBvaW50KDAsIDAp
LCBJbnRTaXplKDEwLCAxMiksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5z
Zm9ybXNBbmRWaXNpYmlsaXR5KGxheWVyLmdldCgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJ
T05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAg
ICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBsYXllci0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIp
OworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBs
YXllci0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgLy8gQ2Fz
ZSA0OiBBIGNoYW5nZSBpbiBhY3R1YWwgcG9zaXRpb24gYWZmZWN0cyBib3RoIHRoZSBkcmF3IHRy
YW5zZm9ybSBhbmQgc2NyZWVuIHNwYWNlIHRyYW5zZm9ybS4KICAgICBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBwb3NpdGlvblRyYW5zZm9ybTsKICAgICBwb3NpdGlvblRyYW5zZm9ybS50cmFuc2xh
dGUoMCwgMS4yKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgp
LCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4yNSwgMC4yNSks
IEZsb2F0UG9pbnQoMCwgMS4yZiksIEludFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAgIGV4ZWN1
dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocG9zaXRpb25UcmFuc2Zvcm0sIGxheWVy
LT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEo
cG9zaXRpb25UcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7
CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEocG9zaXRpb25UcmFuc2Zvcm0sIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEocG9zaXRpb25UcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpKTsKKyAgICB9CiAKICAgICAvLyBDYXNlIDU6IEluIHRoZSBjb3JyZWN0IHNlcXVl
bmNlIG9mIHRyYW5zZm9ybXMsIHRoZSBsYXllciB0cmFuc2Zvcm0gc2hvdWxkIHByZS1tdWx0aXBs
eSB0aGUgdHJhbnNsYXRpb25Ub0NlbnRlci4gVGhpcyBpcyBlYXNpbHkgdGVzdGVkIGJ5CiAgICAg
Ly8gICAgICAgICB1c2luZyBhIHNjYWxlIHRyYW5zZm9ybSwgYmVjYXVzZSBzY2FsZSBhbmQgdHJh
bnNsYXRpb24gYXJlIG5vdCBjb21tdXRhdGl2ZS4KQEAgLTIxMCw4ICsyNjYsMTQgQEAgVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2luZ2xlTGF5ZXIp
CiAgICAgbGF5ZXJUcmFuc2Zvcm0uc2NhbGUzZCgyLCAyLCAxKTsKICAgICBzZXRMYXllclByb3Bl
cnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgaWRlbnRpdHlNYXRy
aXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAsIDEyKSwg
ZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHko
bGF5ZXIuZ2V0KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEobGF5ZXJU
cmFuc2Zvcm0sIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT5kcmF3VHJhbnNmb3Jt
KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CiAKICAgICAvLyBDYXNlIDY6IFRoZSBsYXllciB0cmFu
c2Zvcm0gc2hvdWxkIG9jY3VyIHdpdGggcmVzcGVjdCB0byB0aGUgYW5jaG9yIHBvaW50LgogICAg
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zbGF0aW9uVG9BbmNob3I7CkBAIC0yMTksOCAr
MjgxLDE0IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jt
c0ZvclNpbmdsZUxheWVyKQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkUmVz
dWx0ID0gdHJhbnNsYXRpb25Ub0FuY2hvciAqIGxheWVyVHJhbnNmb3JtICogdHJhbnNsYXRpb25U
b0FuY2hvci5pbnZlcnNlKCk7CiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhsYXll
ci5nZXQoKSwgbGF5ZXJUcmFuc2Zvcm0sIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuNSwg
MCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAsIDEyKSwgZmFsc2UpOwogICAgIGV4ZWN1
dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkobGF5ZXIuZ2V0KCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRSZXN1bHQsIGxheWVyLT5k
cmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhw
ZWN0ZWRSZXN1bHQsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAg
ICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZXhwZWN0ZWRSZXN1bHQsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7
CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZXhwZWN0ZWRSZXN1bHQsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsK
KyAgICB9CiAKICAgICAvLyBDYXNlIDc6IFZlcmlmeSB0aGF0IHBvc2l0aW9uIHByZS1tdWx0aXBs
aWVzIHRoZSBsYXllciB0cmFuc2Zvcm0uCiAgICAgLy8gICAgICAgICBUaGUgY3VycmVudCBpbXBs
ZW1lbnRhdGlvbiBvZiBjYWxjdWxhdGVEcmF3VHJhbnNmb3JtcyBkb2VzIHRoaXMgaW1wbGljaXRs
eSwgYnV0IGl0IGlzCkBAIC0yMjgsOCArMjk2LDE0IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZUxheWVyKQogICAgIGV4cGVjdGVkUmVz
dWx0ID0gcG9zaXRpb25UcmFuc2Zvcm0gKiB0cmFuc2xhdGlvblRvQW5jaG9yICogbGF5ZXJUcmFu
c2Zvcm0gKiB0cmFuc2xhdGlvblRvQW5jaG9yLmludmVyc2UoKTsKICAgICBzZXRMYXllclByb3Bl
cnRpZXNGb3JUZXN0aW5nKGxheWVyLmdldCgpLCBsYXllclRyYW5zZm9ybSwgaWRlbnRpdHlNYXRy
aXgsIEZsb2F0UG9pbnQoMC41LCAwKSwgRmxvYXRQb2ludCgwLCAxLjJmKSwgSW50U2l6ZSgxMCwg
MTIpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJp
bGl0eShsYXllci5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShl
eHBlY3RlZFJlc3VsdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPnNjcmVlblNwYWNlVHJh
bnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPmRyYXdUcmFu
c2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFJlc3VsdCwgbGF5ZXItPnNj
cmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxlSGllcmFyY2h5KQpAQCAtMjQ2LDEw
ICszMjAsMjIgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zv
cm1zRm9yU2ltcGxlSGllcmFyY2h5KQogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rpbmco
Y2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LCAwKSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxNiwgMTgpLCBmYWxzZSk7CiAgICAgc2V0
TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJp
eCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIElu
dFNpemUoNzYsIDc4KSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBF
WFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+c2Ny
ZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShpZGVudGl0eU1hdHJpeCwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7
CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIGNo
aWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFD
RSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRy
aXgsIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAg
ICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAg
ICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0
aW9uTWF0cml4RXEoaWRlbnRpdHlNYXRyaXgsIGdyYW5kQ2hpbGQtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIH0KIAogICAgIC8vIENhc2UgMjogcGFyZW50J3MgcG9zaXRpb24gYWZmZWN0
cyBjaGlsZCBhbmQgZ3JhbmRDaGlsZC4KICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBwYXJl
bnRQb3NpdGlvblRyYW5zZm9ybTsKQEAgLTI1OCwxMCArMzQ0LDIyIEBAIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbXBsZUhpZXJhcmNoeSkKICAg
ICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJp
eCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIElu
dFNpemUoMTYsIDE4KSwgZmFsc2UpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3Rpbmco
Z3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBv
aW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDc2LCA3OCksIGZhbHNlKTsKICAg
ICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQo
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRy
YW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNl
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50
UG9zaXRpb25UcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURf
VFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudFBv
c2l0aW9uVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgewor
ICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKHBhcmVudFBvc2l0aW9uVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zv
cm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRQb3NpdGlvblRyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURf
VFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudFBv
c2l0aW9uVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAg
ICB9CiAKICAgICAvLyBDYXNlIDM6IHBhcmVudCdzIGxvY2FsIHRyYW5zZm9ybSBhZmZlY3RzIGNo
aWxkIGFuZCBncmFuZGNoaWxkCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggcGFyZW50TGF5
ZXJUcmFuc2Zvcm07CkBAIC0yNzMsMTAgKzM3MSwyMiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5
ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2
LCAxOCksIGZhbHNlKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hp
bGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAw
KSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0
ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3Jt
LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFU
UklYX0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9z
aXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENo
aWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFD
RSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9z
aXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBncmFu
ZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29t
cG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAg
ICB9CiAKICAgICAvLyBDYXNlIDQ6IHBhcmVudCdzIHN1YmxheWVyTWF0cml4IGFmZmVjdHMgY2hp
bGQgYW5kIGdyYW5kY2hpbGQKICAgICAvLyAgICAgICAgIHNjYWxpbmcgaXMgdXNlZCBoZXJlIGFn
YWluIHNvIHRoYXQgdGhlIGNvcnJlY3Qgc2VxdWVuY2Ugb2YgdHJhbnNmb3JtcyBpcyBwcm9wZXJs
eSB0ZXN0ZWQuCkBAIC0yOTQsMTAgKzQwNCwyMiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5ZXJQ
cm9wZXJ0aWVzRm9yVGVzdGluZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5
TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAx
OCksIGZhbHNlKTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGdyYW5kQ2hpbGQu
Z2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwg
RmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg3NiwgNzgpLCBmYWxzZSk7CiAgICAgZXhlY3V0ZUNh
bGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBj
aGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZmxhdHRlbmVkQ29tcG9z
aXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZmxhdHRlbmVkQ29tcG9zaXRlVHJhbnNmb3JtLCBncmFu
ZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29t
cG9zaXRlVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgewor
ICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAg
IEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZmxhdHRlbmVkQ29tcG9zaXRlVHJhbnNmb3Jt
LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFND
T1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZmxh
dHRlbmVkQ29tcG9zaXRlVHJhbnNmb3JtLCBncmFuZENoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICB9CiAKICAgICAvLyBDYXNlIDU6IHNhbWUgYXMgQ2FzZSA0LCBleGNlcHQgdGhh
dCBjaGlsZCBkb2VzIHByZXNlcnZlIDNELCBzbyB0aGUgZ3JhbmRDaGlsZCBzaG91bGQgcmVjZWl2
ZSB0aGUgbm9uLWZsYXR0ZW5lZCBjb21wb3NpdGUgdHJhbnNmb3JtLgogICAgIC8vCkBAIC0zMDUs
MTAgKzQyNywyMiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5z
Zm9ybXNGb3JTaW1wbGVIaWVyYXJjaHkpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGlu
ZyhjaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50
KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDE2LCAxOCksIHRydWUpOwogICAgIHNl
dExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRy
aXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDAsIDApLCBJ
bnRTaXplKDc2LCA3OCksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRl
VHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGNoaWxkLT5k
cmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7
CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9zaXRlVHJh
bnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAg
ICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShwYXJlbnRDb21wb3NpdGVUcmFuc2Zvcm0sIGdyYW5k
Q2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KIH0KIAogVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2luZ2xlUmVuZGVyU3VyZmFj
ZSkKQEAgLTM0OCwxNCArNDgyLDI2IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwg
dmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZVJlbmRlclN1cmZhY2UpCiAKICAgICAvLyBUaGUgY2hp
bGQgbGF5ZXIncyBkcmF3IHRyYW5zZm9ybSBzaG91bGQgcmVmZXIgdG8gaXRzIG5ldyByZW5kZXIg
c3VyZmFjZS4KICAgICAvLyBUaGUgc2NyZWVuLXNwYWNlIHRyYW5zZm9ybSwgaG93ZXZlciwgc2hv
dWxkIHN0aWxsIHJlZmVyIHRvIHRoZSByb290LgotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3JtLCBj
aGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09Q
RURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVu
dENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAg
IH0KIAogICAgIC8vIEJlY2F1c2UgdGhlIGdyYW5kQ2hpbGQgaXMgdGhlIG9ubHkgZHJhd2FibGUg
Y29udGVudCwgdGhlIGNoaWxkJ3MgcmVuZGVyU3VyZmFjZSB3aWxsIHRpZ2h0ZW4gaXRzIGJvdW5k
cyB0byB0aGUgZ3JhbmRDaGlsZC4KLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KHBhcmVudENvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJT
dXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKHBhcmVudENvbXBvc2l0
ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgLy8gVGhlIHNjcmVlbiBzcGFjZSBpcyB0aGUgc2Ft
ZSBhcyB0aGUgdGFyZ2V0IHNpbmNlIHRoZSBjaGlsZCBzdXJmYWNlIGRyYXdzIGludG8gdGhlIHJv
b3QuCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShwYXJlbnRDb21wb3NpdGVU
cmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJUYXJnZXQoKS0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAg
ICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEocGFyZW50Q29tcG9zaXRlVHJhbnNmb3Jt
LCBjaGlsZC0+cmVuZGVyVGFyZ2V0KCktPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CisgICAgfQogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeVRyYW5zZm9ybXNGb3JSZXBsaWNhKQpAQCAtNDAxLDggKzU0NywxNCBAQCBURVNUKENDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JSZXBsaWNhKQogICAgIEFT
U0VSVF9UUlVFKGNoaWxkLT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIEFTU0VSVF9FUShjaGlsZCwg
Y2hpbGQtPnJlbmRlclRhcmdldCgpKTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRS
SVhfRVEocmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclRhcmdldCgpLT5y
ZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEocmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJl
bmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEocmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJl
bmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOwor
ICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEocmVwbGljYUNvbXBvc2l0ZVRyYW5zZm9ybSwgY2hpbGQtPnJl
bmRlclRhcmdldCgpLT5yZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5
VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkpCkBAIC01MDksNDQgKzY2MSwxMjIg
QEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yUmVu
ZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAgICAvLyAgbm90ZSB0aGF0IGRyYXcgdHJhbnNmb3JtcyBh
cmUgZGVzY3JpYmVkIHdpdGggcmVzcGVjdCB0byB0aGUgbmVhcmVzdCBhbmNlc3RvciByZW5kZXIg
c3VyZmFjZQogICAgIC8vICBidXQgc2NyZWVuIHNwYWNlIHRyYW5zZm9ybXMgYXJlIGRlc2NyaWJl
ZCB3aXRoIHJlc3BlY3QgdG8gdGhlIHJvb3QuCiAgICAgLy8KLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKEEsIHBhcmVudC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSwgY2hpbGRPZlJvb3QtPmRyYXdUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEg
KiBCICogQSwgZ3JhbmRDaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB7CisgICAg
ICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoQSwgcGFyZW50LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFND
T1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAq
IEIgKiBBLCBjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKEEgKiBCICogQSAqIEIgKiBBLCBncmFuZENoaWxkT2ZSb290LT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIH0KIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlN
YXRyaXgsIHJlbmRlclN1cmZhY2UxLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoQiAqIEEsIGNoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm0oKSk7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShCICogQSAqIEIgKiBBLCBncmFu
ZENoaWxkT2ZSUzEtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0
cml4LCByZW5kZXJTdXJmYWNlMS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKEIgKiBBLCBjaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7Cisg
ICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMxLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIH0KIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRy
aXgsIHJlbmRlclN1cmZhY2UyLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoQiAqIEEsIGNoaWxkT2ZSUzItPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShCICogQSAqIEIgKiBBLCBncmFuZENo
aWxkT2ZSUzItPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4
LCByZW5kZXJTdXJmYWNlMi0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAg
ICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KEIgKiBBLCBjaGlsZE9mUlMyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAg
ICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMyLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IH0KIAogICAgIC8vIFZlcmlmeSBsYXllciBzY3JlZW4tc3BhY2UgdHJhbnNmb3JtcwogICAgIC8v
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBLCBwYXJlbnQtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAq
IEIgKiBBLCBjaGlsZE9mUm9vdC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9m
Um9vdC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEsIHBhcmVudC0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RS
QUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEs
IGNoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKEEgKiBCICogQSAqIEIgKiBBLCBncmFuZENoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpKTsKKyAgICB9CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEg
KiBCICogQSwgcmVuZGVyU3VyZmFjZTEtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIEEsIGNoaWxkT2ZS
UzEtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIEEgKiBCICogQSwgZ3JhbmRDaGlsZE9mUlMxLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7Cisg
ICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBBLCByZW5kZXJTdXJm
YWNlMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NP
UEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICog
QiAqIEEgKiBCICogQSwgY2hpbGRPZlJTMS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAg
fQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEgKiBCICogQSAqIEIgKiBBLCBncmFuZENoaWxkT2ZS
UzEtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KIAotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICogQiAqIEEsIHJlbmRlclN1cmZhY2UyLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KEEgKiBCICogQSAqIEIgKiBBICogQiAqIEEsIGNoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoQSAqIEIgKiBBICog
QiAqIEEgKiBCICogQSAqIEIgKiBBLCBncmFuZENoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEgKiBCICogQSwgcmVuZGVyU3VyZmFjZTIt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBB
ICogQiAqIEEgKiBCICogQSwgY2hpbGRPZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Cisg
ICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAqIEEgKiBCICogQSAqIEIgKiBBICogQiAqIEEsIGdy
YW5kQ2hpbGRPZlJTMi0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgLy8g
VmVyaWZ5IHJlbmRlciBzdXJmYWNlIHRyYW5zZm9ybXMuCiAgICAgLy8KICAgICAvLyBEcmF3IHRy
YW5zZm9ybSBvZiByZW5kZXIgc3VyZmFjZSAxIGlzIGRlc2NyaWJlZCB3aXRoIHJlc3BlY3QgdG8g
cm9vdC4KLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogQSwgcmVu
ZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKEEgKiBCICogUiwgcmVuZGVyU3VyZmFjZTEtPnJl
bmRlclN1cmZhY2UoKS0+cmVwbGljYURyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJm
YWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoQSAqIEIgKiBSLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5y
ZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSwg
cmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9
CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKEEgKiBCICogUiwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2Uo
KS0+cmVwbGljYURyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVE
X1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShBICogQiAq
IEEsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4
cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoQSAqIEIgKiBSLCByZW5kZXJTdXJmYWNlMS0+cmVu
ZGVyU3VyZmFjZSgpLT5yZXBsaWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQogICAg
IC8vIERyYXcgdHJhbnNmb3JtIG9mIHJlbmRlciBzdXJmYWNlIDIgaXMgZGVzY3JpYmVkIHdpdGgg
cmVzcGVjdCB0byByZW5kZXIgc3VyZmFjZSAyLgotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoQiAqIEEsIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShCICogUiwgcmVu
ZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+cmVwbGljYURyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEgKiBCICogQSwgcmVu
ZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShBICogQiAqIEEgKiBCICogUiwgcmVu
ZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2UoKS0+cmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3Jt
KCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShCICogQSwgcmVuZGVyU3VyZmFjZTItPnJlbmRlclN1cmZhY2Uo
KS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKEIgKiBSLCByZW5kZXJT
dXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5yZXBsaWNhRHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9
CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKEEgKiBCICogQSAqIEIgKiBBLCByZW5kZXJTdXJmYWNlMi0+cmVuZGVy
U3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAg
ICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KEEgKiBCICogQSAqIEIgKiBSLCByZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5yZXBs
aWNhU2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgLy8gU2FuaXR5IGNoZWNr
LiBJZiB0aGVzZSBmYWlsIHRoZXJlIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSB0ZXN0IGl0c2Vs
Zi4KICAgICAvLyBJdCBpcyBleHBlY3RlZCB0aGF0IHdlIGNvcnJlY3RseSBzZXQgdXAgdHJhbnNm
b3JtcyBzbyB0aGF0IHRoZSB5LWNvbXBvbmVudCBvZiB0aGUgc2NyZWVuLXNwYWNlIHRyYW5zZm9y
bQpAQCAtNjAxLDEyICs4MzEsMzAgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2
ZXJpZnlUcmFuc2Zvcm1zRm9yRmxhdHRlbmluZ0xheWVyKQogCiAgICAgLy8gVGhlIGNoaWxkJ3Mg
ZHJhd1RyYW5zZm9ybSBzaG91bGQgaGF2ZSBiZWVuIHRha2VuIGJ5IGl0cyBzdXJmYWNlLgogICAg
IEFTU0VSVF9UUlVFKGNoaWxkLT5yZW5kZXJTdXJmYWNlKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZERyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5k
ZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZENoaWxkU2NyZWVuU3BhY2VUcmFuc2Zvcm0sIGNoaWxkLT5yZW5k
ZXJTdXJmYWNlKCktPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoaWRlbnRpdHlNYXRyaXgsIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFNjcmVl
blNwYWNlVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQ
RUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGREcmF3VHJhbnNm
b3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkU2NyZWVuU3BhY2VUcmFuc2Zvcm0sIGdy
YW5kQ2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVE
X1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZENoaWxkRHJhd1RyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRTY3JlZW5TcGFjZVRyYW5z
Zm9ybSwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Cisg
ICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1hdHJpeCwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkU2NyZWVuU3BhY2VUcmFuc2Zv
cm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAg
ICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KGV4cGVjdGVkR3JhbmRDaGlsZERyYXdUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRTY3JlZW5TcGFj
ZVRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgfQog
fQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JE
ZWdlbmVyYXRlSW50ZXJtZWRpYXRlTGF5ZXIpCkBAIC02MzQsOSArODgyLDE4IEBAIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvckRlZ2VuZXJhdGVJbnRl
cm1lZGlhdGVMYXllcikKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNp
YmlsaXR5KHJvb3QuZ2V0KCkpOwogCiAgICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRlclN1cmZh
Y2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShpZGVudGl0eU1hdHJp
eCwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsgLy8gVGhpcyBpcyB0
aGUgcmVhbCB0ZXN0LCB0aGUgcmVzdCBhcmUgc2FuaXR5IGNoZWNrcy4KLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGlkZW50aXR5TWF0cml4
LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RS
QUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShpZGVudGl0eU1h
dHJpeCwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsgLy8gVGhpcyBp
cyB0aGUgcmVhbCB0ZXN0LCB0aGUgcmVzdCBhcmUgc2FuaXR5IGNoZWNrcy4KKyAgICB9CisgICAg
eworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9
CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGlkZW50aXR5TWF0cml4LCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3Jt
KCkpOworICAgIH0KIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlS
ZW5kZXJTdXJmYWNlTGlzdEZvclJlbmRlclN1cmZhY2VXaXRoQ2xpcHBlZExheWVyKQpAQCAtNzUy
LDggKzEwMDksMTQgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3Jv
bGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBleHBlY3RlZENoaWxkVHJhbnNmb3JtOwogICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSA9IGV4cGVjdGVkQ2hpbGRUcmFuc2Zv
cm07CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRU
cmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1B
VElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5k
cmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAg
ICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBj
aGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CiAK
ICAgICAvLyBDYXNlIDI6IHNjcm9sbERlbHRhIG9mIDEwLCAxMAogICAgIGNoaWxkLT5zZXRTY3Jv
bGxEZWx0YShJbnRTaXplKDEwLCAxMCkpOwpAQCAtNzYzLDggKzEwMjYsMTQgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBv
c2l0aW9uTGF5ZXJXaXQKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgp
OwogICAgIGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKC0xMCwgLTEwKTsKIAotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwg
Y2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7Cisg
ICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkVHJh
bnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KIH0KIAogVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhl
ZFBvc2l0aW9uTGF5ZXJXaXRoVHJhbnNmb3JtZWREaXJlY3RDb250YWluZXIpCkBAIC04MDAsOCAr
MTA2OSwxNCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENv
bXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAgICAgV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXggZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtID0gZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybTsKIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGls
ZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAg
ICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0s
IGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRH
cmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0K
IAogICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDIwCiAgICAgY2hpbGQtPnNldFNj
cm9sbERlbHRhKEludFNpemUoMTAsIDIwKSk7CkBAIC04MTIsOCArMTA4NywxNCBAQCBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVk
UG9zaXRpb25MYXllcldpdAogICAgIGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKC0x
MCwgLTIwKTsgLy8gc2Nyb2xsRGVsdGEKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3JtLm11bHRp
cGx5KG5vblVuaWZvcm1TY2FsZSk7CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNm
b3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVE
X1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgewor
ICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0aERpc3RhbnRDb250
YWluZXIpCkBAIC04NDEsOSArMTEyMiwxOCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zv
cm0gPSBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNm
b3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFu
ZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zv
cm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFND
T1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQorICAg
IHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAg
ICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyZWF0R3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KIAog
ICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDEwCiAgICAgY2hpbGQtPnNldFNjcm9s
bERlbHRhKEludFNpemUoMTAsIDEwKSk7CkBAIC04NTQsOSArMTE0NCwxOCBAQCBURVNUKENDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9z
aXRpb25MYXllcldpdAogICAgIGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0udHJhbnNsYXRlKC0xMCwg
LTEwKTsKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CiAg
ICAgZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgtMiwgLTQpOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRp
b25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURf
VFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVk
R3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7CisgICAgfQogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNj
cm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdGhEaXN0YW50Q29udGFpbmVy
QW5kVHJhbnNmb3JtcykKQEAgLTg5NCw5ICsxMTkzLDE4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVy
V2l0CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyZWF0R3JhbmRDaGls
ZFRyYW5zZm9ybSA9IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybTsKIAotICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRy
YXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBl
Y3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0g
ICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGls
ZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAg
ICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAg
ICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFu
c2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRH
cmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Cisg
ICAgfQogCiAgICAgLy8gQ2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAxMCwgMjAKICAgICBjaGlsZC0+
c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMjApKTsKQEAgLTkxMyw5ICsxMjIxLDE4IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9y
Rml4ZWRQb3NpdGlvbkxheWVyV2l0CiAgICAgZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLnRy
YW5zbGF0ZSg4LCA2KTsgLy8gdHJhbnNsYXRpb24gYmVjYXVzZSBvZiBwb3NpdGlvbiBvY2N1cnMg
YmVmb3JlIGxheWVyJ3MgbG9jYWwgdHJhbnNmb3JtLgogICAgIGV4cGVjdGVkR3JhbmRDaGlsZFRy
YW5zZm9ybS5tdWx0aXBseShyb3RhdGlvbkFib3V0Wik7IC8vIGdyYW5kQ2hpbGQncyBsb2NhbCB0
cmFuc2Zvcm0KIAotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRD
aGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3
VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAg
RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRD
aGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAg
eworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldp
dGhNdWx0aXBsZVNjcm9sbERlbHRhcykKQEAgLTk1Niw5ICsxMjczLDE4IEBAIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3Np
dGlvbkxheWVyV2l0CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZEdyZWF0
R3JhbmRDaGlsZFRyYW5zZm9ybSA9IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybTsKIAotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwg
Y2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0
R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwg
Z3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09Q
RURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVj
dGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7CisgICAgfQogCiAgICAgLy8gQ2FzZSAyOiBzY3JvbGxEZWx0YSBvZiAxMCwgMjAKICAg
ICBjaGlsZC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwgMCkpOwpAQCAtOTc3LDkgKzEzMDMs
MTggQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5z
YXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRUcmFu
c2Zvcm0udHJhbnNsYXRlKDgsIDYpOyAvLyB0cmFuc2xhdGlvbiBiZWNhdXNlIG9mIHBvc2l0aW9u
IG9jY3VycyBiZWZvcmUgbGF5ZXIncyBsb2NhbCB0cmFuc2Zvcm0uCiAgICAgZXhwZWN0ZWRHcmFu
ZENoaWxkVHJhbnNmb3JtLm11bHRpcGx5KHJvdGF0aW9uQWJvdXRaKTsgLy8gZ3JhbmRDaGlsZCdz
IGxvY2FsIHRyYW5zZm9ybQogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShl
eHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwg
Z3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05f
TUFUUklYX0VRKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOwor
ICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zv
cm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BF
RF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0
ZWRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0
R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlv
bkxheWVyV2l0aEludGVybWVkaWF0ZVN1cmZhY2VBbmRUcmFuc2Zvcm1zKQpAQCAtMTAxNiwxMCAr
MTM1MSwyMiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENv
bXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4IGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybTsKICAgICBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybTsKICAgICBBU1NFUlRfVFJV
RShncmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElP
Tl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFN1cmZhY2VE
cmF3VHJhbnNmb3JtLCBncmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0o
KSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hp
bGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybSwg
Z3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVE
X1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgewor
ICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURf
VFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVk
R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9
CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdy
YW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgLy8gQ2FzZSAyOiBzY3Jv
bGxEZWx0YSBvZiAxMCwgMzAKICAgICBjaGlsZC0+c2V0U2Nyb2xsRGVsdGEoSW50U2l6ZSgxMCwg
MzApKTsKQEAgLTEwNDksMTAgKzEzOTYsMjIgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJXaXQKICAg
ICBleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFRyYW5zZm9ybS5tdWx0aXBseShyb3RhdGlvbkFib3V0
Wik7CiAKICAgICBBU1NFUlRfVFJVRShncmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwg
Y2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmFuZENoaWxkLT5yZW5kZXJTdXJm
YWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zv
cm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0
R3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JlYXRHcmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwor
ICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3Jt
YXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0s
IGdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9Cisg
ICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOwor
ICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENo
aWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQog
fQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNh
dGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdGhNdWx0aXBsZUludGVybWVkaWF0ZVN1cmZhY2Vz
KQpAQCAtMTExOSwxMiArMTQ3OCwzMCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25MYXllcldpdAogCiAgICAg
QVNTRVJUX1RSVUUoZ3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICBBU1NFUlRfVFJV
RShncmVhdEdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3Jh
bmRDaGlsZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCkt
PmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShl
eHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyZWF0R3JhbmRD
aGlsZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2Uo
KS0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VR
KGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3Rl
ZEZpeGVkUG9zaXRpb25DaGlsZFRyYW5zZm9ybSwgZml4ZWRQb3NpdGlvbkNoaWxkLT5kcmF3VHJh
bnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+
ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIp
OworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGls
ZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmFuZENoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAg
ICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFu
c2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAg
ICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhF
cShleHBlY3RlZEdyZWF0R3JhbmRDaGlsZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBncmVhdEdyYW5k
Q2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgewor
ICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkVHJhbnNmb3JtLCBncmVhdEdyYW5kQ2hpbGQt
PmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIi
KTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEZpeGVkUG9z
aXRpb25DaGlsZFRyYW5zZm9ybSwgZml4ZWRQb3NpdGlvbkNoaWxkLT5kcmF3VHJhbnNmb3JtKCkp
OworICAgIH0KIAogICAgIC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDMwCiAgICAgY2hp
bGQtPnNldFNjcm9sbERlbHRhKEludFNpemUoMTAsIDMwKSk7CkBAIC0xMTU4LDEyICsxNTM1LDMw
IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0
aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAKICAgICBBU1NFUlRfVFJVRShncmFuZENoaWxk
LT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIEFTU0VSVF9UUlVFKGdyZWF0R3JhbmRDaGlsZC0+cmVu
ZGVyU3VyZmFjZSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9U
UkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmFuZENoaWxkU3VyZmFjZURyYXdUcmFu
c2Zvcm0sIGdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAg
ICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5z
Zm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JN
QVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JlYXRHcmFuZENoaWxkU3VyZmFjZURyYXdUcmFuc2Zv
cm0sIGdyZWF0R3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwot
ICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRHcmVhdEdyYW5kQ2hp
bGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkRml4ZWRQb3NpdGlvbkNoaWxkVHJh
bnNmb3JtLCBmaXhlZFBvc2l0aW9uQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAg
ICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAg
IH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENoaWxkU3VyZmFjZURyYXdUcmFuc2Zvcm0s
IGdyYW5kQ2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9Cisg
ICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOwor
ICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JlYXRHcmFuZENo
aWxkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+cmVuZGVyU3VyZmFjZSgp
LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgi
Iik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmVhdEdy
YW5kQ2hpbGRUcmFuc2Zvcm0sIGdyZWF0R3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAg
ICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFu
c2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkRml4ZWRQb3NpdGlvbkNoaWxkVHJhbnNmb3JtLCBm
aXhlZFBvc2l0aW9uQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQogfQogCiBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVk
UG9zaXRpb25MYXllcldpdGhDb250YWluZXJMYXllclRoYXRIYXNTdXJmYWNlKQpAQCAtMTE5Miw5
ICsxNTg3LDE4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xs
Q29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyV2l0CiAgICAgV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXggZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm07CiAgICAgQVNTRVJUX1RSVUUoY2hpbGQt
PnJlbmRlclN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShl
eHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3
VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0
ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5k
Q2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIp
OworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkU3VyZmFjZURy
YXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7Cisg
ICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1Ry
YW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAg
ICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5z
Zm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CiAKICAgICAvLyBDYXNl
IDI6IHNjcm9sbERlbHRhIG9mIDEwLCAxMAogICAgIGNoaWxkLT5zZXRTY3JvbGxEZWx0YShJbnRT
aXplKDEwLCAxMCkpOwpAQCAtMTIwOSw5ICsxNjEzLDE4IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5U2Nyb2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVy
V2l0CiAgICAgZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgxMCwgMTApOwog
CiAgICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRlclN1cmZhY2UoKSk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGls
ZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZEdy
YW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgewor
ICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNl
KCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNF
KCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENoaWxk
VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAg
ICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgp
KTsKKyAgICB9CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5U2Ny
b2xsQ29tcGVuc2F0aW9uRm9yRml4ZWRQb3NpdGlvbkxheWVyVGhhdElzQWxzb0ZpeGVkUG9zaXRp
b25Db250YWluZXIpCkBAIC0xMjM3LDggKzE2NTAsMTQgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJU
aGEKIAogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm07
CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRHcmFuZENoaWxkVHJhbnNmb3Jt
OwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5z
Zm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdU
cmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxk
LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgi
Iik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRHcmFuZENo
aWxkVHJhbnNmb3JtLCBncmFuZENoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KIAogICAg
IC8vIENhc2UgMjogc2Nyb2xsRGVsdGEgb2YgMTAsIDEwCiAgICAgY2hpbGQtPnNldFNjcm9sbERl
bHRhKEludFNpemUoMTAsIDEwKSk7CkBAIC0xMjQ3LDggKzE2NjYsMTQgQEAgVEVTVChDQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5zYXRpb25Gb3JGaXhlZFBvc2l0
aW9uTGF5ZXJUaGEKICAgICAvLyBIZXJlIHRoZSBjaGlsZCBpcyBhZmZlY3RlZCBieSBzY3JvbGxE
ZWx0YSwgYnV0IHRoZSBmaXhlZCBwb3NpdGlvbiBncmFuZENoaWxkIHNob3VsZCBub3QgYmUgYWZm
ZWN0ZWQuCiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsKICAgICBl
eHBlY3RlZENoaWxkVHJhbnNmb3JtLnRyYW5zbGF0ZSgtMTAsIC0xMCk7Ci0gICAgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJh
d1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAg
ICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0
aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0o
KSk7CisgICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhw
ZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdy
YW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQogfQogCiBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9zaXRpb25M
YXllclRoYXRIYXNOb0NvbnRhaW5lcikKQEAgLTEyNzgsOCArMTcwMywxNCBAQCBURVNUKENDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVNjcm9sbENvbXBlbnNhdGlvbkZvckZpeGVkUG9z
aXRpb25MYXllclRoYQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkR3JhbmRD
aGlsZFRyYW5zZm9ybTsKICAgICBleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0ubXVsdGlwbHko
cm90YXRpb25CeVopOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBl
Y3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKLSAgICBFWFBFQ1Rf
VFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3JhbmRDaGlsZFRyYW5zZm9ybSwgZ3Jh
bmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgi
Iik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZFRy
YW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQorICAgIHsKKyAgICAgICAg
U0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7
CisgICAgfQogCiAgICAgLy8gQ2FzZSAyOiByb290IHNjcm9sbERlbHRhIG9mIDEwLCAxMAogICAg
IHJvb3QtPnNldFNjcm9sbERlbHRhKEludFNpemUoMTAsIDEwKSk7CkBAIC0xMjkwLDggKzE3MjEs
MTQgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTY3JvbGxDb21wZW5z
YXRpb25Gb3JGaXhlZFBvc2l0aW9uTGF5ZXJUaGEKICAgICBleHBlY3RlZENoaWxkVHJhbnNmb3Jt
LnRyYW5zbGF0ZSgtMTAsIC0xMCk7IC8vIHRoZSBzY3JvbGxEZWx0YQogICAgIGV4cGVjdGVkQ2hp
bGRUcmFuc2Zvcm0ubXVsdGlwbHkocm90YXRpb25CeVopOwogCi0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5z
Zm9ybSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkR3Jh
bmRDaGlsZFRyYW5zZm9ybSwgZ3JhbmRDaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB7Cisg
ICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwgY2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSk7Cisg
ICAgfQorICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZEdyYW5kQ2hpbGRUcmFuc2Zvcm0sIGdyYW5kQ2hp
bGQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeUNsaXBSZWN0Q3VsbHNSZW5kZXJTdXJmYWNlcykKQEAgLTMwOTgsOCAr
MzUzNSwxNCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUxheWVyVHJh
bnNmb3Jtc0luSGlnaERQSSkKIAogICAgIC8vIFZlcmlmeSBwYXJlbnQgdHJhbnNmb3JtcwogICAg
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkUGFyZW50VHJhbnNmb3JtOwotICAgIEVY
UEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRQYXJlbnRUcmFuc2Zvcm0sIHBh
cmVudC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZFBhcmVudFRyYW5zZm9ybSwgcGFyZW50LT5kcmF3VHJhbnNmb3Jt
KCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJh
bnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZFBhcmVudFRyYW5zZm9ybSwgcGFyZW50LT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUGFyZW50
VHJhbnNmb3JtLCBwYXJlbnQtPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgLy8gVmVy
aWZ5IHJlc3VsdHMgb2YgdHJhbnNmb3JtZWQgcGFyZW50IHJlY3RzCiAgICAgRmxvYXRSZWN0IHBh
cmVudENvbnRlbnRCb3VuZHMoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUocGFyZW50LT5jb250ZW50
Qm91bmRzKCkpKTsKQEAgLTMxMTUsOCArMzU1OCwxNCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeUxheWVyVHJhbnNmb3Jtc0luSGlnaERQSSkKICAgICAvLyBWZXJpZnkg
Y2hpbGQgdHJhbnNmb3JtcwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkQ2hp
bGRUcmFuc2Zvcm07CiAgICAgZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybS50cmFuc2xhdGUoZGV2aWNl
U2NhbGVGYWN0b3IgKiBjaGlsZC0+cG9zaXRpb24oKS54KCksIGRldmljZVNjYWxlRmFjdG9yICog
Y2hpbGQtPnBvc2l0aW9uKCkueSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklY
X0VRKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5kcmF3VHJhbnNmb3JtKCkpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWRDaGlsZFRyYW5zZm9ybSwg
Y2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RS
QUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZENo
aWxkVHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGV4cGVjdGVkQ2hpbGRUcmFuc2Zvcm0sIGNoaWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgp
KTsKKyAgICB9CiAKICAgICAvLyBWZXJpZnkgcmVzdWx0cyBvZiB0cmFuc2Zvcm1lZCBjaGlsZCBy
ZWN0cwogICAgIEZsb2F0UmVjdCBjaGlsZENvbnRlbnRCb3VuZHMoRmxvYXRQb2ludCgpLCBGbG9h
dFNpemUoY2hpbGQtPmNvbnRlbnRCb3VuZHMoKSkpOwpAQCAtMzEzNSw4ICszNTg0LDE0IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5TGF5ZXJUcmFuc2Zvcm1zSW5IaWdo
RFBJKQogICAgIC8vIEFsbCB0cmFuc2Zvcm1zIG9wZXJhdGUgb24gY29udGVudCByZWN0cy4gVGhl
IGNoaWxkJ3MgY29udGVudCByZWN0CiAgICAgLy8gaW5jb3Jwb3JhdGVzIGRldmljZSBzY2FsZSwg
YnV0IHRoZSBjaGlsZE5vU2NhbGUgZG9lcyBub3Q7IGFkZCBpdCBoZXJlLgogICAgIGV4cGVjdGVk
Q2hpbGROb1NjYWxlVHJhbnNmb3JtLnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKTsKLSAgICBFWFBF
Q1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkQ2hpbGROb1NjYWxlVHJhbnNmb3Jt
LCBjaGlsZE5vU2NhbGUtPmRyYXdUcmFuc2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZENoaWxkTm9TY2FsZVRyYW5zZm9ybSwgY2hpbGROb1NjYWxl
LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgi
Iik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRDaGlsZE5v
U2NhbGVUcmFuc2Zvcm0sIGNoaWxkTm9TY2FsZS0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9Cisg
ICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RUcmFuc2Zvcm1h
dGlvbk1hdHJpeEVxKGV4cGVjdGVkQ2hpbGROb1NjYWxlVHJhbnNmb3JtLCBjaGlsZE5vU2NhbGUt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KIH0KIAogVEVTVChDQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlVHJhbnNmb3Jtc0luSGlnaERQSSkKQEAg
LTMxODAsNDUgKzM2MzUsNzggQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJp
ZnlSZW5kZXJTdXJmYWNlVHJhbnNmb3Jtc0luSGlnaERQSSkKICAgICBFWFBFQ1RfRVEoMnUsIHJl
bmRlclN1cmZhY2VMYXllckxpc3Quc2l6ZSgpKTsKIAogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4IGV4cGVjdGVkUGFyZW50VHJhbnNmb3JtOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9N
QVRSSVhfRVEoZXhwZWN0ZWRQYXJlbnRUcmFuc2Zvcm0sIHBhcmVudC0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFBh
cmVudFRyYW5zZm9ybSwgcGFyZW50LT5kcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAg
U0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZFBhcmVudFRyYW5zZm9ybSwgcGFyZW50LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsK
KyAgICB9CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBlY3RU
cmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUGFyZW50VHJhbnNmb3JtLCBwYXJlbnQtPmRy
YXdUcmFuc2Zvcm0oKSk7CisgICAgfQogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhw
ZWN0ZWREcmF3VHJhbnNmb3JtOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEo
ZXhwZWN0ZWREcmF3VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAgICB7Cisg
ICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoZXhwZWN0ZWREcmF3VHJhbnNmb3JtLCBjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpKTsKKyAg
ICB9CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFNjcmVlblNwYWNlVHJh
bnNmb3JtOwogICAgIGV4cGVjdGVkU2NyZWVuU3BhY2VUcmFuc2Zvcm0udHJhbnNsYXRlKGRldmlj
ZVNjYWxlRmFjdG9yICogY2hpbGQtPnBvc2l0aW9uKCkueCgpLCBkZXZpY2VTY2FsZUZhY3RvciAq
IGNoaWxkLT5wb3NpdGlvbigpLnkoKSk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZFNjcmVlblNwYWNlVHJhbnNmb3JtLCBjaGlsZC0+c2NyZWVuU3BhY2VUcmFu
c2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkU2NyZWVuU3BhY2VUcmFuc2Zvcm0sIGNo
aWxkLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpKTsKKyAgICB9CiAKICAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBleHBlY3RlZER1cGxpY2F0ZUNoaWxkRHJhd1RyYW5zZm9ybSA9IGNoaWxkLT5k
cmF3VHJhbnNmb3JtKCk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShjaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5kcmF3VHJhbnNmb3Jt
KCkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoY2hpbGQtPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPnNjcmVlblNwYWNlVHJhbnNm
b3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpLCBkdXBsaWNhdGVD
aGlsZE5vbk93bmVyLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIFND
T1BFRF9UUkFDRSgiIik7CisgICAgICAgIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoY2hp
bGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPnNjcmVl
blNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2hpbGQt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSwgZHVwbGljYXRlQ2hpbGROb25Pd25lci0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKICAgICBFWFBFQ1RfRVEoY2hpbGQtPmNvbnRlbnRCb3VuZHMoKSwgZHVw
bGljYXRlQ2hpbGROb25Pd25lci0+Y29udGVudEJvdW5kcygpKTsKIAogICAgIFdlYlRyYW5zZm9y
bWF0aW9uTWF0cml4IGV4cGVjdGVkUmVuZGVyU3VyZmFjZURyYXdUcmFuc2Zvcm07CiAgICAgZXhw
ZWN0ZWRSZW5kZXJTdXJmYWNlRHJhd1RyYW5zZm9ybS50cmFuc2xhdGUoZGV2aWNlU2NhbGVGYWN0
b3IgKiBjaGlsZC0+cG9zaXRpb24oKS54KCksIGRldmljZVNjYWxlRmFjdG9yICogY2hpbGQtPnBv
c2l0aW9uKCkueSgpKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVj
dGVkUmVuZGVyU3VyZmFjZURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRy
YXdUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAg
ICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkUmVuZGVyU3VyZmFjZURyYXdU
cmFuc2Zvcm0sIGNoaWxkLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdUcmFuc2Zvcm0oKSk7CisgICAg
fQogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRTdXJmYWNlRHJhd1RyYW5z
Zm9ybTsKICAgICBleHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLnRyYW5zbGF0ZShkZXZpY2VT
Y2FsZUZhY3RvciAqIDIsIGRldmljZVNjYWxlRmFjdG9yICogMik7Ci0gICAgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+
cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAgU0NPUEVE
X1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3Rl
ZFN1cmZhY2VEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3VHJhbnNm
b3JtKCkpOworICAgIH0KIAogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkU3Vy
ZmFjZVNjcmVlblNwYWNlVHJhbnNmb3JtOwogICAgIGV4cGVjdGVkU3VyZmFjZVNjcmVlblNwYWNl
VHJhbnNmb3JtLnRyYW5zbGF0ZShkZXZpY2VTY2FsZUZhY3RvciAqIDIsIGRldmljZVNjYWxlRmFj
dG9yICogMik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZFN1
cmZhY2VTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAg
ICAgICBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkU3VyZmFjZVNjcmVlblNw
YWNlVHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9y
bSgpKTsKKyAgICB9CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFJlcGxp
Y2FEcmF3VHJhbnNmb3JtOwogICAgIGV4cGVjdGVkUmVwbGljYURyYXdUcmFuc2Zvcm0uc2V0TTIy
KC0xKTsKICAgICBleHBlY3RlZFJlcGxpY2FEcmF3VHJhbnNmb3JtLnNldE00MSg2KTsKICAgICBl
eHBlY3RlZFJlcGxpY2FEcmF3VHJhbnNmb3JtLnNldE00Mig2KTsKLSAgICBFWFBFQ1RfVFJBTlNG
T1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkUmVwbGljYURyYXdUcmFuc2Zvcm0sIGNoaWxkLT5y
ZW5kZXJTdXJmYWNlKCktPnJlcGxpY2FEcmF3VHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAg
U0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZFJlcGxpY2FEcmF3VHJhbnNmb3JtLCBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5yZXBs
aWNhRHJhd1RyYW5zZm9ybSgpKTsKKyAgICB9CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBleHBlY3RlZFJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybTsKICAgICBleHBlY3RlZFJlcGxp
Y2FTY3JlZW5TcGFjZVRyYW5zZm9ybS5zZXRNMjIoLTEpOwogICAgIGV4cGVjdGVkUmVwbGljYVNj
cmVlblNwYWNlVHJhbnNmb3JtLnNldE00MSg2KTsKICAgICBleHBlY3RlZFJlcGxpY2FTY3JlZW5T
cGFjZVRyYW5zZm9ybS5zZXRNNDIoNik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZFJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1
cmZhY2UoKS0+cmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIHsKKyAgICAgICAg
U0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShl
eHBlY3RlZFJlcGxpY2FTY3JlZW5TcGFjZVRyYW5zZm9ybSwgY2hpbGQtPnJlbmRlclN1cmZhY2Uo
KS0+cmVwbGljYVNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOworICAgIH0KIH0KIAogVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlTdWJ0cmVlU2VhcmNoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgKaW5kZXgg
NWMwMWM4MDQ5M2NhMmY3MWRjYzBlNTE3Y2E2NWE3Y2Q4YjhjM2QzNy4uMDFkODAzYWJmZTZlYWZj
OWY0ZDQ0NzIyMTg5NzU1YTgxNGY2MTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlVGVzdENvbW1vbi5oCkBAIC0yNSw2ICsyNSw5IEBACiAj
aWZuZGVmIENDTGF5ZXJUcmVlVGVzdENvbW1vbl9oCiAjZGVmaW5lIENDTGF5ZXJUcmVlVGVzdENv
bW1vbl9oCiAKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgorCiBuYW1lc3BhY2UgV2ViS2l0VGVzdHMgewogCiAvLyBU
aGVzZSBhcmUgbWFjcm9zIGluc3RlYWQgb2YgZnVuY3Rpb25zIHNvIHRoYXQgd2UgZ2V0IHVzZWZ1
bCBsaW5lIG51bWJlcnMgd2hlcmUgYSB0ZXN0IGZhaWxlZC4KQEAgLTQwLDI3ICs0MywxMiBAQCBu
YW1lc3BhY2UgV2ViS2l0VGVzdHMgewogICAgIEVYUEVDVF9FUSgoZXhwZWN0ZWQpLnNpemUoKS53
aWR0aCgpLCAoYWN0dWFsKS5zaXplKCkud2lkdGgoKSk7ICAgICAgXAogICAgIEVYUEVDVF9FUSgo
ZXhwZWN0ZWQpLnNpemUoKS5oZWlnaHQoKSwgKGFjdHVhbCkuc2l6ZSgpLmhlaWdodCgpKQogCi0v
LyBUaGlzIGlzIGEgbWFjcm8gaW5zdGVhZCBvZiBhIGZ1bmN0aW9uIHNvIHRoYXQgd2UgZ2V0IHVz
ZWZ1bCBsaW5lIG51bWJlcnMgd2hlcmUgYSB0ZXN0IGZhaWxlZC4KLS8vIEV2ZW4gdGhvdWdoIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IHZhbHVlcyBhcmUgZG91YmxlIHByZWNpc2lvbiwgdGhlcmUg
YXJlIG1hbnkgb3RoZXIgZmxvYXRpbmctcG9pbnQgdmFsdWVzIHVzZWQgdGhhdCBhZmZlY3QKLS8v
IHRoZSB0cmFuc2Zvcm1zLCBhbmQgc28gd2Ugb25seSBleHBlY3QgdGhlbSB0byBiZSBhY2N1cmF0
ZSB1cCB0byBmbG9hdGluZy1wb2ludCBwcmVjaXNpb24uCi0jZGVmaW5lIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgXAotICAgIEVYUEVDVF9G
TE9BVF9FUSgoZXhwZWN0ZWQpLm0xMSgpLCAoYWN0dWFsKS5tMTEoKSk7ICAgICAgICAgIFwKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTIoKSwgKGFjdHVhbCkubTEyKCkpOyAgICAg
ICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTEzKCksIChhY3R1YWwpLm0x
MygpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xNCgpLCAo
YWN0dWFsKS5tMTQoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVk
KS5tMjEoKSwgKGFjdHVhbCkubTIxKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VR
KChleHBlY3RlZCkubTIyKCksIChhY3R1YWwpLm0yMigpKTsgICAgICAgICAgXAotICAgIEVYUEVD
VF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMygpLCAoYWN0dWFsKS5tMjMoKSk7ICAgICAgICAgIFwK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjQoKSwgKGFjdHVhbCkubTI0KCkpOyAg
ICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMxKCksIChhY3R1YWwp
Lm0zMSgpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMigp
LCAoYWN0dWFsKS5tMzIoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVj
dGVkKS5tMzMoKSwgKGFjdHVhbCkubTMzKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FU
X0VRKChleHBlY3RlZCkubTM0KCksIChhY3R1YWwpLm0zNCgpKTsgICAgICAgICAgXAotICAgIEVY
UEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MSgpLCAoYWN0dWFsKS5tNDEoKSk7ICAgICAgICAg
IFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDIoKSwgKGFjdHVhbCkubTQyKCkp
OyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQzKCksIChhY3R1
YWwpLm00MygpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00
NCgpLCAoYWN0dWFsKS5tNDQoKSkKLQorLy8gVGhpcyBpcyBhIGZ1bmN0aW9uIHJhdGhlciB0aGFu
IGEgbWFjcm8gYmVjYXVzZSB3aGVuIHRoaXMgaXMgaW5jbHVkZWQgYXMgYSBtYWNybworLy8gaW4g
YnVsaywgaXQgY2F1c2VzIGEgc2lnbmlmaWNhbnQgc2xvdy1kb3duIGluIGNvbXBpbGF0aW9uIHRp
bWUuIFRoaXMgcHJvYmxlbQorLy8gZXhpc3RzIHdpdGggYm90aCBnY2MgYW5kIGNsYW5nLCBhbmQg
YnVncyBoYXZlIGJlZW4gZmlsZWQgYXQKKy8vIGh0dHA6Ly9sbHZtLm9yZy9idWdzL3Nob3dfYnVn
LmNnaT9pZD0xMzY1MSBhbmQgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNn
aT9pZD01NDMzNwordm9pZCBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKFdlYktpdDo6V2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhY3R1YWwpOwogfSAvLyBu
YW1lc3BhY2UKIAogI2VuZGlmIC8vIENDTGF5ZXJUcmVlVGVzdENvbW1vbl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtT3BlcmF0aW9u
c1Rlc3QuY3BwCmluZGV4IGRlYWY3YWQ3NGY1MzI5MWVmNWI0MWFhZTEwOWVkMjcxODBlZjBkOWUu
LjMxYmJmNmQxN2UyMmNkZDdhZjU0NDhlZDViNjA3M2Q3NzAyY2JhZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtT3BlcmF0aW9uc1Rlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtT3BlcmF0aW9u
c1Rlc3QuY3BwCkBAIC0xMjEsNyArMTIxLDEwIEBAIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9u
VGVzdCwgYXBwbHlUcmFuc2xhdGUpCiAgICAgb3BlcmF0aW9ucy5hcHBlbmRUcmFuc2xhdGUoeCwg
eSwgeik7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWQ7CiAgICAgZXhwZWN0
ZWQudHJhbnNsYXRlM2QoeCwgeSwgeik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShleHBlY3RlZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BF
RF9UUkFDRSgiIik7CisgICAgICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGV4cGVjdGVkLCBvcGVyYXRpb25zLmFwcGx5KCkpOworICAgIH0KIH0KIAogVEVTVChX
ZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseVJvdGF0ZSkKQEAgLTEzNCw3ICsxMzcsMTAg
QEAgVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseVJvdGF0ZSkKICAgICBvcGVy
YXRpb25zLmFwcGVuZFJvdGF0ZSh4LCB5LCB6LCBkZWdyZWVzKTsKICAgICBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBleHBlY3RlZDsKICAgICBleHBlY3RlZC5yb3RhdGUzZCh4LCB5LCB6LCBkZWdy
ZWVzKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkLCBvcGVy
YXRpb25zLmFwcGx5KCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAg
ICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIG9w
ZXJhdGlvbnMuYXBwbHkoKSk7CisgICAgfQogfQogCiBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlv
blRlc3QsIGFwcGx5U2NhbGUpCkBAIC0xNDYsNyArMTUyLDEwIEBAIFRFU1QoV2ViVHJhbnNmb3Jt
T3BlcmF0aW9uVGVzdCwgYXBwbHlTY2FsZSkKICAgICBvcGVyYXRpb25zLmFwcGVuZFNjYWxlKHgs
IHksIHopOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkOwogICAgIGV4cGVj
dGVkLnNjYWxlM2QoeCwgeSwgeik7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGV4cGVjdGVkLCBvcGVyYXRpb25zLmFwcGx5KCkpOworICAgIH0KIH0KIAogVEVTVChXZWJU
cmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseVNrZXcpCkBAIC0xNTgsNyArMTY3LDEwIEBAIFRF
U1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwgYXBwbHlTa2V3KQogICAgIFdlYlRyYW5zZm9y
bWF0aW9uTWF0cml4IGV4cGVjdGVkOwogICAgIGV4cGVjdGVkLnNrZXdYKHgpOwogICAgIGV4cGVj
dGVkLnNrZXdZKHkpOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0
ZWQsIG9wZXJhdGlvbnMuYXBwbHkoKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIp
OworICAgICAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBl
Y3RlZCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3Jt
T3BlcmF0aW9uVGVzdCwgYXBwbHlQZXJzcGVjdGl2ZSkKQEAgLTE2OCw3ICsxODAsMTAgQEAgVEVT
VChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseVBlcnNwZWN0aXZlKQogICAgIG9wZXJh
dGlvbnMuYXBwZW5kUGVyc3BlY3RpdmUoZGVwdGgpOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4IGV4cGVjdGVkOwogICAgIGV4cGVjdGVkLmFwcGx5UGVyc3BlY3RpdmUoZGVwdGgpOwotICAg
IEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIG9wZXJhdGlvbnMuYXBw
bHkoKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIpOworICAgICAgICBXZWJLaXRU
ZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShleHBlY3RlZCwgb3BlcmF0aW9ucy5h
cHBseSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwgYXBw
bHlNYXRyaXgpCkBAIC0xODAsNyArMTk1LDEwIEBAIFRFU1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9u
VGVzdCwgYXBwbHlNYXRyaXgpCiAgICAgZXhwZWN0ZWRNYXRyaXgudHJhbnNsYXRlM2QoZHgsIGR5
LCBkeik7CiAgICAgV2ViVHJhbnNmb3JtT3BlcmF0aW9ucyBtYXRyaXhUcmFuc2Zvcm07CiAgICAg
bWF0cml4VHJhbnNmb3JtLmFwcGVuZE1hdHJpeChleHBlY3RlZE1hdHJpeCk7Ci0gICAgRVhQRUNU
X1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZE1hdHJpeCwgbWF0cml4VHJhbnNmb3Jt
LmFwcGx5KCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgV2Vi
S2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWRNYXRyaXgsIG1h
dHJpeFRyYW5zZm9ybS5hcHBseSgpKTsKKyAgICB9CiB9CiAKIFRFU1QoV2ViVHJhbnNmb3JtT3Bl
cmF0aW9uVGVzdCwgYXBwbHlPcmRlcikKQEAgLTIwNiw3ICsyMjQsMTAgQEAgVEVTVChXZWJUcmFu
c2Zvcm1PcGVyYXRpb25UZXN0LCBhcHBseU9yZGVyKQogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4IGV4cGVjdGVkQ29tYmluZWRNYXRyaXggPSBleHBlY3RlZFNjYWxlTWF0cml4OwogICAgIGV4
cGVjdGVkQ29tYmluZWRNYXRyaXgubXVsdGlwbHkoZXhwZWN0ZWRUcmFuc2xhdGVNYXRyaXgpOwog
Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZENvbWJpbmVkTWF0
cml4LCBvcGVyYXRpb25zLmFwcGx5KCkpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIi
KTsKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWRDb21iaW5lZE1hdHJpeCwgb3BlcmF0aW9ucy5hcHBseSgpKTsKKyAgICB9CiB9CiAKIFRF
U1QoV2ViVHJhbnNmb3JtT3BlcmF0aW9uVGVzdCwgYmxlbmRPcmRlcikKQEAgLTI1Niw3ICsyNzcs
MTAgQEAgVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBibGVuZE9yZGVyKQogICAgIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkID0gYmxlbmRlZFNjYWxlOwogICAgIGV4cGVj
dGVkLm11bHRpcGx5KGJsZW5kZWRUcmFuc2xhdGUpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShleHBlY3RlZCwgb3BlcmF0aW9uc1RvLmJsZW5kKG9wZXJhdGlvbnNGcm9t
LCBwcm9ncmVzcykpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAg
V2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIG9wZXJh
dGlvbnNUby5ibGVuZChvcGVyYXRpb25zRnJvbSwgcHJvZ3Jlc3MpKTsKKyAgICB9CiB9CiAKIHN0
YXRpYyB2b2lkIGNoZWNrUHJvZ3Jlc3MoZG91YmxlIHByb2dyZXNzLApAQCAtMjY3LDcgKzI5MSwx
MCBAQCBzdGF0aWMgdm9pZCBjaGVja1Byb2dyZXNzKGRvdWJsZSBwcm9ncmVzcywKIHsKICAgICBX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZE1hdHJpeCA9IHRvTWF0cml4OwogICAgIGV4
cGVjdGVkTWF0cml4LmJsZW5kKGZyb21NYXRyaXgsIHByb2dyZXNzKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkTWF0cml4LCB0b1RyYW5zZm9ybS5ibGVuZChm
cm9tVHJhbnNmb3JtLCBwcm9ncmVzcykpOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIi
KTsKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZXhw
ZWN0ZWRNYXRyaXgsIHRvVHJhbnNmb3JtLmJsZW5kKGZyb21UcmFuc2Zvcm0sIHByb2dyZXNzKSk7
CisgICAgfQogfQogCiBURVNUKFdlYlRyYW5zZm9ybU9wZXJhdGlvblRlc3QsIGJsZW5kUHJvZ3Jl
c3MpCkBAIC0zMzcsNSArMzY0LDggQEAgVEVTVChXZWJUcmFuc2Zvcm1PcGVyYXRpb25UZXN0LCBi
bGVuZFdoZW5UeXBlc0RvTm90TWF0Y2gpCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhw
ZWN0ZWQgPSB0bzsKICAgICBleHBlY3RlZC5ibGVuZChmcm9tLCBwcm9ncmVzcyk7CiAKLSAgICBF
WFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGV4cGVjdGVkLCBvcGVyYXRpb25zVG8uYmxl
bmQob3BlcmF0aW9uc0Zyb20sIHByb2dyZXNzKSk7CisgICAgeworICAgICAgICBTQ09QRURfVFJB
Q0UoIiIpOworICAgICAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhF
cShleHBlY3RlZCwgb3BlcmF0aW9uc1RvLmJsZW5kKG9wZXJhdGlvbnNGcm9tLCBwcm9ncmVzcykp
OworICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcAppbmRleCBlYjQ0MmY0ZTNkZWVmMmVj
OTliNjdhMzllZjU0OWFjNTY1Y2Q1NDIzLi42MGY1OWIyYWMxMjg4OTFhNDQ4YzE0Yzk0MGUwNzQ5
MmI2NjA0MTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRy
YW5zZm9ybWF0aW9uTWF0cml4VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwCkBAIC0xMDA3LDcgKzEwMDcsMTAg
QEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yVHJhbnNs
YXRpb24pCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8udHJhbnNsYXRlM2QoMjAwLCAx
MDAsIDMwMCk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNUX1RSQU5TRk9STUFU
SU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0UoIiIp
OworICAgICAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShmcm9t
LCB0byk7CisgICAgfQogCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8udHJhbnNsYXRl
M2QoMjAwLCAxMDAsIDMwMCk7CkBAIC0xMDQ0LDcgKzEwNDcsMTAgQEAgVEVTVChXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9yU2NhbGUpCiAgICAgdG8ubWFrZUlkZW50
aXR5KCk7CiAgICAgdG8uc2NhbGUzZCgyMDAsIDEwMCwgMzAwKTsKICAgICB0by5ibGVuZChmcm9t
LCAwKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGZyb20sIHRvKTsKKyAg
ICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIFdlYktpdFRlc3RzOjpFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZyb20sIHRvKTsKKyAgICB9CiAKICAgICB0by5tYWtl
SWRlbnRpdHkoKTsKICAgICB0by5zY2FsZTNkKDIwMCwgMTAwLCAzMDApOwpAQCAtMTA4MSw3ICsx
MDg3LDEwIEBAIFRFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVuZEZv
clNrZXdYKQogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnNrZXdYKDQ1KTsKICAgICB0
by5ibGVuZChmcm9tLCAwKTsKLSAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGZy
b20sIHRvKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7CisgICAgICAgIFdlYktp
dFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGZyb20sIHRvKTsKKyAgICB9CiAK
ICAgICB0by5tYWtlSWRlbnRpdHkoKTsKICAgICB0by5za2V3WCg0NSk7CkBAIC0xMTMwLDcgKzEx
MzksMTAgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlmeUJsZW5kRm9y
U2tld1kpCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8uc2tld1koNDUpOwogICAgIHRv
LmJsZW5kKGZyb20sIDApOwotICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJv
bSwgdG8pOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgV2ViS2l0
VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoZnJvbSwgdG8pOworICAgIH0KIAog
ICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnNrZXdZKDQ1KTsKQEAgLTExNzIsNyArMTE4
NCwxMCBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5QmxlbmRGb3JS
b3RhdGlvbkFib3V0WCkKICAgICB0by5tYWtlSWRlbnRpdHkoKTsKICAgICB0by5yb3RhdGUzZCgx
LCAwLCAwLCA5MCk7CiAgICAgdG8uYmxlbmQoZnJvbSwgMCk7Ci0gICAgRVhQRUNUX1RSQU5TRk9S
TUFUSU9OX01BVFJJWF9FUShmcm9tLCB0byk7CisgICAgeworICAgICAgICBTQ09QRURfVFJBQ0Uo
IiIpOworICAgICAgICBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShm
cm9tLCB0byk7CisgICAgfQogCiAgICAgZG91YmxlIGV4cGVjdGVkUm90YXRpb25BbmdsZSA9IDIy
LjUgKiBwaURvdWJsZSAvIDE4MC4wOwogICAgIHRvLm1ha2VJZGVudGl0eSgpOwpAQCAtMTIxMSw3
ICsxMjI2LDEwIEBAIFRFU1QoV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LCB2ZXJpZnlCbGVu
ZEZvclJvdGF0aW9uQWJvdXRZKQogICAgIHRvLm1ha2VJZGVudGl0eSgpOwogICAgIHRvLnJvdGF0
ZTNkKDAsIDEsIDAsIDkwKTsKICAgICB0by5ibGVuZChmcm9tLCAwKTsKLSAgICBFWFBFQ1RfVFJB
TlNGT1JNQVRJT05fTUFUUklYX0VRKGZyb20sIHRvKTsKKyAgICB7CisgICAgICAgIFNDT1BFRF9U
UkFDRSgiIik7CisgICAgICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJp
eEVxKGZyb20sIHRvKTsKKyAgICB9CiAKICAgICBkb3VibGUgZXhwZWN0ZWRSb3RhdGlvbkFuZ2xl
ID0gMjIuNSAqIHBpRG91YmxlIC8gMTgwLjA7CiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CkBAIC0x
MjUwLDcgKzEyNjgsMTAgQEAgVEVTVChXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QsIHZlcmlm
eUJsZW5kRm9yUm90YXRpb25BYm91dFopCiAgICAgdG8ubWFrZUlkZW50aXR5KCk7CiAgICAgdG8u
cm90YXRlM2QoMCwgMCwgMSwgOTApOwogICAgIHRvLmJsZW5kKGZyb20sIDApOwotICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJvbSwgdG8pOworICAgIHsKKyAgICAgICAgU0NP
UEVEX1RSQUNFKCIiKTsKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZnJvbSwgdG8pOworICAgIH0KIAogICAgIGRvdWJsZSBleHBlY3RlZFJvdGF0aW9u
QW5nbGUgPSAyMi41ICogcGlEb3VibGUgLyAxODAuMDsKICAgICB0by5tYWtlSWRlbnRpdHkoKTsK
QEAgLTEzMDMsNyArMTMyNCwxMCBAQCBURVNUKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdCwg
dmVyaWZ5QmxlbmRGb3JDb21wb3NpdGVUcmFuc2Zvcm0pCiAgICAgCiAgICAgdG8gPSBleHBlY3Rl
ZEVuZE9mQW5pbWF0aW9uOwogICAgIHRvLmJsZW5kKGZyb20sIDApOwotICAgIEVYUEVDVF9UUkFO
U0ZPUk1BVElPTl9NQVRSSVhfRVEoZnJvbSwgdG8pOworICAgIHsKKyAgICAgICAgU0NPUEVEX1RS
QUNFKCIiKTsKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4
RXEoZnJvbSwgdG8pOworICAgIH0KIAogICAgIHRvID0gZXhwZWN0ZWRFbmRPZkFuaW1hdGlvbjsK
ICAgICB0by5ibGVuZChmcm9tLCAxKTsKQEAgLTEzMTksNyArMTM0MywxMCBAQCBURVNUKFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4VGVzdCwgdmVyaWZ5QmxlbmRGb3JDb21wb3NpdGVUcmFuc2Zvcm0p
CiAgICAgbm9ybWFsaXphdGlvbk1hdHJpeC5zZXRNNDQoMSAvIGV4cGVjdGVkRW5kT2ZBbmltYXRp
b24ubTQ0KCkpOwogICAgIG5vcm1hbGl6ZWRFeHBlY3RlZEVuZE9mQW5pbWF0aW9uLm11bHRpcGx5
KG5vcm1hbGl6YXRpb25NYXRyaXgpOwogCi0gICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShub3JtYWxpemVkRXhwZWN0ZWRFbmRPZkFuaW1hdGlvbiwgdG8pOworICAgIHsKKyAgICAg
ICAgU0NPUEVEX1RSQUNFKCIiKTsKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9y
bWF0aW9uTWF0cml4RXEobm9ybWFsaXplZEV4cGVjdGVkRW5kT2ZBbmltYXRpb24sIHRvKTsKKyAg
ICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159995</attachid>
            <date>2012-08-22 13:07:12 -0700</date>
            <delta_ts>2012-08-22 14:28:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94639-20120822130710.patch</filename>
            <type>text/plain</type>
            <size>5992</size>
            <attacher>nbhargava</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxYjM3OTMwN2FhN2QwNTBjYThhMzM1ZmY3NGQ5YzBjOTA3MTY4YTcuLjgyMmMwMDFlNTNhZjRk
ZWEzODJkZjU3OWQ5ZGI3NGQyYTk0ZTFkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMjEgIE5pa2hpbCBCaGFyZ2F2YSAgPG5iaGFyZ2F2YUBn
b29nbGUuY29tPgorCisgICAgICAgIFNwZWVkIHVwIGNvbXBpbGF0aW9uIG9mIHRlc3RzIGludm9s
dmluZyBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRIHdhcyBj
aGFuZ2VkIHRvIGJlY29tZSBtYWlubHkgYSBmdW5jdGlvbi4KKyAgICAgICAgQXMgYSBtYWNybyB0
aGF0IGV4cGFuZGVkIGludG8gMTYgb3RoZXIgbWFjcm9zLCBpdCBjYXVzZWQgYW4gdW5uZWVkZWQK
KyAgICAgICAgc2xvdyBkb3duIG9mIGNsb3NlIHRvIDQ1cyBpbiB0aGUgY29tcGlsZSB0aW1lIG9m
IENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QKKyAgICAgICAgQnVncyBoYXZlIGJlZW4gZmlsZWQg
dG8gY2xhbmcgYW5kIGdjYyBub3RpbmcgdGhlIGVycmFudCBiZWhhdmlvcjoKKyAgICAgICAgaHR0
cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEzNjUxIGFuZCBodHRwOi8vZ2NjLmdu
dS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU0MzM3CisKKyAgICAgICAgKiB0ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJl
ZVRlc3RDb21tb24uaDoKKyAgICAgICAgKFdlYktpdFRlc3RzKToKKyAgICAgICAgKFdlYktpdFRl
c3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKToKKyAgICAgICAgKiB0ZXN0cy9XZWJU
cmFuc2Zvcm1PcGVyYXRpb25zVGVzdC5jcHA6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKGNo
ZWNrUHJvZ3Jlc3MpOgorICAgICAgICAqIHRlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVz
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgorCiAyMDEyLTA4LTE2ICBQZXRlciBCZXZl
cmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVk
IERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAppbmRleCAxZTZhNTk4ZmNiNGExOTcwMzhmZGMzN2Nk
NDY4ZjM3NzYyNjRkNmE4Li42ZmQ3ZjFlMGVmMzMxNjY3MjA5ZGIyMzVkZmIwODcyN2M5MGE0ZTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKQEAgLTQ2LDYgKzQ2LDI3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdFRlc3RzOwogdXNpbmcgV2ViS2l0OjpX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAordm9pZCBXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNm
b3JtYXRpb25NYXRyaXhFcShXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXggYWN0dWFsKQoreworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMSgp
LCAoYWN0dWFsKS5tMTEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTEyKCks
IChhY3R1YWwpLm0xMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTMoKSwg
KGFjdHVhbCkubTEzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xNCgpLCAo
YWN0dWFsKS5tMTQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIxKCksIChh
Y3R1YWwpLm0yMSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjIoKSwgKGFj
dHVhbCkubTIyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMygpLCAoYWN0
dWFsKS5tMjMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTI0KCksIChhY3R1
YWwpLm0yNCgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzEoKSwgKGFjdHVh
bCkubTMxKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMigpLCAoYWN0dWFs
KS5tMzIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMzKCksIChhY3R1YWwp
Lm0zMygpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzQoKSwgKGFjdHVhbCku
bTM0KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MSgpLCAoYWN0dWFsKS5t
NDEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQyKCksIChhY3R1YWwpLm00
MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDMoKSwgKGFjdHVhbCkubTQz
KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00NCgpLCAoYWN0dWFsKS5tNDQo
KSk7Cit9CisKIG5hbWVzcGFjZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVUZXN0Q29t
bW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlVGVzdENvbW1v
bi5oCmluZGV4IDVjMDFjODA0OTNjYTJmNzFkY2MwZTUxN2NhNjVhN2NkOGI4YzNkMzcuLjdmN2Uy
MDI3OTgzMDkyYTI0YTU1YjA4OWNkYzc5OWJmOTRjODVkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaApAQCAtMjUsNiAr
MjUsOCBAQAogI2lmbmRlZiBDQ0xheWVyVHJlZVRlc3RDb21tb25faAogI2RlZmluZSBDQ0xheWVy
VHJlZVRlc3RDb21tb25faAogCisjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0
cml4Lmg+CisKIG5hbWVzcGFjZSBXZWJLaXRUZXN0cyB7CiAKIC8vIFRoZXNlIGFyZSBtYWNyb3Mg
aW5zdGVhZCBvZiBmdW5jdGlvbnMgc28gdGhhdCB3ZSBnZXQgdXNlZnVsIGxpbmUgbnVtYmVycyB3
aGVyZSBhIHRlc3QgZmFpbGVkLgpAQCAtNDAsMjYgKzQyLDE4IEBAIG5hbWVzcGFjZSBXZWJLaXRU
ZXN0cyB7CiAgICAgRVhQRUNUX0VRKChleHBlY3RlZCkuc2l6ZSgpLndpZHRoKCksIChhY3R1YWwp
LnNpemUoKS53aWR0aCgpKTsgICAgICBcCiAgICAgRVhQRUNUX0VRKChleHBlY3RlZCkuc2l6ZSgp
LmhlaWdodCgpLCAoYWN0dWFsKS5zaXplKCkuaGVpZ2h0KCkpCiAKLS8vIFRoaXMgaXMgYSBtYWNy
byBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gc28gdGhhdCB3ZSBnZXQgdXNlZnVsIGxpbmUgbnVtYmVy
cyB3aGVyZSBhIHRlc3QgZmFpbGVkLgotLy8gRXZlbiB0aG91Z2ggV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggdmFsdWVzIGFyZSBkb3VibGUgcHJlY2lzaW9uLCB0aGVyZSBhcmUgbWFueSBvdGhlciBm
bG9hdGluZy1wb2ludCB2YWx1ZXMgdXNlZCB0aGF0IGFmZmVjdAotLy8gdGhlIHRyYW5zZm9ybXMs
IGFuZCBzbyB3ZSBvbmx5IGV4cGVjdCB0aGVtIHRvIGJlIGFjY3VyYXRlIHVwIHRvIGZsb2F0aW5n
LXBvaW50IHByZWNpc2lvbi4KLSNkZWZpbmUgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9F
UShleHBlY3RlZCwgYWN0dWFsKSAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3Rl
ZCkubTExKCksIChhY3R1YWwpLm0xMSgpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9F
USgoZXhwZWN0ZWQpLm0xMigpLCAoYWN0dWFsKS5tMTIoKSk7ICAgICAgICAgIFwKLSAgICBFWFBF
Q1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTMoKSwgKGFjdHVhbCkubTEzKCkpOyAgICAgICAgICBc
Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTE0KCksIChhY3R1YWwpLm0xNCgpKTsg
ICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMSgpLCAoYWN0dWFs
KS5tMjEoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjIo
KSwgKGFjdHVhbCkubTIyKCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBl
Y3RlZCkubTIzKCksIChhY3R1YWwpLm0yMygpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9B
VF9FUSgoZXhwZWN0ZWQpLm0yNCgpLCAoYWN0dWFsKS5tMjQoKSk7ICAgICAgICAgIFwKLSAgICBF
WFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzEoKSwgKGFjdHVhbCkubTMxKCkpOyAgICAgICAg
ICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMyKCksIChhY3R1YWwpLm0zMigp
KTsgICAgICAgICAgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMygpLCAoYWN0
dWFsKS5tMzMoKSk7ICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5t
MzQoKSwgKGFjdHVhbCkubTM0KCkpOyAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChl
eHBlY3RlZCkubTQxKCksIChhY3R1YWwpLm00MSgpKTsgICAgICAgICAgXAotICAgIEVYUEVDVF9G
TE9BVF9FUSgoZXhwZWN0ZWQpLm00MigpLCAoYWN0dWFsKS5tNDIoKSk7ICAgICAgICAgIFwKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDMoKSwgKGFjdHVhbCkubTQzKCkpOyAgICAg
ICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQ0KCksIChhY3R1YWwpLm00
NCgpKQorLy8gVGhpcyBpcyBhIGZ1bmN0aW9uIHJhdGhlciB0aGFuIGEgbWFjcm8gYmVjYXVzZSB3
aGVuIHRoaXMgaXMgaW5jbHVkZWQgYXMgYSBtYWNybworLy8gaW4gYnVsaywgaXQgY2F1c2VzIGEg
c2lnbmlmaWNhbnQgc2xvdy1kb3duIGluIGNvbXBpbGF0aW9uIHRpbWUuIFRoaXMgcHJvYmxlbQor
Ly8gZXhpc3RzIHdpdGggYm90aCBnY2MgYW5kIGNsYW5nLCBhbmQgYnVncyBoYXZlIGJlZW4gZmls
ZWQgYXQKKy8vIGh0dHA6Ly9sbHZtLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMzY1MSBhbmQg
aHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD01NDMzNwordm9pZCBF
eHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRy
aXggZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0OjpX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhY3R1YWwpOworCisjZGVmaW5lIEVYUEVDVF9UUkFOU0ZP
Uk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAgICBcCisgICAgeyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkLCBhY3R1YWwpOyBcCisgICAgfQogCiB9IC8vIG5hbWVz
cGFjZQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>