<?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>95526</bug_id>
          
          <creation_ts>2012-08-30 22:20:02 -0700</creation_ts>
          <short_desc>[chromium] Consolidate geometry unit testing functions for cc</short_desc>
          <delta_ts>2012-08-31 17:20:24 -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 name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>enne</cc>
    
    <cc>japhet</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>shawnsingh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>709310</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 22:20:02 -0700</bug_when>
    <thetext>[chromium] Consolidate geometry unit testing functions for cc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709313</commentid>
    <comment_count>1</comment_count>
      <attachid>161619</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 22:25:00 -0700</bug_when>
    <thetext>Created attachment 161619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709314</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 22:27:05 -0700</bug_when>
    <thetext>This is a deceptively easy to review patch.  If you review it, I&apos;ll take you out for a free lunch *!


(*offer only applies to Googlers. Must provide own transporation to/from MTV and like BigTable)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709317</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-30 22:41:06 -0700</bug_when>
    <thetext>
Are you comfortable with using EXPECT_EQ instead of EXPECT_FLOAT_EQ?   EXPECT_FLOAT_EQ has some special semantics that use ulp thresholding instead of absolute thresholding.

That&apos;s why there was originally an EXPECT_FLOAT_RECT_EQ and EXPECT_INT_RECT_EQ ...

But I do agree that CCLayerTreeHost version of this macro is redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709318</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 22:42:38 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Are you comfortable with using EXPECT_EQ instead of EXPECT_FLOAT_EQ?   EXPECT_FLOAT_EQ has some special semantics that use ulp thresholding instead of absolute thresholding.
&gt; 
&gt; That&apos;s why there was originally an EXPECT_FLOAT_RECT_EQ and EXPECT_INT_RECT_EQ ...
&gt; 

The tests all pass with this, so it doesn&apos;t seem that this is important.  If it does become important we could make the assertions that need to be fuzzy fuzzy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709324</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-30 23:25:14 -0700</bug_when>
    <thetext>OK, well aside from that issue, I looked through it and it unofficially LGTM.  =)

It makes sense from the perspective that many floating-point operations are clamp/intersect/union, which just shuffle values around by assignment without affecting precision.  But as soon as we start transforming stuff...  (and considering the possibility of migrating to a float valued matrix sometime soon...) I am surprised that exact equality works!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709989</commentid>
    <comment_count>6</comment_count>
      <attachid>161775</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 14:28:51 -0700</bug_when>
    <thetext>Created attachment 161775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709990</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 14:29:35 -0700</bug_when>
    <thetext>This leaves the float ones alone - no reason to change those, and it makes the patch a touch smaller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709992</commentid>
    <comment_count>8</comment_count>
      <attachid>161776</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 14:36:55 -0700</bug_when>
    <thetext>Created attachment 161776
fix includes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709998</commentid>
    <comment_count>9</comment_count>
      <attachid>161776</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-31 14:40:29 -0700</bug_when>
    <thetext>Comment on attachment 161776
fix includes

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

&gt; Source/WebKit/chromium/tests/CCGeometryTestUtils.h:41
&gt; +#define EXPECT_RECT_EQ(expected, actual)                            \

For me personally, the reason I liked EXPECT_INT_RECT_EQ instead of EXPECT_RECT_EQ was because its a little easier to make us aware when we accidentally use floatRects/intRects inside of the wrong EXPECT macro.

Again, the patch unofficially LGTM other than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710009</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 14:46:07 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 161776 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161776&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/CCGeometryTestUtils.h:41
&gt; &gt; +#define EXPECT_RECT_EQ(expected, actual)                            \
&gt; 
&gt; For me personally, the reason I liked EXPECT_INT_RECT_EQ instead of EXPECT_RECT_EQ was because its a little easier to make us aware when we accidentally use floatRects/intRects inside of the wrong EXPECT macro.
&gt; 
&gt; Again, the patch unofficially LGTM other than this.

Well, without this patch we were also using EXPECT_EQ_RECT all over the place too.  I kind of like EXPECT_RECT_EQ() for where you don&apos;t really care and EXPECT_FLOAT_RECT_EQ where you explicitly want fuzzy matching.  I think this is all temporary anyway since I anticipate we&apos;ll switch to different types and just write operator== so these will all turn into EXPECT_EQ() which does the right thing on the the types provided.

The motivation for this (beyond cleanup) is moving the matrix equality operator out of CCLayerTreeHostCommonTest.cpp because currently I can&apos;t get cc_unittests and webkit_compositor_unittests linking at all downstream, so I&apos;d like to get that resolved ASAPly and follow up on any other cleanups we want later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710013</commentid>
    <comment_count>11</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-31 14:50:34 -0700</bug_when>
    <thetext>got it - thanks for explaining.  I&apos;m good with this, we can move on.

So, a little ways down the road, are you saying you&apos;d like to implement operator== as a fuzzy ulp error threshold equality --- in production code?   or just in unit test code?    Is there a reason to have a fuzzy equality check in production code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710015</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 14:57:30 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; got it - thanks for explaining.  I&apos;m good with this, we can move on.
&gt; 
&gt; So, a little ways down the road, are you saying you&apos;d like to implement operator== as a fuzzy ulp error threshold equality --- in production code?   or just in unit test code?    Is there a reason to have a fuzzy equality check in production code?

In dream land, I&apos;d define an operator== only for testing that&apos;s fuzzy.  But I don&apos;t know if that is possible or not.  We don&apos;t currently have a need for operator== in production that I know of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710085</commentid>
    <comment_count>13</comment_count>
      <attachid>161776</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-08-31 17:17:14 -0700</bug_when>
    <thetext>Comment on attachment 161776
fix includes

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

Provided it compiles on the EWS, r=me.

&gt;&gt;&gt; Source/WebKit/chromium/tests/CCGeometryTestUtils.h:41
&gt;&gt;&gt; +#define EXPECT_RECT_EQ(expected, actual)                            \
&gt;&gt; 
&gt;&gt; For me personally, the reason I liked EXPECT_INT_RECT_EQ instead of EXPECT_RECT_EQ was because its a little easier to make us aware when we accidentally use floatRects/intRects inside of the wrong EXPECT macro.
&gt;&gt; 
&gt;&gt; Again, the patch unofficially LGTM other than this.
&gt; 
&gt; Well, without this patch we were also using EXPECT_EQ_RECT all over the place too.  I kind of like EXPECT_RECT_EQ() for where you don&apos;t really care and EXPECT_FLOAT_RECT_EQ where you explicitly want fuzzy matching.  I think this is all temporary anyway since I anticipate we&apos;ll switch to different types and just write operator== so these will all turn into EXPECT_EQ() which does the right thing on the the types provided.
&gt; 
&gt; The motivation for this (beyond cleanup) is moving the matrix equality operator out of CCLayerTreeHostCommonTest.cpp because currently I can&apos;t get cc_unittests and webkit_compositor_unittests linking at all downstream, so I&apos;d like to get that resolved ASAPly and follow up on any other cleanups we want later.

Macros don&apos;t give much guarantees that the arguments are IntRects so it&apos;s probably better to use EXPECT_RECT_EQ from that perspective. This is just my 2 cents from someone not involved as strictly in the compositor code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710086</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 17:20:24 -0700</bug_when>
    <thetext>Committed r127340: &lt;http://trac.webkit.org/changeset/127340&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161619</attachid>
            <date>2012-08-30 22:25:00 -0700</date>
            <delta_ts>2012-08-31 14:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95526-20120830222449.patch</filename>
            <type>text/plain</type>
            <size>183851</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDY0MWUwNTlhZDI5NzYxNjdhY2NkMDM0M2JhNTY2NzM2NGI0YWFiMGIuLmI0OGNhYWZmMDAwZTEy
MjkwOTZlZDk1MzRiMGZjMjk3ZGFlNTFmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsNzcgQEAKIDIwMTItMDgtMzAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIENvbnNvbGlkYXRlIGdlb21ldHJ5IHVuaXQg
dGVzdGluZyBmdW5jdGlvbnMgZm9yIGNjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTUyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE92ZXIgdGhlIGNvdXJzZSBvZiB0aW1lLCB3ZSd2ZSBzb21laG93IGVu
ZGVkIHVwIHdpdGggdXRpbGl0aWVzIGZvciB3cml0aW5nIGd0ZXN0IGFzc2VydGlvbnMgYWJvdXQg
cmVjdHMgYW5kCisgICAgICAgIHRyYW5zZm9ybWF0aW9uIG1hdHJpY2VzIGluIGEgZmlsZSBjYWxs
ZWQgQ0NMYXllclRyZWVUZXN0Q29tbW9uLmggYW5kIGdyb3duIChhdCBsZWFzdCkgNCBjb21wbGV0
ZWx5IHJlZHVuZGFudAorICAgICAgICByZWN0YW5nbGUgZXF1YWxpdHkgdGVzdCBtYWNyb3MuICBU
aGlzIHB1dHMgYWxsIG9mIHRoZXNlIHV0aWxpdGllcyBpbiBDQ0dlb21ldHJ5VGVzdFV0aWxzLmgv
Y3BwLgorCisgICAgICAgIFRoZSBtYWpvcml0eSBvZiB0aGUgY2hhbmdlcyBhcmUgb2YgdGhlIGZv
cm0gcy8oRVhQRUNUXyhJTlR8RkxPQVQpX1JFQ1RfRVF8RVhQRUNUX0VRX1JFQ1QpL0VYUEVDVF9S
RUNUX0VRLworCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvQ0NEYW1h
Z2VUcmFja2VyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVF9GKToKKyAgICAg
ICAgKiB0ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXRUZXN0cyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6RXhwZWN0VHJhbnNmb3JtYXRpb25NYXRy
aXhFcSk6CisgICAgICAgICogdGVzdHMvQ0NHZW9tZXRyeVRlc3RVdGlscy5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXRUZXN0cyk6CisgICAgICAgICogdGVz
dHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTWF0aFV0aWxUZXN0LmNwcDoKKyAgICAgICAgKiB0
ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0SWRlbnRpdHlUcmFuc2Zvcm1zOjpydW5NeVRlc3QpOgorICAg
ICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RSb3RhdGVkQ2hpbGQ6OnJ1
bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFRy
YW5zbGF0ZWRDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1
c2lvblRyYWNrZXJUZXN0Q2hpbGRJblJvdGF0ZWRDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0VmlzaXRUYXJnZXRUd29UaW1lczo6
cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0
U3VyZmFjZVJvdGF0ZWRPZmZBeGlzOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlV2l0aFR3b09wYXF1ZUNoaWxkcmVuOjpydW5N
eVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RPdmVy
bGFwcGluZ1N1cmZhY2VTaWJsaW5nczo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3Rz
OjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0T3ZlcmxhcHBpbmdTdXJmYWNlU2libGluZ3NXaXRoVHdv
VHJhbnNmb3Jtczo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lv
blRyYWNrZXJUZXN0RmlsdGVyczo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0UmVwbGljYURvZXNPY2NsdWRlOjpydW5NeVRlc3QpOgorICAg
ICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RSZXBsaWNhV2l0aENsaXBw
aW5nOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tl
clRlc3RSZXBsaWNhV2l0aE1hc2s6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6
Q0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdXRzaWRlQ2hpbGQ6OnJ1bk15VGVz
dCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0
UmVjdE91dHNpZGVDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09j
Y2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdFBhcnRseU92ZXJDaGlsZDo6cnVuTXlUZXN0
KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRS
ZWN0UGFydGx5T3ZlckNoaWxkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkND
T2NjbHVzaW9uVHJhY2tlclRlc3RPcGFxdWVDb250ZW50c1JlZ2lvbk5vbkVtcHR5OjpydW5NeVRl
c3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3QzZFRyYW5z
Zm9ybTo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0UGVyc3BlY3RpdmVUcmFuc2Zvcm06OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRU
ZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdExhcmdlUGl4ZWxzT2NjbHVkZUluc2lkZUNsaXBS
ZWN0OjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tl
clRlc3RBbmltYXRpb25PcGFjaXR5MU9uTWFpblRocmVhZDo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0QW5pbWF0aW9uT3BhY2l0eTBPbk1h
aW5UaHJlYWQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdEFuaW1hdGlvblRyYW5zbGF0ZU9uTWFpblRocmVhZDo6cnVuTXlUZXN0KToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFjZU9jY2x1c2lv
blRyYW5zbGF0ZXNUb1BhcmVudDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFjZU9jY2x1c2lvblRyYW5zbGF0ZXNXaXRoQ2xpcHBp
bmc6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2Vy
VGVzdFJlcGxpY2FPY2NsdWRlZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFjZVdpdGhSZXBsaWNhVW5vY2NsdWRlZDo6cnVuTXlU
ZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFj
ZUFuZFJlcGxpY2FPY2NsdWRlZERpZmZlcmVudGx5OjpydW5NeVRlc3QpOgorICAgICAgICAoV2Vi
S2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlQ2hpbGRPZlN1cmZhY2U6OnJ1
bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFRv
cG1vc3RTdXJmYWNlSXNDbGlwcGVkVG9WaWV3cG9ydDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdl
YktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFjZUNoaWxkT2ZDbGlwcGluZ1N1
cmZhY2U6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFj
a2VyVGVzdERvbnRPY2NsdWRlUGl4ZWxzTmVlZGVkRm9yQmFja2dyb3VuZEZpbHRlcjo6cnVuTXlU
ZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0VHdvQmFj
a2dyb3VuZEZpbHRlcnNSZWR1Y2VPY2NsdXNpb25Ud2ljZTo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0RG9udE9jY2x1ZGVQaXhlbHNOZWVk
ZWRGb3JCYWNrZ3JvdW5kRmlsdGVyV2l0aENsaXA6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdERvbnRSZWR1Y2VPY2NsdXNpb25CZWxvd0Jh
Y2tncm91bmRGaWx0ZXI6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2Ns
dXNpb25UcmFja2VyVGVzdERvbnRSZWR1Y2VPY2NsdXNpb25JZkJhY2tncm91bmRGaWx0ZXJJc09j
Y2x1ZGVkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RNaW5pbXVtVHJhY2tpbmdTaXplOjpydW5NeVRlc3QpOgorICAgICAgICAqIHRlc3Rz
L0NvbnRlbnRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgor
ICAgICAgICAqIHRlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9U
aWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9XZWJUcmFuc2Zvcm1P
cGVyYXRpb25zVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXhUZXN0LmNwcDoKKworMjAxMi0wOC0zMCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFtjaHJvbWl1bV0gUmV2ZXJ0IFdlYkNvbXBvc2l0b3JTdXBwb3J0
IHRvIHJhdyBwdHJzLCBtYWtlIGR0b3IgcHJvdGVjdGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTUyMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQppbmRleCBjMTEwMGNlOGZlYWMzYjhiZjVlMmQ3MzBjMzNkMWViY2ZmYWJiNmMwLi41NGYw
ZGI4ZTVjMmM1NTRjY2NhN2UxNjA4YTdlNmY3ODg3MTE3N2I3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cGkKQEAgLTEyMCw2ICsxMjAsOCBAQAogICAgICAgICAgICAgJ3Rlc3RzL0NDRGFt
YWdlVHJhY2tlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ0RlbGF5QmFzZWRUaW1l
U291cmNlVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDRnJhbWVSYXRlQ29udHJvbGxl
clRlc3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmNwcCcs
CisgICAgICAgICAgICAndGVzdHMvQ0NHZW9tZXRyeVRlc3RVdGlscy5oJywKICAgICAgICAgICAg
ICd0ZXN0cy9DQ0hlYWRzVXBEaXNwbGF5VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0ND
S2V5ZnJhbWVkQW5pbWF0aW9uQ3VydmVUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LmNwcCcsCkBAIC0xMzIsNyArMTM0LDYgQEAKICAg
ICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCcsCiAgICAgICAg
ICAgICAndGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCcsCi0gICAgICAgICAgICAndGVzdHMvQ0NMYXll
clRyZWVUZXN0Q29tbW9uLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDTWF0aFV0aWxUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAnLAogICAg
ICAgICAgICAgJ3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3RDb21tb24uaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcApp
bmRleCBmOWVlY2RiNzU5N2U1MzkxOTAzNzliNDQ3N2VlODY5NzQxYzI1ZTk3Li4xNDkxNGU4ODBj
ZTY4MDZhZTdiNjYzYzAyY2YyMzY1NjA4NjkxYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKQEAgLTI2LDEwICsyNiwx
MCBAQAogCiAjaW5jbHVkZSAiQ0NEYW1hZ2VUcmFja2VyLmgiCiAKKyNpbmNsdWRlICJDQ0dlb21l
dHJ5VGVzdFV0aWxzLmgiCiAjaW5jbHVkZSAiQ0NMYXllckltcGwuaCIKICNpbmNsdWRlICJDQ0xh
eWVyU29ydGVyLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgiCi0jaW5jbHVk
ZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAiQ0NNYXRoVXRpbC5oIgogI2lu
Y2x1ZGUgIkNDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgpA
QCAtMzgsNyArMzgsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dFRlc3RzOwogCiBuYW1lc3BhY2UgewpAQCAtMjAzLDcgKzIwMiw3IEBAIFRFU1RfRihDQ0RhbWFn
ZVRyYWNrZXJUZXN0LCBzYW5pdHlDaGVja1Rlc3RUcmVlV2l0aE9uZVN1cmZhY2UpCiAgICAgRVhQ
RUNUX0VRKDIsIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KClbMV0tPmlkKCkpOwog
CiAgICAgRmxvYXRSZWN0IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5k
YW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JF
Q1RfRVEoRmxvYXRSZWN0KDAsIDAsIDUwMCwgNTAwKSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVY
UEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgwLCAwLCA1MDAsIDUwMCksIHJvb3REYW1hZ2VSZWN0KTsK
IH0KIAogVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHNhbml0eUNoZWNrVGVzdFRyZWVXaXRo
VHdvU3VyZmFjZXMpCkBAIC0yMjQsOCArMjIzLDggQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRl
c3QsIHNhbml0eUNoZWNrVGVzdFRyZWVXaXRoVHdvU3VyZmFjZXMpCiAgICAgRVhQRUNUX0VRKDJ1
LCBjaGlsZDEtPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKIAogICAgIC8v
IFRoZSByZW5kZXIgc3VyZmFjZSBmb3IgY2hpbGQxIG9ubHkgaGFzIGEgY29udGVudFJlY3QgdGhh
dCBlbmNsb3NlcyBncmFuZENoaWxkMSBhbmQgZ3JhbmRDaGlsZDIsIGJlY2F1c2UgY2hpbGQxIGRv
ZXMgbm90IGRyYXcgY29udGVudC4KLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3Qo
MTkwLCAxOTAsIDE2LCAxOCksIGNoaWxkRGFtYWdlUmVjdCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JF
Q1RfRVEoRmxvYXRSZWN0KDAsIDAsIDUwMCwgNTAwKSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVY
UEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgxOTAsIDE5MCwgMTYsIDE4KSwgY2hpbGREYW1hZ2VSZWN0
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgNTAwLCA1MDApLCByb290RGFt
YWdlUmVjdCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VG
b3JVcGRhdGVSZWN0cykKQEAgLTI0MSw3ICsyNDAsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2Vy
VGVzdCwgdmVyaWZ5RGFtYWdlRm9yVXBkYXRlUmVjdHMpCiAKICAgICAvLyBEYW1hZ2UgcG9zaXRp
b24gb24gdGhlIHN1cmZhY2Ugc2hvdWxkIGJlOiBwb3NpdGlvbiBvZiB1cGRhdGVSZWN0ICgxMCwg
MTEpIHJlbGF0aXZlIHRvIHRoZSBjaGlsZCAoMTAwLCAxMDApLgogICAgIEZsb2F0UmVjdCByb290
RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJy
ZW50RGFtYWdlUmVjdCgpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgxMTAs
IDExMSwgMTIsIDEzKSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0
UmVjdCgxMTAsIDExMSwgMTIsIDEzKSwgcm9vdERhbWFnZVJlY3QpOwogCiAgICAgLy8gQ0FTRSAy
OiBUaGUgc2FtZSB1cGRhdGUgcmVjdCB0d2ljZSBpbiBhIHJvdyBzdGlsbCBwcm9kdWNlcyB0aGUg
c2FtZSBkYW1hZ2UuCiAgICAgLy8KQEAgLTI0OSw3ICsyNDgsNyBAQCBURVNUX0YoQ0NEYW1hZ2VU
cmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yVXBkYXRlUmVjdHMpCiAgICAgY2hpbGQtPnNldFVw
ZGF0ZVJlY3QoRmxvYXRSZWN0KDEwLCAxMSwgMTIsIDEzKSk7CiAgICAgZW11bGF0ZURyYXdpbmdP
bmVGcmFtZShyb290LmdldCgpKTsKICAgICByb290RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1
cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgpOwotICAgIEVYUEVD
VF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgxMTAsIDExMSwgMTIsIDEzKSwgcm9vdERhbWFnZVJl
Y3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgxMTAsIDExMSwgMTIsIDEzKSwgcm9v
dERhbWFnZVJlY3QpOwogCiAgICAgLy8gQ0FTRSAzOiBTZXR0aW5nIGEgZGlmZmVyZW50IHVwZGF0
ZSByZWN0IHNob3VsZCBjYXVzZSBkYW1hZ2Ugb24gdGhlIG5ldyB1cGRhdGUgcmVnaW9uLCBidXQg
bm8gYWRkaXRpb25hbCBleHBvc2VkIG9sZCByZWdpb24uCiAgICAgLy8KQEAgLTI1OSw3ICsyNTgs
NyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yVXBkYXRlUmVj
dHMpCiAKICAgICAvLyBEYW1hZ2UgcG9zaXRpb24gb24gdGhlIHN1cmZhY2Ugc2hvdWxkIGJlOiBw
b3NpdGlvbiBvZiB1cGRhdGVSZWN0ICgyMCwgMjUpIHJlbGF0aXZlIHRvIHRoZSBjaGlsZCAoMTAw
LCAxMDApLgogICAgIHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1h
Z2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1Rf
RVEoRmxvYXRSZWN0KDEyMCwgMTI1LCAxLCAyKSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVD
VF9SRUNUX0VRKEZsb2F0UmVjdCgxMjAsIDEyNSwgMSwgMiksIHJvb3REYW1hZ2VSZWN0KTsKIH0K
IAogVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvclByb3BlcnR5Q2hh
bmdlcykKQEAgLTI4MSw3ICsyODAsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVy
aWZ5RGFtYWdlRm9yUHJvcGVydHlDaGFuZ2VzKQogICAgIC8vIERhbWFnZSBzaG91bGQgYmUgdGhl
IGVudGlyZSBjaGlsZCBsYXllciBpbiB0YXJnZXRTdXJmYWNlIHNwYWNlLgogICAgIEZsb2F0UmVj
dCBleHBlY3RlZFJlY3QgPSBGbG9hdFJlY3QoMTAwLCAxMDAsIDMwLCAzMCk7CiAgICAgRmxvYXRS
ZWN0IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2Vy
KCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0
ZWRSZWN0LCByb290RGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRSZWN0
LCByb290RGFtYWdlUmVjdCk7CiAKICAgICAvLyBDQVNFIDI6IElmIGEgbGF5ZXIgbW92ZXMgZHVl
IHRvIHByb3BlcnR5IGNoYW5nZSwgaXQgZGFtYWdlcyBib3RoIHRoZSBuZXcgbG9jYXRpb24KICAg
ICAvLyAgICAgICAgIGFuZCB0aGUgb2xkIChleHBvc2VkKSBsb2NhdGlvbi4gVGhlIG9sZCBsb2Nh
dGlvbiBpcyB0aGUgZW50aXJlIG9sZCBsYXllciwKQEAgLTMwMCw3ICsyOTksNyBAQCBURVNUX0Yo
Q0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yUHJvcGVydHlDaGFuZ2VzKQogICAg
IC8vIEV4cGVjdCBkYW1hZ2UgdG8gYmUgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBwcmV2aW91cyBv
bmUgYW5kIHRoZSBuZXcgb25lLgogICAgIGV4cGVjdGVkUmVjdC51bml0ZUlmTm9uWmVybyhGbG9h
dFJlY3QoMjAwLCAyMzAsIDMwLCAzMCkpOwogICAgIHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVu
ZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAg
RVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0ZWRSZWN0LCByb290RGFtYWdlUmVjdCk7CisgICAg
RVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRSZWN0LCByb290RGFtYWdlUmVjdCk7CiB9CiAKIFRFU1Rf
RihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JUcmFuc2Zvcm1lZExheWVyKQpA
QCAtMzIxLDcgKzMyMCw3IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1h
Z2VGb3JUcmFuc2Zvcm1lZExheWVyKQogCiAgICAgLy8gU2FuaXR5IGNoZWNrIHRoYXQgdGhlIGxh
eWVyIGFjdHVhbGx5IG1vdmVkIHRvICg4NSwgODUpLCBkYW1hZ2luZyBpdHMgb2xkIGxvY2F0aW9u
IGFuZCBuZXcgbG9jYXRpb24uCiAgICAgRmxvYXRSZWN0IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+
cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0g
ICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDg1LCA4NSwgNDUsIDQ1KSwgcm9vdERh
bWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCg4NSwgODUsIDQ1LCA0NSks
IHJvb3REYW1hZ2VSZWN0KTsKIAogICAgIC8vIFdpdGggdGhlIGFuY2hvciBvbiB0aGUgbGF5ZXIn
cyBjZW50ZXIsIG5vdyB3ZSBjYW4gdGVzdCB0aGUgcm90YXRpb24gbW9yZQogICAgIC8vIGludHVp
dGl2ZWx5LCBzaW5jZSBpdCBhcHBsaWVzIGFib3V0IHRoZSBsYXllcidzIGFuY2hvci4KQEAgLTMz
Niw3ICszMzUsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9y
VHJhbnNmb3JtZWRMYXllcikKICAgICBkb3VibGUgZXhwZWN0ZWRQb3NpdGlvbiA9IDEwMCAtIDAu
NSAqIGV4cGVjdGVkV2lkdGg7CiAgICAgRmxvYXRSZWN0IGV4cGVjdGVkUmVjdChleHBlY3RlZFBv
c2l0aW9uLCBleHBlY3RlZFBvc2l0aW9uLCBleHBlY3RlZFdpZHRoLCBleHBlY3RlZFdpZHRoKTsK
ICAgICByb290RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tl
cigpLT5jdXJyZW50RGFtYWdlUmVjdCgpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKGV4cGVj
dGVkUmVjdCwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkUmVj
dCwgcm9vdERhbWFnZVJlY3QpOwogfQogCiBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVy
aWZ5RGFtYWdlRm9yUGVyc3BlY3RpdmVDbGlwcGVkTGF5ZXIpCkBAIC00MTEsNyArNDEwLDcgQEAg
VEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvckJsdXJyZWRTdXJmYWNl
KQogICAgIEZsb2F0UmVjdCBleHBlY3RlZERhbWFnZVJlY3QgPSBGbG9hdFJlY3QoMTEwLCAxMTEs
IDEyLCAxMyk7CiAgICAgZXhwZWN0ZWREYW1hZ2VSZWN0Lm1vdmUoLW91dHNldExlZnQsIC1vdXRz
ZXRUb3ApOwogICAgIGV4cGVjdGVkRGFtYWdlUmVjdC5leHBhbmQob3V0c2V0TGVmdCArIG91dHNl
dFJpZ2h0LCBvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pOwotICAgIEVYUEVDVF9GTE9BVF9SRUNU
X0VRKGV4cGVjdGVkRGFtYWdlUmVjdCwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNU
X0VRKGV4cGVjdGVkRGFtYWdlUmVjdCwgcm9vdERhbWFnZVJlY3QpOwogfQogCiBURVNUX0YoQ0NE
YW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yQmFja2dyb3VuZEJsdXJyZWRDaGlsZCkK
QEAgLTQ0Niw3ICs0NDUsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFt
YWdlRm9yQmFja2dyb3VuZEJsdXJyZWRDaGlsZCkKICAgICBGbG9hdFJlY3QgZXhwZWN0ZWREYW1h
Z2VSZWN0ID0gRmxvYXRSZWN0KDI5NywgMjk3LCAyLCAyKTsKICAgICBleHBlY3RlZERhbWFnZVJl
Y3QubW92ZSgtb3V0c2V0TGVmdCwgLW91dHNldFRvcCk7CiAgICAgZXhwZWN0ZWREYW1hZ2VSZWN0
LmV4cGFuZChvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIG91dHNldFRvcCArIG91dHNldEJvdHRv
bSk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0ZWREYW1hZ2VSZWN0LCByb290RGFt
YWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWREYW1hZ2VSZWN0LCByb290RGFt
YWdlUmVjdCk7CiAKICAgICAvLyBDQVNFIDI6IFNldHRpbmcgdGhlIHVwZGF0ZSByZWN0IHNob3Vs
ZCBjYXVzZSB0aGUgY29ycmVzcG9uZGluZyBkYW1hZ2UgdG8KICAgICAvLyB0aGUgc3VyZmFjZSwg
Ymx1cnJlZCBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgY2hpbGQncyBiYWNrZ3JvdW5kIGJsdXIK
QEAgLTQ2Myw3ICs0NjIsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFt
YWdlRm9yQmFja2dyb3VuZEJsdXJyZWRDaGlsZCkKICAgICBleHBlY3RlZERhbWFnZVJlY3QgPSBG
bG9hdFJlY3QoMjk3LCAyOTcsIDMwLCAzMCk7CiAgICAgZXhwZWN0ZWREYW1hZ2VSZWN0Lm1vdmUo
LW91dHNldExlZnQsIC1vdXRzZXRUb3ApOwogICAgIGV4cGVjdGVkRGFtYWdlUmVjdC5leHBhbmQo
b3V0c2V0TGVmdCwgb3V0c2V0VG9wKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShleHBlY3Rl
ZERhbWFnZVJlY3QsIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3Rl
ZERhbWFnZVJlY3QsIHJvb3REYW1hZ2VSZWN0KTsKIAogICAgIC8vIENBU0UgMzogU2V0dGluZyB0
aGlzIHVwZGF0ZSByZWN0IG91dHNpZGUgdGhlIGJsdXJyZWQgY29udGVudEJvdW5kcyBvZiB0aGUg
Ymx1cnJlZAogICAgIC8vIGNoaWxkMSB3aWxsIG5vdCBjYXVzZSBpdCB0byBiZSBleHBhbmRlZC4K
QEAgLTQ3NSw3ICs0NzQsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFt
YWdlRm9yQmFja2dyb3VuZEJsdXJyZWRDaGlsZCkKICAgICAvLyBEYW1hZ2Ugb24gdGhlIHJvb3Qg
c2hvdWxkIGJlOiBwb3NpdGlvbiBvZiB1cGRhdGVSZWN0ICgzMCwgMzApLCBub3QKICAgICAvLyBl
eHBhbmRlZC4KICAgICBleHBlY3RlZERhbWFnZVJlY3QgPSBGbG9hdFJlY3QoMzAsIDMwLCAyLCAy
KTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShleHBlY3RlZERhbWFnZVJlY3QsIHJvb3REYW1h
Z2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZERhbWFnZVJlY3QsIHJvb3REYW1h
Z2VSZWN0KTsKIAogICAgIC8vIENBU0UgNDogU2V0dGluZyB0aGlzIHVwZGF0ZSByZWN0IGluc2lk
ZSB0aGUgYmx1cnJlZCBjb250ZW50Qm91bmRzIGJ1dCBvdXRzaWRlIHRoZQogICAgIC8vIG9yaWdp
bmFsIGNvbnRlbnRCb3VuZHMgb2YgdGhlIGJsdXJyZWQgY2hpbGQxIHdpbGwgY2F1c2UgaXQgdG8g
YmUgZXhwYW5kZWQuCkBAIC00OTAsNyArNDg5LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRl
c3QsIHZlcmlmeURhbWFnZUZvckJhY2tncm91bmRCbHVycmVkQ2hpbGQpCiAgICAgZXhwZWN0ZWRE
YW1hZ2VSZWN0ID0gRmxvYXRSZWN0KDk5LCA5OSwgMSwgMSk7CiAgICAgZXhwZWN0ZWREYW1hZ2VS
ZWN0Lm1vdmUoLW91dHNldExlZnQgKyAxLCAtb3V0c2V0VG9wICsgMSk7CiAgICAgZXhwZWN0ZWRE
YW1hZ2VSZWN0LmV4cGFuZChvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQgLSAxLCBvdXRzZXRUb3Ag
KyBvdXRzZXRCb3R0b20gLSAxKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShleHBlY3RlZERh
bWFnZVJlY3QsIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZERh
bWFnZVJlY3QsIHJvb3REYW1hZ2VSZWN0KTsKIAogICAgIC8vIENBU0UgNTogU2V0dGluZyB0aGUg
dXBkYXRlIHJlY3Qgb24gY2hpbGQyLCB3aGljaCBpcyBhYm92ZSBjaGlsZDEsIHdpbGwKICAgICAv
LyBub3QgZ2V0IGJsdXJyZWQgYnkgY2hpbGQxLCBzbyBpdCBkb2VzIG5vdCBuZWVkIHRvIGdldCBl
eHBhbmRlZC4KQEAgLTUwMSw3ICs1MDAsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwg
dmVyaWZ5RGFtYWdlRm9yQmFja2dyb3VuZEJsdXJyZWRDaGlsZCkKICAgICByb290RGFtYWdlUmVj
dCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdl
UmVjdCgpOwogICAgIC8vIERhbWFnZSBvbiBjaGlsZDIgc2hvdWxkIGJlOiBwb3NpdGlvbiBvZiB1
cGRhdGVSZWN0IG9mZnNldCBieSB0aGUgY2hpbGQncyBwb3NpdGlvbiAoMTEsIDExKSwgYW5kIG5v
dCBleHBhbmRlZCBieSBhbnl0aGluZy4KICAgICBleHBlY3RlZERhbWFnZVJlY3QgPSBGbG9hdFJl
Y3QoMTEsIDExLCAxLCAxKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShleHBlY3RlZERhbWFn
ZVJlY3QsIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZERhbWFn
ZVJlY3QsIHJvb3REYW1hZ2VSZWN0KTsKIAogICAgIC8vIENBU0UgNjogU2V0dGluZyB0aGUgdXBk
YXRlIHJlY3Qgb24gY2hpbGQxIHdpbGwgYWxzbyBibHVyIHRoZSBkYW1hZ2UsIHNvCiAgICAgLy8g
dGhhdCBhbnkgcGl4ZWxzIG5lZWRlZCBmb3IgdGhlIGJsdXIgYXJlIHJlZHJhd24gaW4gdGhlIGN1
cnJlbnQgZnJhbWUuCkBAIC01MTQsNyArNTEzLDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRl
c3QsIHZlcmlmeURhbWFnZUZvckJhY2tncm91bmRCbHVycmVkQ2hpbGQpCiAgICAgZXhwZWN0ZWRE
YW1hZ2VSZWN0ID0gRmxvYXRSZWN0KDEwMCwgMTAwLCAxLCAxKTsKICAgICBleHBlY3RlZERhbWFn
ZVJlY3QubW92ZSgtb3V0c2V0TGVmdCwgLW91dHNldFRvcCk7CiAgICAgZXhwZWN0ZWREYW1hZ2VS
ZWN0LmV4cGFuZChvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIG91dHNldFRvcCArIG91dHNldEJv
dHRvbSk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0ZWREYW1hZ2VSZWN0LCByb290
RGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWREYW1hZ2VSZWN0LCByb290
RGFtYWdlUmVjdCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1h
Z2VGb3JBZGRpbmdBbmRSZW1vdmluZ0xheWVyKQpAQCAtNTQwLDcgKzUzOSw3IEBAIFRFU1RfRihD
Q0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JBZGRpbmdBbmRSZW1vdmluZ0xheWVy
KQogICAgIEFTU0VSVF9FUSgzdSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKS5z
aXplKCkpOwogCiAgICAgRmxvYXRSZWN0IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3Vy
ZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNU
X0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDQwMCwgMzgwLCA2LCA4KSwgcm9vdERhbWFnZVJlY3Qp
OworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCg0MDAsIDM4MCwgNiwgOCksIHJvb3REYW1h
Z2VSZWN0KTsKIAogICAgIC8vIENBU0UgMjogSWYgdGhlIGxheWVyIGlzIHJlbW92ZWQsIGl0cyBl
bnRpcmUgb2xkIGxheWVyIGJlY29tZXMgZXhwb3NlZCwgbm90IGp1c3QgdGhlCiAgICAgLy8gICAg
ICAgICBsYXN0IHVwZGF0ZSByZWN0LgpAQCAtNTU0LDcgKzU1Myw3IEBAIFRFU1RfRihDQ0RhbWFn
ZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JBZGRpbmdBbmRSZW1vdmluZ0xheWVyKQogICAg
IGNoaWxkMS0+cmVtb3ZlRnJvbVBhcmVudCgpOwogICAgIGVtdWxhdGVEcmF3aW5nT25lRnJhbWUo
cm9vdC5nZXQoKSk7CiAgICAgcm9vdERhbWFnZVJlY3QgPSByb290LT5yZW5kZXJTdXJmYWNlKCkt
PmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3QoKTsKLSAgICBFWFBFQ1RfRkxPQVRf
UkVDVF9FUShGbG9hdFJlY3QoMTAwLCAxMDAsIDMwLCAzMCksIHJvb3REYW1hZ2VSZWN0KTsKKyAg
ICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMTAwLCAxMDAsIDMwLCAzMCksIHJvb3REYW1hZ2VS
ZWN0KTsKIH0KIAogVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvck5l
d1VuY2hhbmdlZExheWVyKQpAQCAtNTg1LDcgKzU4NCw3IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNr
ZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JOZXdVbmNoYW5nZWRMYXllcikKICAgICBBU1NFUlRfRVEo
M3UsIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKIAogICAgIEZs
b2F0UmVjdCByb290RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJh
Y2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZs
b2F0UmVjdCg0MDAsIDM4MCwgNiwgOCksIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShGbG9hdFJlY3QoNDAwLCAzODAsIDYsIDgpLCByb290RGFtYWdlUmVjdCk7CiB9CiAKIFRF
U1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JNdWx0aXBsZUxheWVycykK
QEAgLTYxNSw3ICs2MTQsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFt
YWdlRm9yTXVsdGlwbGVMYXllcnMpCiAgICAgY2hpbGQyLT5zZXRVcGRhdGVSZWN0KEZsb2F0UmVj
dCgwLCAwLCAzLCA0KSk7CiAgICAgZW11bGF0ZURyYXdpbmdPbmVGcmFtZShyb290LmdldCgpKTsK
ICAgICBGbG9hdFJlY3Qgcm9vdERhbWFnZVJlY3QgPSByb290LT5yZW5kZXJTdXJmYWNlKCktPmRh
bWFnZVRyYWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3QoKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVD
VF9FUShGbG9hdFJlY3QoMTAwLCAxMDAsIDMwMywgMjg0KSwgcm9vdERhbWFnZVJlY3QpOworICAg
IEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgxMDAsIDEwMCwgMzAzLCAyODQpLCByb290RGFtYWdl
UmVjdCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JO
ZXN0ZWRTdXJmYWNlcykKQEAgLTYzNCw4ICs2MzMsOCBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2Vy
VGVzdCwgdmVyaWZ5RGFtYWdlRm9yTmVzdGVkU3VyZmFjZXMpCiAgICAgZW11bGF0ZURyYXdpbmdP
bmVGcmFtZShyb290LmdldCgpKTsKICAgICBjaGlsZERhbWFnZVJlY3QgPSBjaGlsZDEtPnJlbmRl
clN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgpOwogICAgIHJv
b3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1
cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDIw
MCwgMjAwLCA2LCA4KSwgY2hpbGREYW1hZ2VSZWN0KTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9F
UShGbG9hdFJlY3QoMzAwLCAzMDAsIDYsIDgpLCByb290RGFtYWdlUmVjdCk7CisgICAgRVhQRUNU
X1JFQ1RfRVEoRmxvYXRSZWN0KDIwMCwgMjAwLCA2LCA4KSwgY2hpbGREYW1hZ2VSZWN0KTsKKyAg
ICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMzAwLCAzMDAsIDYsIDgpLCByb290RGFtYWdlUmVj
dCk7CiAKICAgICAvLyBDQVNFIDI6IFNhbWUgYXMgcHJldmlvdXMgY2FzZSwgYnV0IHdpdGggYWRk
aXRpb25hbCBkYW1hZ2UgZWxzZXdoZXJlIHRoYXQgc2hvdWxkIGJlIHByb3Blcmx5IHVuaW9uZWQu
CiAgICAgLy8gLSBjaGlsZDEgc3VyZmFjZSBkYW1hZ2UgaW4gcm9vdCBzdXJmYWNlIHNwYWNlOiBG
bG9hdFJlY3QoMzAwLCAzMDAsIDYsIDgpOwpAQCAtNjQ2LDggKzY0NSw4IEBAIFRFU1RfRihDQ0Rh
bWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JOZXN0ZWRTdXJmYWNlcykKICAgICBlbXVs
YXRlRHJhd2luZ09uZUZyYW1lKHJvb3QuZ2V0KCkpOwogICAgIGNoaWxkRGFtYWdlUmVjdCA9IGNo
aWxkMS0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0
KCk7CiAgICAgcm9vdERhbWFnZVJlY3QgPSByb290LT5yZW5kZXJTdXJmYWNlKCktPmRhbWFnZVRy
YWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3QoKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShG
bG9hdFJlY3QoMjAwLCAyMDAsIDYsIDgpLCBjaGlsZERhbWFnZVJlY3QpOwotICAgIEVYUEVDVF9G
TE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgxMSwgMTEsIDI5NSwgMjk3KSwgcm9vdERhbWFnZVJlY3Qp
OworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgyMDAsIDIwMCwgNiwgOCksIGNoaWxkRGFt
YWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRSZWN0KDExLCAxMSwgMjk1LCAyOTcp
LCByb290RGFtYWdlUmVjdCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJp
ZnlEYW1hZ2VGb3JTdXJmYWNlQ2hhbmdlRnJvbURlc2NlbmRhbnRMYXllcikKQEAgLTY3MiwxMSAr
NjcxLDExIEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JTdXJm
YWNlQ2hhbmdlRnJvbURlc2NlbmRhbnRMYXllcikKICAgICByb290RGFtYWdlUmVjdCA9IHJvb3Qt
PnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgpOwog
CiAgICAgLy8gVGhlIG5ldyBzdXJmYWNlIGJvdW5kcyBzaG91bGQgYmUgZGFtYWdlZCBlbnRpcmVs
eSwgZXZlbiB0aG91Z2ggb25seSBvbmUgb2YgdGhlIGxheWVycyBjaGFuZ2VkLgotICAgIEVYUEVD
VF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgxOTAsIDE5MCwgMTEsIDIzKSwgY2hpbGREYW1hZ2VS
ZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMTkwLCAxOTAsIDExLCAyMyksIGNo
aWxkRGFtYWdlUmVjdCk7CiAKICAgICAvLyBEYW1hZ2UgdG8gdGhlIHJvb3Qgc3VyZmFjZSBzaG91
bGQgYmUgdGhlIHVuaW9uIG9mIGNoaWxkMSdzICplbnRpcmUqIHJlbmRlciBzdXJmYWNlCiAgICAg
Ly8gKGluIHRhcmdldCBzcGFjZSksIGFuZCBpdHMgb2xkIGV4cG9zZWQgYXJlYSAoYWxzbyBpbiB0
YXJnZXQgc3BhY2UpLgotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgyOTAsIDI5
MCwgMTYsIDIzKSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVj
dCgyOTAsIDI5MCwgMTYsIDIzKSwgcm9vdERhbWFnZVJlY3QpOwogfQogCiBURVNUX0YoQ0NEYW1h
Z2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yU3VyZmFjZUNoYW5nZUZyb21BbmNlc3Rvckxh
eWVyKQpAQCAtNzA0LDEyICs3MDMsMTIgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZl
cmlmeURhbWFnZUZvclN1cmZhY2VDaGFuZ2VGcm9tQW5jZXN0b3JMYXllcikKICAgICByb290RGFt
YWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50
RGFtYWdlUmVjdCgpOwogCiAgICAgLy8gVGhlIG5ldyBzdXJmYWNlIGJvdW5kcyBzaG91bGQgYmUg
ZGFtYWdlZCBlbnRpcmVseS4KLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMTkw
LCAxOTAsIDE2LCAxOCksIGNoaWxkRGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxv
YXRSZWN0KDE5MCwgMTkwLCAxNiwgMTgpLCBjaGlsZERhbWFnZVJlY3QpOwogCiAgICAgLy8gVGhl
IGVudGlyZSBjaGlsZDEgc3VyZmFjZSBhbmQgdGhlIG9sZCBleHBvc2VkIGNoaWxkMSBzdXJmYWNl
IHNob3VsZCBkYW1hZ2UgdGhlIHJvb3Qgc3VyZmFjZS4KICAgICAvLyAgLSBvbGQgY2hpbGQxIHN1
cmZhY2UgaW4gdGFyZ2V0IHNwYWNlOiBGbG9hdFJlY3QoMjkwLCAyOTAsIDE2LCAxOCkKICAgICAv
LyAgLSBuZXcgY2hpbGQxIHN1cmZhY2UgaW4gdGFyZ2V0IHNwYWNlOiBGbG9hdFJlY3QoMjQwLCAy
NDAsIDE2LCAxOCkKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMjQwLCAyNDAs
IDY2LCA2OCksIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3Qo
MjQwLCAyNDAsIDY2LCA2OCksIHJvb3REYW1hZ2VSZWN0KTsKIH0KIAogVEVTVF9GKENDRGFtYWdl
VHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvckFkZGluZ0FuZFJlbW92aW5nUmVuZGVyU3VyZmFj
ZXMpCkBAIC03MzAsNyArNzI5LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlm
eURhbWFnZUZvckFkZGluZ0FuZFJlbW92aW5nUmVuZGVyU3VyZmFjZXMpCiAgICAgQVNTRVJUX0VR
KDR1LCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7CiAKICAgICBy
b290RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5j
dXJyZW50RGFtYWdlUmVjdCgpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgy
OTAsIDI5MCwgMTYsIDE4KSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZs
b2F0UmVjdCgyOTAsIDI5MCwgMTYsIDE4KSwgcm9vdERhbWFnZVJlY3QpOwogCiAgICAgLy8gQ0FT
RSAyOiBJZiBhIGRlc2NlbmRhbnQgc3VyZmFjZSBhcHBlYXJzLCBpdHMgZW50aXJlIG9sZCBhcmVh
IGJlY29tZXMgZXhwb3NlZC4KIApAQCAtNzUyLDggKzc1MSw4IEBAIFRFU1RfRihDQ0RhbWFnZVRy
YWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JBZGRpbmdBbmRSZW1vdmluZ1JlbmRlclN1cmZhY2Vz
KQogCiAgICAgY2hpbGREYW1hZ2VSZWN0ID0gY2hpbGQxLT5yZW5kZXJTdXJmYWNlKCktPmRhbWFn
ZVRyYWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3QoKTsKICAgICByb290RGFtYWdlUmVjdCA9IHJv
b3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgp
OwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgxOTAsIDE5MCwgMTYsIDE4KSwg
Y2hpbGREYW1hZ2VSZWN0KTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMjkw
LCAyOTAsIDE2LCAxOCksIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9h
dFJlY3QoMTkwLCAxOTAsIDE2LCAxOCksIGNoaWxkRGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoRmxvYXRSZWN0KDI5MCwgMjkwLCAxNiwgMTgpLCByb290RGFtYWdlUmVjdCk7CiB9CiAK
IFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlOb0RhbWFnZVdoZW5Ob3RoaW5nQ2hh
bmdlZCkKQEAgLTg0Niw5ICs4NDUsOSBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVy
aWZ5RGFtYWdlRm9yUmVwbGljYSkKIAogICAgIC8vIFRoZSBncmFuZENoaWxkIHN1cmZhY2UgZGFt
YWdlIHNob3VsZCBub3QgaW5jbHVkZSBpdHMgb3duIHJlcGxpY2EuIFRoZSBjaGlsZAogICAgIC8v
IHN1cmZhY2UgZGFtYWdlIHNob3VsZCBpbmNsdWRlIHRoZSBub3JtYWwgYW5kIHJlcGxpY2Egc3Vy
ZmFjZXMuCi0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDYsIDgpLCBn
cmFuZENoaWxkRGFtYWdlUmVjdCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0
KDE5NCwgMjAwLCAxMiwgOCksIGNoaWxkRGFtYWdlUmVjdCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JF
Q1RfRVEoRmxvYXRSZWN0KDI5NCwgMzAwLCAxMiwgOCksIHJvb3REYW1hZ2VSZWN0KTsKKyAgICBF
WFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgNiwgOCksIGdyYW5kQ2hpbGREYW1hZ2VSZWN0
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMTk0LCAyMDAsIDEyLCA4KSwgY2hpbGRE
YW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMjk0LCAzMDAsIDEyLCA4
KSwgcm9vdERhbWFnZVJlY3QpOwogCiAgICAgLy8gQ0FTRSAyOiBtb3ZpbmcgdGhlIGRlc2NlbmRh
bnQgc3VyZmFjZSBzaG91bGQgY2F1c2UgYm90aCB0aGUgb3JpZ2luYWwgYW5kIHJlZmxlY3RlZAog
ICAgIC8vICAgICAgICAgYXJlYXMgdG8gYmUgZGFtYWdlZCBvbiB0aGUgdGFyZ2V0LgpAQCAtODY2
LDkgKzg2NSw5IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JS
ZXBsaWNhKQogICAgIC8vIFRoZSBjaGlsZCBzdXJmYWNlIGRhbWFnZSBzaG91bGQgaW5jbHVkZSBu
b3JtYWwgYW5kIHJlcGxpY2Egc3VyZmFjZXMgZm9yIGJvdGggb2xkIGFuZCBuZXcgbG9jYXRpb25z
LgogICAgIC8vICAtIG9sZCBsb2NhdGlvbiBpbiB0YXJnZXQgc3BhY2U6IEZsb2F0UmVjdCgxOTQs
IDIwMCwgMTIsIDgpCiAgICAgLy8gIC0gbmV3IGxvY2F0aW9uIGluIHRhcmdldCBzcGFjZTogRmxv
YXRSZWN0KDE4OSwgMjA1LCAxMiwgOCkKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJl
Y3QoMCwgMCwgNiwgOCksIGdyYW5kQ2hpbGREYW1hZ2VSZWN0KTsKLSAgICBFWFBFQ1RfRkxPQVRf
UkVDVF9FUShGbG9hdFJlY3QoMTg5LCAyMDAsIDE3LCAxMyksIGNoaWxkRGFtYWdlUmVjdCk7Ci0g
ICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDI4OSwgMzAwLCAxNywgMTMpLCByb290
RGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDYsIDgpLCBn
cmFuZENoaWxkRGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRSZWN0KDE4OSwg
MjAwLCAxNywgMTMpLCBjaGlsZERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0
UmVjdCgyODksIDMwMCwgMTcsIDEzKSwgcm9vdERhbWFnZVJlY3QpOwogCiAgICAgLy8gQ0FTRSAz
OiByZW1vdmluZyB0aGUgcmVmbGVjdGlvbiBzaG91bGQgY2F1c2UgdGhlIGVudGlyZSByZWdpb24g
aW5jbHVkaW5nIHJlZmxlY3Rpb24KICAgICAvLyAgICAgICAgIHRvIGRhbWFnZSB0aGUgdGFyZ2V0
IHN1cmZhY2UuCkBAIC04ODIsOCArODgxLDggQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3Qs
IHZlcmlmeURhbWFnZUZvclJlcGxpY2EpCiAgICAgY2hpbGREYW1hZ2VSZWN0ID0gY2hpbGQxLT5y
ZW5kZXJTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3QoKTsKICAg
ICByb290RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigp
LT5jdXJyZW50RGFtYWdlUmVjdCgpOwogCi0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRS
ZWN0KDE4OSwgMjA1LCAxMiwgOCksIGNoaWxkRGFtYWdlUmVjdCk7Ci0gICAgRVhQRUNUX0ZMT0FU
X1JFQ1RfRVEoRmxvYXRSZWN0KDI4OSwgMzA1LCAxMiwgOCksIHJvb3REYW1hZ2VSZWN0KTsKKyAg
ICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMTg5LCAyMDUsIDEyLCA4KSwgY2hpbGREYW1hZ2VS
ZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMjg5LCAzMDUsIDEyLCA4KSwgcm9v
dERhbWFnZVJlY3QpOwogfQogCiBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFt
YWdlRm9yTWFzaykKQEAgLTkyOSw3ICs5MjgsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVz
dCwgdmVyaWZ5RGFtYWdlRm9yTWFzaykKICAgICBtYXNrTGF5ZXItPnNldFVwZGF0ZVJlY3QoRmxv
YXRSZWN0KDEsIDIsIDMsIDQpKTsKICAgICBlbXVsYXRlRHJhd2luZ09uZUZyYW1lKHJvb3QuZ2V0
KCkpOwogICAgIEZsb2F0UmVjdCBjaGlsZERhbWFnZVJlY3QgPSBjaGlsZC0+cmVuZGVyU3VyZmFj
ZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZM
T0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDMwLCAzMCksIGNoaWxkRGFtYWdlUmVjdCk7Cisg
ICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDMwLCAzMCksIGNoaWxkRGFtYWdlUmVj
dCk7CiAKICAgICAvLyBDQVNFIDI6IGEgcHJvcGVydHkgY2hhbmdlIG9uIHRoZSBtYXNrIGxheWVy
IHNob3VsZCBkYW1hZ2UgdGhlIGVudGlyZSB0YXJnZXQgc3VyZmFjZS4KICAgICAvLwpAQCAtOTQ2
LDcgKzk0NSw3IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JN
YXNrKQogCiAgICAgZW11bGF0ZURyYXdpbmdPbmVGcmFtZShyb290LmdldCgpKTsKICAgICBjaGls
ZERhbWFnZVJlY3QgPSBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1
cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAs
IDAsIDMwLCAzMCksIGNoaWxkRGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRS
ZWN0KDAsIDAsIDMwLCAzMCksIGNoaWxkRGFtYWdlUmVjdCk7CiAKICAgICAvLyBDQVNFIDM6IHJl
bW92aW5nIHRoZSBtYXNrIGFsc28gZGFtYWdlcyB0aGUgZW50aXJlIHRhcmdldCBzdXJmYWNlLgog
ICAgIC8vCkBAIC05NjcsNyArOTY2LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZl
cmlmeURhbWFnZUZvck1hc2spCiAgICAgQVNTRVJUX1RSVUUoY2hpbGQtPnJlbmRlclN1cmZhY2Uo
KSk7CiAKICAgICBjaGlsZERhbWFnZVJlY3QgPSBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1h
Z2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1Rf
RVEoRmxvYXRSZWN0KDAsIDAsIDMwLCAzMCksIGNoaWxkRGFtYWdlUmVjdCk7CisgICAgRVhQRUNU
X1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDMwLCAzMCksIGNoaWxkRGFtYWdlUmVjdCk7CiB9CiAK
IFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JSZXBsaWNhTWFzaykK
QEAgLTEwMTgsNyArMTAxNyw3IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlE
YW1hZ2VGb3JSZXBsaWNhTWFzaykKICAgICBGbG9hdFJlY3QgY2hpbGREYW1hZ2VSZWN0ID0gY2hp
bGQxLT5yZW5kZXJTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3Qo
KTsKIAogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGREYW1hZ2VSZWN0LmlzRW1wdHkoKSk7Ci0g
ICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDE5NCwgMjAwLCA2LCA4KSwgY2hpbGRE
YW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMTk0LCAyMDAsIDYsIDgp
LCBjaGlsZERhbWFnZVJlY3QpOwogCiAgICAgLy8gQ0FTRSAyOiByZW1vdmluZyB0aGUgcmVwbGlj
YSBtYXNrIGRhbWFnZXMgb25seSB0aGUgcmVmbGVjdGVkIHJlZ2lvbiBvbiB0aGUgdGFyZ2V0IHN1
cmZhY2UuCiAgICAgLy8KQEAgLTEwMzAsNyArMTAyOSw3IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNr
ZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JSZXBsaWNhTWFzaykKICAgICBjaGlsZERhbWFnZVJlY3Qg
PSBjaGlsZDEtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdl
UmVjdCgpOwogCiAgICAgRVhQRUNUX1RSVUUoZ3JhbmRDaGlsZERhbWFnZVJlY3QuaXNFbXB0eSgp
KTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMTk0LCAyMDAsIDYsIDgpLCBj
aGlsZERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgxOTQsIDIwMCwg
NiwgOCksIGNoaWxkRGFtYWdlUmVjdCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0
LCB2ZXJpZnlEYW1hZ2VGb3JSZXBsaWNhTWFza1dpdGhBbmNob3IpCkBAIC0xMDc4LDcgKzEwNzcs
NyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yUmVwbGljYU1h
c2tXaXRoQW5jaG9yKQogICAgIGVtdWxhdGVEcmF3aW5nT25lRnJhbWUocm9vdC5nZXQoKSk7CiAK
ICAgICBGbG9hdFJlY3QgY2hpbGREYW1hZ2VSZWN0ID0gY2hpbGQxLT5yZW5kZXJTdXJmYWNlKCkt
PmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVudERhbWFnZVJlY3QoKTsKLSAgICBFWFBFQ1RfRkxPQVRf
UkVDVF9FUShGbG9hdFJlY3QoMjA2LCAyMDAsIDYsIDgpLCBjaGlsZERhbWFnZVJlY3QpOworICAg
IEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdCgyMDYsIDIwMCwgNiwgOCksIGNoaWxkRGFtYWdlUmVj
dCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VXaGVuRm9y
Y2VkRnVsbERhbWFnZSkKQEAgLTEwOTQsNyArMTA5Myw3IEBAIFRFU1RfRihDQ0RhbWFnZVRyYWNr
ZXJUZXN0LCB2ZXJpZnlEYW1hZ2VXaGVuRm9yY2VkRnVsbERhbWFnZSkKICAgICByb290LT5yZW5k
ZXJTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+Zm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZSgp
OwogICAgIGVtdWxhdGVEcmF3aW5nT25lRnJhbWUocm9vdC5nZXQoKSk7CiAgICAgRmxvYXRSZWN0
IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCkt
PmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0
KDAsIDAsIDUwMCwgNTAwKSwgcm9vdERhbWFnZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKEZs
b2F0UmVjdCgwLCAwLCA1MDAsIDUwMCksIHJvb3REYW1hZ2VSZWN0KTsKIAogICAgIC8vIENhc2Ug
MjogQW4gYWRkaXRpb25hbCBzYW5pdHkgY2hlY2sgdGhhdCBmb3JjaW5nIGZ1bGwgZGFtYWdlIHdv
cmtzIGV2ZW4gd2hlbiBub3RoaW5nCiAgICAgLy8gICAgICAgICBvbiB0aGUgbGF5ZXIgdHJlZSBj
aGFuZ2VkLgpAQCAtMTEwMyw3ICsxMTAyLDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3Qs
IHZlcmlmeURhbWFnZVdoZW5Gb3JjZWRGdWxsRGFtYWdlKQogICAgIHJvb3QtPnJlbmRlclN1cmZh
Y2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5mb3JjZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlKCk7CiAgICAg
ZW11bGF0ZURyYXdpbmdPbmVGcmFtZShyb290LmdldCgpKTsKICAgICByb290RGFtYWdlUmVjdCA9
IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVj
dCgpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgwLCAwLCA1MDAsIDUwMCks
IHJvb3REYW1hZ2VSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgNTAw
LCA1MDApLCByb290RGFtYWdlUmVjdCk7CiB9CiAKIFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0
LCB2ZXJpZnlEYW1hZ2VGb3JFbXB0eUxheWVyTGlzdCkKQEAgLTExMzYsMTMgKzExMzUsMTMgQEAg
VEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUFjY3VtdWxhdGVzVW50aWxS
ZXNldCkKIAogICAgIC8vIFNhbml0eSBjaGVjayBkYW1hZ2UgYWZ0ZXIgdGhlIGZpcnN0IGZyYW1l
OyB0aGlzIGlzbnQgdGhlIGFjdHVhbCB0ZXN0IHlldC4KICAgICBGbG9hdFJlY3Qgcm9vdERhbWFn
ZVJlY3QgPSByb290LT5yZW5kZXJTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVudERh
bWFnZVJlY3QoKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMTEwLCAxMTEs
IDEsIDIpLCByb290RGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRSZWN0KDEx
MCwgMTExLCAxLCAyKSwgcm9vdERhbWFnZVJlY3QpOwogCiAgICAgLy8gTmV3IGRhbWFnZSwgd2l0
aG91dCBoYXZpbmcgY2xlYXJlZCB0aGUgcHJldmlvdXMgZGFtYWdlLCBzaG91bGQgYmUgdW5pb25l
ZCB0byB0aGUgcHJldmlvdXMgb25lLgogICAgIGNoaWxkLT5zZXRVcGRhdGVSZWN0KEZsb2F0UmVj
dCgyMCwgMjUsIDEsIDIpKTsKICAgICBlbXVsYXRlRHJhd2luZ09uZUZyYW1lKHJvb3QuZ2V0KCkp
OwogICAgIHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFj
a2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxv
YXRSZWN0KDExMCwgMTExLCAxMSwgMTYpLCByb290RGFtYWdlUmVjdCk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoRmxvYXRSZWN0KDExMCwgMTExLCAxMSwgMTYpLCByb290RGFtYWdlUmVjdCk7CiAKICAg
ICAvLyBJZiB3ZSBub3RpZnkgdGhlIGRhbWFnZSB0cmFja2VyIHRoYXQgd2UgZHJldyB0aGUgZGFt
YWdlZCBhcmVhLCB0aGVuIGRhbWFnZSBzaG91bGQgYmUgZW1wdGllZC4KICAgICByb290LT5yZW5k
ZXJTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+ZGlkRHJhd0RhbWFnZWRBcmVhKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMTdmYzY0M2ZmNjFmMTRhOTNjMjFkMDA5OWY0M2UxNjljMzllNWEzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5
VGVzdFV0aWxzLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJDQ0dlb21ldHJ5VGVzdFV0aWxzLmgiCisKKyNpbmNsdWRl
IDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oPgorCituYW1lc3BhY2UgV2ViS2l0VGVzdHMgeworCit2b2lkIEV4cGVjdFRyYW5zZm9ybWF0
aW9uTWF0cml4RXEoY29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZXhwZWN0
ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgYWN0dWFsKQoreworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhw
ZWN0ZWQpLm0xMSgpLCAoYWN0dWFsKS5tMTEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBl
Y3RlZCkubTEyKCksIChhY3R1YWwpLm0xMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVj
dGVkKS5tMTMoKSwgKGFjdHVhbCkubTEzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0
ZWQpLm0xNCgpLCAoYWN0dWFsKS5tMTQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3Rl
ZCkubTIxKCksIChhY3R1YWwpLm0yMSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVk
KS5tMjIoKSwgKGFjdHVhbCkubTIyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQp
Lm0yMygpLCAoYWN0dWFsKS5tMjMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCku
bTI0KCksIChhY3R1YWwpLm0yNCgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5t
MzEoKSwgKGFjdHVhbCkubTMxKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0z
MigpLCAoYWN0dWFsKS5tMzIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMz
KCksIChhY3R1YWwpLm0zMygpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzQo
KSwgKGFjdHVhbCkubTM0KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MSgp
LCAoYWN0dWFsKS5tNDEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQyKCks
IChhY3R1YWwpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDMoKSwg
KGFjdHVhbCkubTQzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00NCgpLCAo
YWN0dWFsKS5tNDQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdFRlc3RzCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NHZW9tZXRyeVRlc3RVdGlscy5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjc4OWRjMjlhZDQ4ZDc3Njk4ODY5ODFhMzFkNjljOGYxNjQwMjU2OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NHZW9tZXRyeVRlc3RV
dGlscy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0NHZW9tZXRy
eVRlc3RVdGlsc19oCisjZGVmaW5lIENDR2VvbWV0cnlUZXN0VXRpbHNfaAorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK2NsYXNzIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OworfQorCituYW1lc3BhY2Ug
V2ViS2l0VGVzdHMgeworCisjZGVmaW5lIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5s
b2NhdGlvbigpLngoKSwgKGFjdHVhbCkubG9jYXRpb24oKS54KCkpOyAgICAgIFwKKyAgICBFWFBF
Q1RfRVEoKGV4cGVjdGVkKS5sb2NhdGlvbigpLnkoKSwgKGFjdHVhbCkubG9jYXRpb24oKS55KCkp
OyAgICAgIFwKKyAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkud2lkdGgoKSwgKGFjdHVh
bCkuc2l6ZSgpLndpZHRoKCkpOyAgICAgIFwKKyAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXpl
KCkuaGVpZ2h0KCksIChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKKworLy8gVGhpcyBpcyBhIGZ1
bmN0aW9uIHJhdGhlciB0aGFuIGEgbWFjcm8gYmVjYXVzZSB3aGVuIHRoaXMgaXMgaW5jbHVkZWQg
YXMgYSBtYWNybworLy8gaW4gYnVsaywgaXQgY2F1c2VzIGEgc2lnbmlmaWNhbnQgc2xvdy1kb3du
IGluIGNvbXBpbGF0aW9uIHRpbWUuIFRoaXMgcHJvYmxlbQorLy8gZXhpc3RzIHdpdGggYm90aCBn
Y2MgYW5kIGNsYW5nLCBhbmQgYnVncyBoYXZlIGJlZW4gZmlsZWQgYXQKKy8vIGh0dHA6Ly9sbHZt
Lm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMzY1MSBhbmQgaHR0cDovL2djYy5nbnUub3JnL2J1
Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD01NDMzNwordm9pZCBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1h
dHJpeEVxKGNvbnN0IFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIGV4cGVjdGVkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViVHJhbnNm
b3JtYXRpb25NYXRyaXgmIGFjdHVhbCk7CisKKyNkZWZpbmUgRVhQRUNUX1RSQU5TRk9STUFUSU9O
X01BVFJJWF9FUShleHBlY3RlZCwgYWN0dWFsKSAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5zZm9ybWF0aW9u
TWF0cml4RXEoZXhwZWN0ZWQsIGFjdHVhbCk7IFwKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdFRlc3RzCisKKyNlbmRpZiAvLyBDQ0dlb21ldHJ5VGVzdFV0aWxzX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QuY3BwCmluZGV4IGRiZjI4ZTQ5NTk1ODQwNzBjOWFmZGIyMWVmMjZhNjZmYzdkZTk4YTIuLjU1
NzJmODgyMzQ0ZTFlMzNiMWRkZGIwNGRmZWQ0ZDE2MzM3NzU4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LmNwcApAQCAtMjcsMTcgKzI3LDE2IEBACiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmgiCiAKICNpbmNsdWRlICJDQ0FuaW1hdGlvblRlc3RDb21tb24uaCIKKyNpbmNsdWRlICJDQ0dl
b21ldHJ5VGVzdFV0aWxzLmgiCiAjaW5jbHVkZSAiQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJDQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgIkNDTGF5ZXJTb3J0ZXIuaCIK
LSNpbmNsdWRlICJDQ0xheWVyVHJlZVRlc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ01hdGhVdGls
LmgiCiAjaW5jbHVkZSAiQ0NQcm94eS5oIgogI2luY2x1ZGUgIkNDU2luZ2xlVGhyZWFkUHJveHku
aCIKICNpbmNsdWRlICJDQ1RocmVhZC5oIgogI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVt
LmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgotCiAjaW5jbHVkZSA8Z21vY2svZ21vY2su
aD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeC5oPgpAQCAtNDYsMjcgKzQ1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0VGVzdHM7CiB1c2luZyBXZWJLaXQ6OldlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4OwogCi12b2lkIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlv
bk1hdHJpeEVxKFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGV4cGVjdGVkLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBhY3R1YWwpCi17Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTExKCksIChhY3R1
YWwpLm0xMSgpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTIoKSwgKGFjdHVh
bCkubTEyKCkpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMygpLCAoYWN0dWFs
KS5tMTMoKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTE0KCksIChhY3R1YWwp
Lm0xNCgpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjEoKSwgKGFjdHVhbCku
bTIxKCkpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMigpLCAoYWN0dWFsKS5t
MjIoKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIzKCksIChhY3R1YWwpLm0y
MygpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjQoKSwgKGFjdHVhbCkubTI0
KCkpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMSgpLCAoYWN0dWFsKS5tMzEo
KSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMyKCksIChhY3R1YWwpLm0zMigp
KTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzMoKSwgKGFjdHVhbCkubTMzKCkp
OwotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zNCgpLCAoYWN0dWFsKS5tMzQoKSk7
Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQxKCksIChhY3R1YWwpLm00MSgpKTsK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDIoKSwgKGFjdHVhbCkubTQyKCkpOwot
ICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMoKSk7Ci0g
ICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQ0KCksIChhY3R1YWwpLm00NCgpKTsKLX0K
LQogbmFtZXNwYWNlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlPgpAQCAtMTQ3OCw5
ICsxNDU2LDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJs
ZUNvbnRlbnRSZWN0Rm9yTGF5ZXJzKQogICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXMocGFyZW50LmdldCgpLCBwYXJlbnQtPmJvdW5kcygpLCAxLCBkdW1t
eU1heFRleHR1cmVTaXplLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBDQ0xheWVyVHJl
ZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0cyhyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0
KTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KDUsIDUpLCBJbnRT
aXplKDEwLCAxMCkpLCBncmFuZENoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdChJbnRQb2ludCgxNSwgMTUpLCBJbnRTaXplKDUsIDUp
KSwgZ3JhbmRDaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoSW50UG9pbnQoMTUsIDE1KSwgSW50U2l6ZSg1LCA1KSksIGdyYW5kQ2hp
bGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
SW50UG9pbnQoNSwgNSksIEludFNpemUoMTAsIDEwKSksIGdyYW5kQ2hpbGQxLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMTUsIDE1
KSwgSW50U2l6ZSg1LCA1KSksIGdyYW5kQ2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwor
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMTUsIDE1KSwgSW50U2l6ZSg1LCA1
KSksIGdyYW5kQ2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIEVYUEVDVF9UUlVF
KGdyYW5kQ2hpbGQ0LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKIH0KIApAQCAt
MTU1MCw5ICsxNTI4LDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlD
bGlwUmVjdElzUHJvcGFnYXRlZENvcnJlY3RseVRvU3VyZmFjZXMpCiAgICAgRVhQRUNUX0ZBTFNF
KGdyYW5kQ2hpbGQ0LT5yZW5kZXJTdXJmYWNlKCkpOyAvLyBCZWNhdXNlIGdyYW5kQ2hpbGQ0IGlz
IGVudGlyZWx5IGNsaXBwZWQsIGl0IGlzIGV4cGVjdGVkIHRvIG5vdCBoYXZlIGEgcmVuZGVyU3Vy
ZmFjZS4KIAogICAgIC8vIFN1cmZhY2VzIGFyZSBjbGlwcGVkIGJ5IHRoZWlyIHBhcmVudCwgYnV0
IHVuLWFmZmVjdGVkIGJ5IHRoZSBvd25pbmcgbGF5ZXIncyBtYXNrc1RvQm91bmRzLgotICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKDIwLCAyMCkp
LCBncmFuZENoaWxkMS0+cmVuZGVyU3VyZmFjZSgpLT5jbGlwUmVjdCgpKTsKLSAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMCwgMjApKSwgZ3Jh
bmRDaGlsZDItPnJlbmRlclN1cmZhY2UoKS0+Y2xpcFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSksIGdyYW5kQ2hp
bGQzLT5yZW5kZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSksIGdyYW5kQ2hpbGQxLT5yZW5k
ZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50
UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSksIGdyYW5kQ2hpbGQyLT5yZW5kZXJTdXJmYWNl
KCktPmNsaXBSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMCwg
MCksIEludFNpemUoMjAsIDIwKSksIGdyYW5kQ2hpbGQzLT5yZW5kZXJTdXJmYWNlKCktPmNsaXBS
ZWN0KCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUFuaW1h
dGlvbnNGb3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5KQpAQCAtMTcwNyw3ICsxNjg1LDcgQEAgVEVT
VChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcklkZW50aXR5
VHJhbnNmb3JtKQogICAgIEludFJlY3QgbGF5ZXJDb250ZW50UmVjdCA9IEludFJlY3QoSW50UG9p
bnQoMTAsIDEwKSwgSW50U2l6ZSgzMCwgMzApKTsKICAgICBJbnRSZWN0IGV4cGVjdGVkID0gSW50
UmVjdChJbnRQb2ludCgxMCwgMTApLCBJbnRTaXplKDMwLCAzMCkpOwogICAgIEludFJlY3QgYWN0
dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRT
dXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwot
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAogICAgIC8vIENhc2UgMjogTGF5ZXIgaXMgb3V0c2lk
ZSB0aGUgc3VyZmFjZSByZWN0LgogICAgIGxheWVyQ29udGVudFJlY3QgPSBJbnRSZWN0KEludFBv
aW50KDEyMCwgMTIwKSwgSW50U2l6ZSgzMCwgMzApKTsKQEAgLTE3MTgsNyArMTY5Niw3IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3JJZGVudGl0
eVRyYW5zZm9ybSkKICAgICBsYXllckNvbnRlbnRSZWN0ID0gSW50UmVjdChJbnRQb2ludCg4MCwg
ODApLCBJbnRTaXplKDMwLCAzMCkpOwogICAgIGV4cGVjdGVkID0gSW50UmVjdChJbnRQb2ludCg4
MCwgODApLCBJbnRTaXplKDIwLCAyMCkpOwogICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENv
bW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVu
dFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
ZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7
CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RG
b3JUcmFuc2xhdGlvbnMpCkBAIC0xNzM0LDcgKzE3MTIsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yVHJhbnNsYXRpb25zKQogICAgIGxheWVy
VG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZSgxMCwgMTApOwogICAgIEludFJlY3QgZXhwZWN0
ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKDMwLCAzMCkpOwogICAgIEludFJl
Y3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0
YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zv
cm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAogICAgIC8vIENhc2UgMjogTGF5ZXIgaXMg
b3V0c2lkZSB0aGUgc3VyZmFjZSByZWN0LgogICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1h
a2VJZGVudGl0eSgpOwpAQCAtMTc0Nyw3ICsxNzI1LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvclRyYW5zbGF0aW9ucykKICAgICBsYXllclRv
U3VyZmFjZVRyYW5zZm9ybS50cmFuc2xhdGUoODAsIDgwKTsKICAgICBleHBlY3RlZCA9IEludFJl
Y3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSk7CiAgICAgYWN0dWFsID0gQ0NMYXll
clRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwg
bGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3Rl
ZCwgYWN0dWFsKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlW
aXNpYmxlUmVjdEZvcjJEUm90YXRpb25zKQpAQCAtMTc2NSw3ICsxNzQzLDcgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjJEUm90YXRpb25zKQog
ICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0ZSg0NSk7CiAgICAgSW50UmVjdCBleHBl
Y3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMzAsIDMwKSk7CiAgICAgSW50
UmVjdCBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0
KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5z
Zm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAgIEVY
UEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogCiAgICAgLy8gQ2FzZSAyOiBMYXllciBp
cyBvdXRzaWRlIHRoZSBzdXJmYWNlIHJlY3QuCiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0u
bWFrZUlkZW50aXR5KCk7CkBAIC0xNzgzLDcgKzE3NjEsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yMkRSb3RhdGlvbnMpCiAgICAgbGF5ZXJU
b1N1cmZhY2VUcmFuc2Zvcm0ucm90YXRlKDQ1KTsKICAgICBleHBlY3RlZCA9IEludFJlY3QoSW50
UG9pbnQoMCwgMCksIEludFNpemUoMzAsIDMwKSk7CiAgICAgYWN0dWFsID0gQ0NMYXllclRyZWVI
b3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJD
b250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0
dWFsKTsKIAogICAgIC8vIENhc2UgNDogVGhlIGxheWVyIGlzIHJvdGF0ZWQgYWJvdXQgaXRzIHRv
cC1sZWZ0IGNvcm5lciwgYW5kIHRyYW5zbGF0ZWQgdXB3YXJkcy4gSW4KICAgICAvLyAgICAgICAg
IHN1cmZhY2Ugc3BhY2UsIHRoZSBsYXllciBpcyBvcmllbnRlZCBkaWFnb25hbGx5LCB3aXRoIG9u
bHkgdGhlIHRvcCBjb3JuZXIKQEAgLTE3OTUsNyArMTc3Myw3IEBAIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IyRFJvdGF0aW9ucykKICAgICBsYXll
clRvU3VyZmFjZVRyYW5zZm9ybS5yb3RhdGUoNDUpOwogICAgIGV4cGVjdGVkID0gSW50UmVjdChJ
bnRQb2ludCgxNSwgMCksIEludFNpemUoMTUsIDMwKSk7IC8vIHJpZ2h0IGhhbGYgb2YgbGF5ZXIg
Ym91bmRzLgogICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlz
aWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJm
YWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7
CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiB9CiAKIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IzZE9ydGhvZ3JhcGhpY1Ry
YW5zZm9ybSkKQEAgLTE4MTEsNyArMTc4OSw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IzZE9ydGhvZ3JhcGhpY1RyYW5zZm9ybSkKICAgICBs
YXllclRvU3VyZmFjZVRyYW5zZm9ybS5yb3RhdGUzZCgwLCA0NSwgMCk7CiAgICAgSW50UmVjdCBl
eHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAxMDApKTsKICAg
ICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJs
ZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNl
VHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7Cisg
ICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiAKICAgICAvLyBDYXNlIDI6IE9y
dGhvZ3JhcGhpYyBwcm9qZWN0aW9uIG9mIGEgbGF5ZXIgcm90YXRlZCBhYm91dCB5LWF4aXMgYnkg
NDUgZGVncmVlcywgYnV0CiAgICAgLy8gICAgICAgICBzaGlmdGVkIHRvIHRoZSBzaWRlIHNvIG9u
bHkgdGhlIHJpZ2h0LWhhbGYgdGhlIGxheWVyIHdvdWxkIGJlIHZpc2libGUgb24KQEAgLTE4MjIs
NyArMTgwMCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJs
ZVJlY3RGb3IzZE9ydGhvZ3JhcGhpY1RyYW5zZm9ybSkKICAgICBsYXllclRvU3VyZmFjZVRyYW5z
Zm9ybS5yb3RhdGUzZCgwLCA0NSwgMCk7IC8vIHJvdGF0ZXMgYWJvdXQgdGhlIGxlZnQgZWRnZSBv
ZiB0aGUgbGF5ZXIKICAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoNTAsIDApLCBJbnRT
aXplKDUwLCAxMDApKTsgLy8gcmlnaHQgaGFsZiBvZiB0aGUgbGF5ZXIuCiAgICAgYWN0dWFsID0g
Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNl
UmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShl
eHBlY3RlZCwgYWN0dWFsKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2
ZXJpZnlWaXNpYmxlUmVjdEZvcjNkUGVyc3BlY3RpdmVUcmFuc2Zvcm0pCkBAIC0xODQ5LDcgKzE4
MjcsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0
Rm9yM2RQZXJzcGVjdGl2ZVRyYW5zZm9ybSkKIAogICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRS
ZWN0KEludFBvaW50KC01MCwgLTUwKSwgSW50U2l6ZSgyMDAsIDIwMCkpOwogICAgIEludFJlY3Qg
YWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJn
ZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0p
OwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1Rf
UkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAogICAgIC8vIENhc2UgMjogc2FtZSBwcm9qZWN0
aW9uIGFzIGJlZm9yZSwgZXhjZXB0IHRoYXQgdGhlIGxheWVyIGlzIGFsc28gdHJhbnNsYXRlZCB0
byB0aGUKICAgICAvLyAgICAgICAgIHNpZGUsIHNvIHRoYXQgb25seSB0aGUgcmlnaHQgaGFsZiBv
ZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIHZpc2libGUuCkBAIC0xODYyLDcgKzE4NDAsNyBAQCBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RQZXJzcGVj
dGl2ZVRyYW5zZm9ybSkKICAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS50cmFuc2xhdGUzZCgt
MjAwLCAwLCAwKTsKICAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoNTAsIC01MCksIElu
dFNpemUoMTAwLCAyMDApKTsgLy8gVGhlIHJpZ2h0IGhhbGYgb2YgdGhlIGxheWVyJ3MgYm91bmRp
bmcgcmVjdC4KICAgICBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZp
c2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3Vy
ZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwp
OworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogfQogCiBURVNUKENDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RPcnRob2dyYXBoaWNJ
c05vdENsaXBwZWRCZWhpbmRTdXJmYWNlKQpAQCAtMTg4NSw3ICsxODYzLDcgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNkT3J0aG9ncmFwaGlj
SXNOb3RDbGlwcGVkQmUKIAogICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50
KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgSW50UmVjdCBhY3R1YWwgPSBDQ0xheWVy
VHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBs
YXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lO
VF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVk
LCBhY3R1YWwpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZp
c2libGVSZWN0Rm9yM2RQZXJzcGVjdGl2ZVdoZW5DbGlwcGVkQnlXKQpAQCAtMTk1MSw3ICsxOTI5
LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZv
clBlcnNwZWN0aXZlVW5wcm9qZWN0aW9uKQogICAgIC8vIHRoYXQgdGhlIGVudGlyZSBsYXllciBz
aG91bGQgc3RpbGwgYmUgY29uc2lkZXJlZCB2aXNpYmxlLgogICAgIEludFJlY3QgZXhwZWN0ZWQg
PSBJbnRSZWN0KEludFBvaW50KC0xMCwgLTEwKSwgSW50U2l6ZSgyMCwgMjApKTsKICAgICBJbnRS
ZWN0IGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3Qo
dGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNm
b3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQ
RUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3RzRm9yU2ltcGxl
TGF5ZXJzKQpAQCAtMTk3MiwyMSArMTk1MCwyMSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvclNpbXBsZUxheQog
CiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShyb290Lmdl
dCgpKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwg
cm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250
ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwg
cm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRS
ZWN0KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29udGVudCBzaG91bGQg
aGF2ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwogCiAgICAgLy8gbGF5ZXIgdmlzaWJsZUNvbnRlbnRSZWN0cyBhcmUgY2xpcHBlZCBieSB0
aGVpciB0YXJnZXRTdXJmYWNlCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
NTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1KSwgY2hpbGQyLT52aXNpYmxlQ29udGVudFJlY3Qo
KSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPnZp
c2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1
LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIEVYUEVDVF9UUlVFKGNo
aWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKIAogICAgIC8vIGxheWVyIGRy
YXdhYmxlQ29udGVudFJlY3RzIGFyZSBub3QgY2xpcHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBjaGlsZDIt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+ZHJhd2FibGVDb250
ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwg
Y2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIH0K
IAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2li
bGVDb250ZW50UmVjdHNGb3JMYXllcnNDbGlwcGVkQnlMYXllcikKQEAgLTIwMTMsMjEgKzE5OTEs
MjEgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZp
c2libGVDb250ZW50UmVjdHNGb3JMYXllcnNDbGkKIAogICAgIEFTU0VSVF9GQUxTRShjaGlsZC0+
cmVuZGVyU3VyZmFjZSgpKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkp
OwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+
ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3
YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29u
dGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3Qo
KSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIGNoaWxkLT52
aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAw
LCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMCwgMCksIGNoaWxkLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAv
LyBBbGwgZ3JhbmRjaGlsZCB2aXNpYmxlQ29udGVudFJlY3RzIHNob3VsZCBiZSBjbGlwcGVkIGJ5
IGNoaWxkLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGdy
YW5kQ2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMjUsIDI1KSwgZ3JhbmRDaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgp
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGdyYW5kQ2hpbGQx
LT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAyNSwgMjUpLCBncmFuZENoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIEVYUEVD
VF9UUlVFKGdyYW5kQ2hpbGQzLT52aXNpYmxlQ29udGVudFJlY3QoKS5pc0VtcHR5KCkpOwogCiAg
ICAgLy8gQWxsIGdyYW5kY2hpbGQgZHJhd2FibGVDb250ZW50UmVjdHMgc2hvdWxkIGFsc28gYmUg
Y2xpcHBlZCBieSBjaGlsZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA1
MCwgNTApLCBncmFuZENoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDI1LCAyNSksIGdyYW5kQ2hpbGQyLT5kcmF3YWJs
ZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUw
KSwgZ3JhbmRDaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCg3NSwgNzUsIDI1LCAyNSksIGdyYW5kQ2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRS
ZWN0KCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkuaXNFbXB0eSgpKTsKIH0KIApAQCAtMjA1NSwyNCArMjAzMywyNCBAQCBURVNUKENDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0Zv
ckxheWVyc0luVQogCiAgICAgQVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZh
Y2UoKSk7CiAKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCks
IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29u
dGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCks
IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50
UmVjdCgpKTsKIAogICAgIC8vIExheWVycyB0aGF0IGRvIG5vdCBkcmF3IGNvbnRlbnQgc2hvdWxk
IGhhdmUgZW1wdHkgdmlzaWJsZUNvbnRlbnRSZWN0cy4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMS0+dmlz
aWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwg
MCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwog
CiAgICAgLy8gQW4gdW5jbGlwcGVkIHN1cmZhY2UgZ3Jvd3MgaXRzIGRyYXdhYmxlQ29udGVudFJl
Y3QgdG8gaW5jbHVkZSBhbGwgZHJhd2FibGUgcmVnaW9ucyBvZiB0aGUgc3VidHJlZS4KLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCAxNzAsIDE3MCksIHJlbmRlclN1cmZhY2Ux
LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCg1LCA1LCAxNzAsIDE3MCksIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJm
YWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBBbGwgbGF5ZXJzIHRoYXQg
ZHJhdyBjb250ZW50IGludG8gdGhlIHVuY2xpcHBlZCBzdXJmYWNlIGFyZSBhbHNvIHVuY2xpcHBl
ZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEt
PnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCA1MCwgNTApLCBjaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDMtPnZpc2libGVDb250ZW50
UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxk
MS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgNTAsIDUwKSwgY2hpbGQyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDMtPnZpc2libGVDb250ZW50UmVjdCgp
KTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxk
MS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg3NSwgNzUsIDUwLCA1MCksIGNoaWxkMi0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3
YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgNTAs
IDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBjaGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5k
cmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvckxheWVyc0luQ2xpcHBl
ZFJlbmRlclN1cmZhY2UpCkBAIC0yMTAwLDI2ICsyMDc4LDI2IEBAIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3RzRm9yTGF5
ZXJzSW5DCiAKICAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgp
KTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9v
dC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50
UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9v
dC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29udGVudCBzaG91bGQgaGF2
ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52aXNpYmxl
Q29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwg
cm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKICAg
ICAvLyBBIGNsaXBwZWQgc3VyZmFjZSBncm93cyBpdHMgZHJhd2FibGVDb250ZW50UmVjdCB0byBp
bmNsdWRlIGFsbCBkcmF3YWJsZSByZWdpb25zIG9mIHRoZSBzdWJ0cmVlLAogICAgIC8vIGJ1dCBh
bHNvIGdldHMgY2xhbXBlZCBieSB0aGUgYW5jZXN0b3IncyBjbGlwLgotICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDUsIDUsIDk1LCA5NSksIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJm
YWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCg1LCA1LCA5NSwgOTUpLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJs
ZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQWxsIGxheWVycyB0aGF0IGRyYXcgY29udGVudCBp
bnRvIHRoZSBzdXJmYWNlIGhhdmUgdGhlaXIgdmlzaWJsZUNvbnRlbnRSZWN0IGNsaXBwZWQgYnkg
dGhlIHN1cmZhY2UgY2xpcFJlY3QuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1KSwgY2hpbGQyLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEt
PnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDI1LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIEVYUEVDVF9UUlVF
KGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKIAogICAgIC8vIEJ1dCB0
aGUgZHJhd2FibGVDb250ZW50UmVjdHMgYXJlIHVuY2xpcHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCg1LCA1LCA1MCwgNTApLCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3Qo
KSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBjaGls
ZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxkMS0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUw
KSwgY2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsK
IH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZp
c2libGVDb250ZW50UmVjdHNGb3JTdXJmYWNlSGllcmFyY2h5KQpAQCAtMjE1MywzMiArMjEzMSwz
MiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlz
aWJsZUNvbnRlbnRSZWN0c0ZvclN1cmZhY2VIaQogICAgIEFTU0VSVF9UUlVFKHJlbmRlclN1cmZh
Y2UxLT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIEFTU0VSVF9UUlVFKHJlbmRlclN1cmZhY2UyLT5y
ZW5kZXJTdXJmYWNlKCkpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MTAwLCAxMDApLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5k
cmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MTAwLCAxMDApLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdh
YmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBMYXllcnMgdGhhdCBkbyBub3QgZHJhdyBjb250
ZW50IHNob3VsZCBoYXZlIGVtcHR5IHZpc2libGVDb250ZW50UmVjdHMuCi0gICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgp
KTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3Vy
ZmFjZTEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTItPnZpc2libGVDb250ZW50UmVjdCgpKTsK
KyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29u
dGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcmVu
ZGVyU3VyZmFjZTEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
OwogCiAgICAgLy8gQSBjbGlwcGVkIHN1cmZhY2UgZ3Jvd3MgaXRzIGRyYXdhYmxlQ29udGVudFJl
Y3QgdG8gaW5jbHVkZSBhbGwgZHJhd2FibGUgcmVnaW9ucyBvZiB0aGUgc3VidHJlZSwKICAgICAv
LyBidXQgYWxzbyBnZXRzIGNsYW1wZWQgYnkgdGhlIGFuY2VzdG9yJ3MgY2xpcC4KLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA5NSwgOTUpLCByZW5kZXJTdXJmYWNlMS0+cmVu
ZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoNSwgNSwgOTUsIDk1KSwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+
ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8vIHJlbmRlclN1cmZhY2UxIGxpdmVzIGlu
IHRoZSAidW5jbGlwcGVkIHVuaXZlcnNlIiBvZiByZW5kZXJTdXJmYWNlMSwgYW5kIGlzIG9ubHkK
ICAgICAvLyBpbXBsaWNpdGx5IGNsaXBwZWQgYnkgcmVuZGVyU3VyZmFjZTEncyBjb250ZW50UmVj
dC4gU28sIHJlbmRlclN1cmZhY2UyIGdyb3dzIHRvCiAgICAgLy8gZW5jbG9zZSBhbGwgZHJhd2Fi
bGUgY29udGVudCBvZiBpdHMgc3VidHJlZS4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg1LCA1LCAxNzAsIDE3MCksIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdh
YmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCAxNzAs
IDE3MCksIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJl
Y3QoKSk7CiAKICAgICAvLyBBbGwgbGF5ZXJzIHRoYXQgZHJhdyBjb250ZW50IGludG8gcmVuZGVy
U3VyZmFjZTIgdGhpbmsgdGhleSBhcmUgdW5jbGlwcGVkLgotICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwot
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMi0+dmlz
aWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDUwLCA1MCksIGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7
CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDItPnZpc2li
bGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1
MCksIGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gZHJhd2FibGVDb250
ZW50UmVjdHMgYXJlIGFsc28gdW5jbGlwcGVkLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDUwLCA1MCksIGNoaWxkMi0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEy
NSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBjaGlsZDIt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMjUs
IDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogfQogCiBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRl
bnRSZWN0c1dpdGhUcmFuc2Zvcm1PblVuY2xpcHBlZFN1cmZhY2UpCkBAIC0yMjA0LDIxICsyMTgy
LDIxIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRW
aXNpYmxlQ29udGVudFJlY3RzV2l0aFRyYW5zZm9yCiAKICAgICBBU1NFUlRfVFJVRShyZW5kZXJT
dXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBy
b290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90
IGRyYXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgotICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29u
dGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCks
IHJlbmRlclN1cmZhY2UxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52aXNp
YmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBUaGUgdW5jbGlwcGVkIHN1cmZhY2UgZ3Jvd3Mg
aXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVkZSBhbGwgZHJhd2FibGUgcmVnaW9ucyBv
ZiB0aGUgc3VidHJlZS4KICAgICBpbnQgZGlhZ29uYWxSYWRpdXMgPSBjZWlsKHNxcnQoMi4wKSAq
IDI1KTsKICAgICBJbnRSZWN0IGV4cGVjdGVkU3VyZmFjZURyYXdhYmxlQ29udGVudCA9IEludFJl
Y3QoNTAgLSBkaWFnb25hbFJhZGl1cywgNTAgLSBkaWFnb25hbFJhZGl1cywgZGlhZ29uYWxSYWRp
dXMgKiAyLCBkaWFnb25hbFJhZGl1cyAqIDIpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBl
Y3RlZFN1cmZhY2VEcmF3YWJsZUNvbnRlbnQsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNl
KCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRT
dXJmYWNlRHJhd2FibGVDb250ZW50LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5k
cmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQWxsIGxheWVycyB0aGF0IGRyYXcgY29u
dGVudCBpbnRvIHRoZSB1bmNsaXBwZWQgc3VyZmFjZSBhcmUgYWxzbyB1bmNsaXBwZWQuCi0gICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxl
Q29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkU3VyZmFjZURy
YXdhYmxlQ29udGVudCwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50
LCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3RzV2l0aFRy
YW5zZm9ybU9uQ2xpcHBlZFN1cmZhY2UpCkBAIC0yMjQ5LDE1ICsyMjI3LDE1IEBAIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJl
Y3RzV2l0aFRyYW5zZm9yCiAgICAgaW50IGRpYWdvbmFsUmFkaXVzID0gY2VpbChzcXJ0KDIuMCkg
KiAyNSk7CiAgICAgSW50UmVjdCB1bmNsaXBwZWRTdXJmYWNlQ29udGVudCA9IEludFJlY3QoNTAg
LSBkaWFnb25hbFJhZGl1cywgNTAgLSBkaWFnb25hbFJhZGl1cywgZGlhZ29uYWxSYWRpdXMgKiAy
LCBkaWFnb25hbFJhZGl1cyAqIDIpOwogICAgIEludFJlY3QgZXhwZWN0ZWRTdXJmYWNlRHJhd2Fi
bGVDb250ZW50ID0gaW50ZXJzZWN0aW9uKHVuY2xpcHBlZFN1cmZhY2VDb250ZW50LCBJbnRSZWN0
KDAsIDAsIDUwLCA1MCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZFN1cmZhY2VE
cmF3YWJsZUNvbnRlbnQsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxl
Q29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd2Fi
bGVDb250ZW50LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOwogCiAgICAgLy8gT24gdGhlIGNsaXBwZWQgc3VyZmFjZSwgb25seSBhIHF1YXJ0
ZXIgIG9mIHRoZSBjaGlsZDEgaXMgdmlzaWJsZSwgYnV0IHdoZW4gcm90YXRpbmcKICAgICAvLyBp
dCBiYWNrIHRvICBjaGlsZDEncyBjb250ZW50IHNwYWNlLCB0aGUgYWN0dWFsIGVuY2xvc2luZyBy
ZWN0IGVuZHMgdXAgY292ZXJpbmcgdGhlCiAgICAgLy8gZnVsbCBsZWZ0IGhhbGYgb2YgY2hpbGQx
LgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI2LCA1MCksIGNoaWxkMS0+
dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MjYsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBUaGUgY2hp
bGQncyBkcmF3YWJsZUNvbnRlbnRSZWN0IGlzIHVuY2xpcHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEodW5jbGlwcGVkU3VyZmFjZUNvbnRlbnQsIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVj
dCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUSh1bmNsaXBwZWRTdXJmYWNlQ29udGVudCwgY2hpbGQx
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QsIHZlcmlmeUJhY2tGYWNlQ3VsbGluZ1dpdGhvdXRQcmVzZXJ2ZXMzZCkKQEAgLTI5MDAs
NyArMjg3OCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5SGl0VGVz
dGluZ0ZvclNpbmdsZUxheWVyV2l0aFNjYWxlZENvbnRlbnRzCiAgICAgLy8gU2FuaXR5IGNoZWNr
IHRoZSBzY2VuYXJpbyB3ZSBqdXN0IGNyZWF0ZWQuCiAgICAgLy8gVGhlIHZpc2libGVDb250ZW50
UmVjdCBmb3IgdGVzdExheWVyIGlzIGFjdHVhbGx5IDEwMHgxMDAsIGV2ZW4gdGhvdWdoIGl0cyBs
YXlvdXQgc2l6ZSBpcyA1MHg1MCwgcG9zaXRpb25lZCBhdCAyNXgyNS4KICAgICBDQ0xheWVySW1w
bCogdGVzdExheWVyID0gcm9vdC0+Y2hpbGRyZW4oKVswXS5nZXQoKTsKLSAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdChJbnRQb2ludDo6emVybygpLCBJbnRTaXplKDEwMCwgMTAwKSksIHRl
c3RMYXllci0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoSW50UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMDAsIDEwMCkpLCB0ZXN0TGF5ZXItPnZpc2li
bGVDb250ZW50UmVjdCgpKTsKICAgICBBU1NFUlRfRVEoMXUsIHJlbmRlclN1cmZhY2VMYXllckxp
c3Quc2l6ZSgpKTsKICAgICBBU1NFUlRfRVEoMXUsIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+bGF5
ZXJMaXN0KCkuc2l6ZSgpKTsKIApAQCAtMzQzNyw4ICszNDE1LDggQEAgVEVTVChDQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlMYXllclRyYW5zZm9ybXNJbkhpZ2hEUEkpCiAKICAgICBG
bG9hdFJlY3QgZXhwZWN0ZWRQYXJlbnREcmF3UmVjdChGbG9hdFBvaW50KCksIHBhcmVudC0+Ym91
bmRzKCkpOwogICAgIGV4cGVjdGVkUGFyZW50RHJhd1JlY3Quc2NhbGUoZGV2aWNlU2NhbGVGYWN0
b3IpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKGV4cGVjdGVkUGFyZW50RHJhd1JlY3QsIHBh
cmVudERyYXdSZWN0KTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShleHBlY3RlZFBhcmVudERy
YXdSZWN0LCBwYXJlbnRTY3JlZW5TcGFjZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVj
dGVkUGFyZW50RHJhd1JlY3QsIHBhcmVudERyYXdSZWN0KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShl
eHBlY3RlZFBhcmVudERyYXdSZWN0LCBwYXJlbnRTY3JlZW5TcGFjZVJlY3QpOwogCiAgICAgLy8g
VmVyaWZ5IGNoaWxkIHRyYW5zZm9ybXMKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBl
Y3RlZENoaWxkVHJhbnNmb3JtOwpAQCAtMzQ1NSw4ICszNDMzLDggQEAgVEVTVChDQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlMYXllclRyYW5zZm9ybXNJbkhpZ2hEUEkpCiAgICAgRmxv
YXRSZWN0IGV4cGVjdGVkQ2hpbGREcmF3UmVjdChGbG9hdFBvaW50KCksIGNoaWxkLT5ib3VuZHMo
KSk7CiAgICAgZXhwZWN0ZWRDaGlsZERyYXdSZWN0Lm1vdmUoY2hpbGQtPnBvc2l0aW9uKCkueCgp
LCBjaGlsZC0+cG9zaXRpb24oKS55KCkpOwogICAgIGV4cGVjdGVkQ2hpbGREcmF3UmVjdC5zY2Fs
ZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0ZWRD
aGlsZERyYXdSZWN0LCBjaGlsZERyYXdSZWN0KTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShl
eHBlY3RlZENoaWxkRHJhd1JlY3QsIGNoaWxkU2NyZWVuU3BhY2VSZWN0KTsKKyAgICBFWFBFQ1Rf
UkVDVF9FUShleHBlY3RlZENoaWxkRHJhd1JlY3QsIGNoaWxkRHJhd1JlY3QpOworICAgIEVYUEVD
VF9SRUNUX0VRKGV4cGVjdGVkQ2hpbGREcmF3UmVjdCwgY2hpbGRTY3JlZW5TcGFjZVJlY3QpOwog
CiAgICAgLy8gVmVyaWZ5IGNoaWxkTm9TY2FsZSB0cmFuc2Zvcm1zCiAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggZXhwZWN0ZWRDaGlsZE5vU2NhbGVUcmFuc2Zvcm0gPSBjaGlsZC0+ZHJhd1Ry
YW5zZm9ybSgpOwpAQCAtMzUyMSw3ICszNDk5LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlVHJhbnNmb3Jtc0luSGlnaERQSSkKICAgICBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZER1cGxpY2F0ZUNoaWxkRHJhd1RyYW5zZm9ybSA9
IGNoaWxkLT5kcmF3VHJhbnNmb3JtKCk7CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJ
WF9FUShjaGlsZC0+ZHJhd1RyYW5zZm9ybSgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5kcmF3
VHJhbnNmb3JtKCkpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoY2hpbGQt
PnNjcmVlblNwYWNlVHJhbnNmb3JtKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShjaGlsZC0+ZHJhd2FibGVD
b250ZW50UmVjdCgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGNoaWxkLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCksIGR1
cGxpY2F0ZUNoaWxkTm9uT3duZXItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAgICAgRVhQRUNU
X0VRKGNoaWxkLT5jb250ZW50Qm91bmRzKCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPmNvbnRl
bnRCb3VuZHMoKSk7CiAKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFJlbmRl
clN1cmZhY2VEcmF3VHJhbnNmb3JtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAppbmRleCA1NjJjMDg2NzcxZmFm
MjZkZmQwYzVjY2RlYWY4MDUyMzg2YWM4ZTY2Li5kMDliYzM2NDllYWViZWM0M2Q4OWRkNjIzNzQz
MzZlYmYyNTYxYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcApAQCAtMjcsMTIgKzI3LDEyIEBACiAjaW5j
bHVkZSAiQ0NMYXllclRyZWVIb3N0SW1wbC5oIgogCiAjaW5jbHVkZSAiQ0NBbmltYXRpb25UZXN0
Q29tbW9uLmgiCisjaW5jbHVkZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgIkND
SGVhZHNVcERpc3BsYXlMYXllckltcGwuaCIKICNpbmNsdWRlICJDQ0lPU3VyZmFjZUxheWVySW1w
bC5oIgogI2luY2x1ZGUgIkNDTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRlc3RDb21t
b24uaCIKICNpbmNsdWRlICJDQ0xheWVyVGlsaW5nRGF0YS5oIgotI2luY2x1ZGUgIkNDTGF5ZXJU
cmVlVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkNDUXVhZFNpbmsuaCIKICNpbmNsdWRlICJDQ1Jl
bmRlclBhc3NEcmF3UXVhZC5oIgogI2luY2x1ZGUgIkNDUmVuZGVyZXJHTC5oIgpAQCAtMjgyMCw3
ICsyODIwLDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCB0ZXh0dXJlQ2FjaGlu
Z1dpdGhDbGlwcGluZykKICAgICAgICAgRVhQRUNUX0xUKHF1YWRWaXNpYmxlUmVjdC53aWR0aCgp
LCAxMDApOwogCiAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSByZW5kZXIgc3VyZmFjZSB0ZXh0
dXJlIGlzICpub3QqIGNsaXBwZWQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgZnJhbWUucmVuZGVyUGFzc2VzWzBdLT5vdXRwdXRSZWN0KCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgZnJhbWUucmVu
ZGVyUGFzc2VzWzBdLT5vdXRwdXRSZWN0KCkpOwogCiAgICAgICAgIEVYUEVDVF9FUShDQ0RyYXdR
dWFkOjpSZW5kZXJQYXNzLCBmcmFtZS5yZW5kZXJQYXNzZXNbMV0tPnF1YWRMaXN0KClbMF0tPm1h
dGVyaWFsKCkpOwogICAgICAgICBDQ1JlbmRlclBhc3NEcmF3UXVhZCogcXVhZCA9IHN0YXRpY19j
YXN0PENDUmVuZGVyUGFzc0RyYXdRdWFkKj4oZnJhbWUucmVuZGVyUGFzc2VzWzFdLT5xdWFkTGlz
dCgpWzBdLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDc3N2Q2MGZjMDJiYzE1ZTJmNDEwODMyZWUzOTE2
ZDYwNjNhYmZmNjEuLjQ5ZDA2YmQ0Mzk3NDQ0ODA1NWRmMmJlYWUwNTE0ZGRiZWY2YjQ1NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Lmgi
CiAKKyNpbmNsdWRlICJDQ0dlb21ldHJ5VGVzdFV0aWxzLmgiCiAjaW5jbHVkZSAiQ0NHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAjaW5jbHVkZSAi
Q0NPY2NsdXNpb25UcmFja2VyVGVzdENvbW1vbi5oIgpAQCAtNDYsMTIgKzQ3LDYgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdFRlc3RzOwogCi0jZGVmaW5lIEVYUEVDVF9FUV9SRUNUKGEsIGIpIFwKLSAgICBF
WFBFQ1RfRVEoYS54KCksIGIueCgpKTsgXAotICAgIEVYUEVDVF9FUShhLnkoKSwgYi55KCkpOyBc
Ci0gICAgRVhQRUNUX0VRKGEud2lkdGgoKSwgYi53aWR0aCgpKTsgXAotICAgIEVYUEVDVF9FUShh
LmhlaWdodCgpLCBiLmhlaWdodCgpKTsKLQogbmFtZXNwYWNlIHsKIAogY2xhc3MgQ0NMYXllclRy
ZWVIb3N0VGVzdCA6IHB1YmxpYyBDQ1RocmVhZGVkVGVzdCB7IH07CkBAIC0xMzQ1LDcgKzEzNDAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVF9FUSgydSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgp
LT5sYXllckxpc3QoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIFRoZSByb290IHJlbmRlciBzdXJm
YWNlIGlzIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC4KLSAgICAgICAgRVhQRUNUX0VRX1JFQ1Qo
SW50UmVjdCgwLCAwLCA2MCwgNjApLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmNvbnRlbnRSZWN0
KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDYwLCA2MCksIHJvb3Qt
PnJlbmRlclN1cmZhY2UoKS0+Y29udGVudFJlY3QoKSk7CiAKICAgICAgICAgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXggc2NhbGVUcmFuc2Zvcm07CiAgICAgICAgIHNjYWxlVHJhbnNmb3JtLnNjYWxl
KGltcGwtPmRldmljZVNjYWxlRmFjdG9yKCkpOwpAQCAtMTY4NSwxMSArMTY4MCwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51
bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5j
b21taXRDb21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3Jh
bmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3Qo
MzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1
LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgcm9vdExheWVyLT5vY2Ns
dWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDMwLCA0MCwgMTcwLCAxNjApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBsYXll
ciBpcyBvcGFxdWUsIHRoZW4gaXQgYWRkcyB0byB0aGUgb2NjbHVzaW9uIHNlZW4gYnkgdGhlIHJv
b3RMYXllci4KQEAgLTE3MDIsMTEgKzE2OTcsMTEgQEAgcHVibGljOgogICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+
OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAot
ICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwg
Z3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDB1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBj
aGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQtPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJl
Y3QoMzAsIDMwLCAxNzAsIDE3MCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDE3MCwgMTcw
KSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKIAogICAgICAgICAvLyBBZGQgYSBzZWNvbmQgY2hpbGQgdG8gdGhlIHJvb3QgbGF5ZXIg
YW5kIHRoZSByZWdpb25zIHNob3VsZCBtZXJnZQpAQCAtMTcyMCwxMyArMTcxNSwxMyBAQCBwdWJs
aWM6CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51
bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5j
b21taXRDb21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3Jh
bmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3Qo
MzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1
LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgMzAsIDE3MCwgMTcwKSwgY2hpbGQyLT5vY2NsdWRl
ZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDMwLCAzMCwgMTcwLCAxNzApLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
cmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCAyMCwg
MTcwLCAxODApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDIwLCAxNzAsIDE4MCksIHJvb3RMYXll
ci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1
LCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAg
ICAgICAgLy8gTW92ZSB0aGUgc2Vjb25kIGNoaWxkIHRvIGJlIHN1cmUuCkBAIC0xNzQwLDEzICsx
NzM1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMo
cXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1Qo
SW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgZ3JhbmRDaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VR
X1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCAx
NzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCAzMCwgMTcwLCAxNzApLCBj
aGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMzAsIDMwLCAxNzAsIDE3MCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5T
cGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBjaGlsZDItPm9jY2x1ZGVk
U2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKElu
dFJlY3QoMTAsIDMwLCAxOTAsIDE3MCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgMzAsIDE5MCwg
MTcwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMnUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCku
c2l6ZSgpKTsKIAogICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbGF5ZXIgaGFzIGEgbWFzayBvbiBp
dCwgdGhlbiBpdCBzaG91bGRuJ3QgY29udHJpYnV0ZSB0byBvY2NsdXNpb24gb24gc3R1ZmYgYmVs
b3cgaXQKQEAgLTE3NjIsMTMgKzE3NTcsMTMgQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAotICAg
ICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgZ3Jh
bmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNU
X0VRKDB1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkp
OwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3Qo
KSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1LCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDcw
LCAxOTAsIDEzMCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExh
eWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MXUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAog
ICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbGF5ZXIgd2l0aCBhIG1hc2sgaXMgYmVsb3cgY2hpbGQy
LCB0aGVuIGNoaWxkMiBzaG91bGQgY29udHJpYnV0ZSB0byBvY2NsdXNpb24gb24gZXZlcnl0aGlu
ZywgYW5kIGNoaWxkIHNob3VsZG4ndCBjb250cmlidXRlIHRvIHRoZSByb290TGF5ZXIKQEAgLTE3
ODQsMTMgKzE3NzksMTMgQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0
ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAotICAgICAgICBFWFBFQ1Rf
RVFfUkVDVChJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2Ns
dWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVD
VChJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwg
MTkwLCAxMzApLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwog
ICAgICAgICBFWFBFQ1RfRVEoMXUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5y
ZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDQwLCAx
OTAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA0MCwgMTkwLCAxNjApLCBjaGlsZC0+b2NjbHVk
ZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBjaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VR
X1JFQ1QoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3
MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
cmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBsYXllciBoYXMgYSBu
b24tb3BhcXVlIGRyYXdPcGFjaXR5LCB0aGVuIGl0IHNob3VsZG4ndCBjb250cmlidXRlIHRvIG9j
Y2x1c2lvbiBvbiBzdHVmZiBiZWxvdyBpdApAQCAtMTgwNywxMyArMTgwMiwxMyBAQCBwdWJsaWM6
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21t
aXRDb21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRD
aGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMzAs
IDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBj
aGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQ
RUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRl
ZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGNoaWxkMi0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VR
X1JFQ1QoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3
MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
cmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBsYXllciB3aXRoIG5v
bi1vcGFxdWUgZHJhd09wYWNpdHkgaXMgYmVsb3cgY2hpbGQyLCB0aGVuIGNoaWxkMiBzaG91bGQg
Y29udHJpYnV0ZSB0byBvY2NsdXNpb24gb24gZXZlcnl0aGluZywgYW5kIGNoaWxkIHNob3VsZG4n
dCBjb250cmlidXRlIHRvIHRoZSByb290TGF5ZXIKQEAgLTE4MzAsMTMgKzE4MjUsMTMgQEAgcHVi
bGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpu
dW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
Y29tbWl0Q29tcGxldGUoKTsKIAotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGNo
aWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkw
LCAxMzApLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCBncmFuZENoaWxk
LT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAg
ICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDQwLCAxOTAsIDE2MCksIGNoaWxkLT5vY2Ns
dWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDEwLCA0MCwgMTkwLCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMCwgNzAs
IDE5MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCByb290TGF5
ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgx
dSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAg
ICAgICAgIC8vIEtpbGwgdGhlIGxheWVyVHJlZUhvc3QgaW1tZWRpYXRlbHkuCkBAIC0xODkzLDEz
ICsxODg4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXll
cnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAgICAgRVhQRUNUX0VRX1JF
Q1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGNoaWxkMi0+b2NjbHVkZWRT
Y3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50
UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNzAsIDE5MCwg
MTMwKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA0MCwgMTkwLCAx
NjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNDAsIDE5MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgY2hpbGQtPm9jY2x1
ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNU
KEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNzAsIDE5
MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbGF5ZXIgaGFzIGEgZmlsdGVy
IHRoYXQgbW92ZXMgcGl4ZWxzL2NoYW5nZXMgYWxwaGEsIGFuZCBpcyBiZWxvdyBjaGlsZDIsIHRo
ZW4gY2hpbGQgc2hvdWxkIG5vdCBpbmhlcml0IG9jY2x1c2lvbiBmcm9tIG91dHNpZGUgaXRzIHN1
YnRyZWUsCkBAIC0xOTIwLDEzICsxOTE1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6
bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAg
ICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hpbGQy
LT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUs
IGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5kQ2hp
bGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgw
dSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAg
ICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3
MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RM
YXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAK
ICAgICAgICAgLy8gS2lsbCB0aGUgbGF5ZXJUcmVlSG9zdCBpbW1lZGlhdGVseS4KQEAgLTE5ODUs
NyArMTk4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1TdXJm
YWNlcy0xOyArK2kpIHsKICAgICAgICAgICAgIEludFJlY3QgZXhwZWN0ZWRPY2NsdXNpb24oaSsx
LCBpKzEsIDIwMC1pLTEsIDIwMC1pLTEpOwogCi0gICAgICAgICAgICBFWFBFQ1RfRVFfUkVDVChl
eHBlY3RlZE9jY2x1c2lvbiwgbGF5ZXJzW2ldLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOworICAgICAgICAgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRPY2NsdXNpb24sIGxheWVy
c1tpXS0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgICAgIEVYUEVD
VF9FUSgxdSwgbGF5ZXJzW2ldLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlVGVzdENvbW1vbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Zjdl
MjAyNzk4MzA5MmEyNGE1NWIwODljZGM3OTliZjk0Yzg1ZDY2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVUZXN0Q29tbW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0g
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIENDTGF5ZXJUcmVlVGVzdENvbW1vbl9oCi0jZGVmaW5lIEND
TGF5ZXJUcmVlVGVzdENvbW1vbl9oCi0KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXguaD4KLQotbmFtZXNwYWNlIFdlYktpdFRlc3RzIHsKLQotLy8gVGhlc2UgYXJlIG1h
Y3JvcyBpbnN0ZWFkIG9mIGZ1bmN0aW9ucyBzbyB0aGF0IHdlIGdldCB1c2VmdWwgbGluZSBudW1i
ZXJzIHdoZXJlIGEgdGVzdCBmYWlsZWQuCi0jZGVmaW5lIEVYUEVDVF9GTE9BVF9SRUNUX0VRKGV4
cGVjdGVkLCBhY3R1YWwpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZM
T0FUX0VRKChleHBlY3RlZCkubG9jYXRpb24oKS54KCksIChhY3R1YWwpLmxvY2F0aW9uKCkueCgp
KTsgXAotICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLmxvY2F0aW9uKCkueSgpLCAoYWN0
dWFsKS5sb2NhdGlvbigpLnkoKSk7IFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5z
aXplKCkud2lkdGgoKSwgKGFjdHVhbCkuc2l6ZSgpLndpZHRoKCkpOyBcCi0gICAgRVhQRUNUX0ZM
T0FUX0VRKChleHBlY3RlZCkuc2l6ZSgpLmhlaWdodCgpLCAoYWN0dWFsKS5zaXplKCkuaGVpZ2h0
KCkpCi0KLSNkZWZpbmUgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5sb2NhdGlv
bigpLngoKSwgKGFjdHVhbCkubG9jYXRpb24oKS54KCkpOyAgICAgIFwKLSAgICBFWFBFQ1RfRVEo
KGV4cGVjdGVkKS5sb2NhdGlvbigpLnkoKSwgKGFjdHVhbCkubG9jYXRpb24oKS55KCkpOyAgICAg
IFwKLSAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkud2lkdGgoKSwgKGFjdHVhbCkuc2l6
ZSgpLndpZHRoKCkpOyAgICAgIFwKLSAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkuaGVp
Z2h0KCksIChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKLQotLy8gVGhpcyBpcyBhIGZ1bmN0aW9u
IHJhdGhlciB0aGFuIGEgbWFjcm8gYmVjYXVzZSB3aGVuIHRoaXMgaXMgaW5jbHVkZWQgYXMgYSBt
YWNybwotLy8gaW4gYnVsaywgaXQgY2F1c2VzIGEgc2lnbmlmaWNhbnQgc2xvdy1kb3duIGluIGNv
bXBpbGF0aW9uIHRpbWUuIFRoaXMgcHJvYmxlbQotLy8gZXhpc3RzIHdpdGggYm90aCBnY2MgYW5k
IGNsYW5nLCBhbmQgYnVncyBoYXZlIGJlZW4gZmlsZWQgYXQKLS8vIGh0dHA6Ly9sbHZtLm9yZy9i
dWdzL3Nob3dfYnVnLmNnaT9pZD0xMzY1MSBhbmQgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxh
L3Nob3dfYnVnLmNnaT9pZD01NDMzNwotdm9pZCBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVx
KFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhY3R1
YWwpOwotCi0jZGVmaW5lIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQs
IGFjdHVhbCkgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFNDT1BFRF9UUkFD
RSgiIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgIFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkLCBh
Y3R1YWwpOyBcCi0gICAgfQotCi19IC8vIG5hbWVzcGFjZQotCi0jZW5kaWYgLy8gQ0NMYXllclRy
ZWVUZXN0Q29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NNYXRoVXRpbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ01hdGhV
dGlsVGVzdC5jcHAKaW5kZXggNDE2ZTFiNTZkODgwODE0NzRkNmY3ZGU2ZGI3YTFmMGIyMGM4OTMz
Yi4uOGYyNjg0N2RmNjU5ZjlmZTVmMThjNjQ0NzQzOTVhZGI5Njk1Nzk3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHAKQEAgLTI2LDcgKzI2
LDcgQEAKIAogI2luY2x1ZGUgIkNDTWF0aFV0aWwuaCIKIAotI2luY2x1ZGUgIkNDTGF5ZXJUcmVl
VGVzdENvbW1vbi5oIgorI2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRpbHMuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgogI2luY2x1ZGUgPGd0ZXN0
L2d0ZXN0Lmg+CkBAIC0xMzEsNyArMTMxLDcgQEAgVEVTVChDQ01hdGhVdGlsVGVzdCwgdmVyaWZ5
RW5jbG9zaW5nQ2xpcHBlZFJlY3RVc2VzQ29ycmVjdEluaXRpYWxCb3VuZHMpCiAgICAgLy8gY2xp
cHBlZCByZWN0IHdpbGwgYmUgY29tcHV0ZWQgaW5jb3JyZWN0bHkuCiAgICAgRmxvYXRSZWN0IHJl
c3VsdCA9IENDTWF0aFV0aWw6OmNvbXB1dGVFbmNsb3NpbmdDbGlwcGVkUmVjdChoMSwgaDIsIGgz
LCBoNCk7CiAKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoRmxvYXRQb2ludCgt
MTAwLCAtMTAwKSwgRmxvYXRTaXplKDkwLCA5MCkpLCByZXN1bHQpOworICAgIEVYUEVDVF9SRUNU
X0VRKEZsb2F0UmVjdChGbG9hdFBvaW50KC0xMDAsIC0xMDApLCBGbG9hdFNpemUoOTAsIDkwKSks
IHJlc3VsdCk7CiB9CiAKIFRFU1QoQ0NNYXRoVXRpbFRlc3QsIHZlcmlmeUVuY2xvc2luZ1JlY3RP
ZlZlcnRpY2VzVXNlc0NvcnJlY3RJbml0aWFsQm91bmRzKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIFRF
U1QoQ0NNYXRoVXRpbFRlc3QsIHZlcmlmeUVuY2xvc2luZ1JlY3RPZlZlcnRpY2VzVXNlc0NvcnJl
Y3RJbml0aWFsQm91bmRzKQogICAgIC8vIGNsaXBwZWQgcmVjdCB3aWxsIGJlIGNvbXB1dGVkIGlu
Y29ycmVjdGx5LgogICAgIEZsb2F0UmVjdCByZXN1bHQgPSBDQ01hdGhVdGlsOjpjb21wdXRlRW5j
bG9zaW5nUmVjdE9mVmVydGljZXModmVydGljZXMsIG51bVZlcnRpY2VzKTsKIAotICAgIEVYUEVD
VF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdChGbG9hdFBvaW50KC0xMDAsIC0xMDApLCBGbG9hdFNp
emUoOTAsIDkwKSksIHJlc3VsdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoRmxvYXRSZWN0KEZsb2F0
UG9pbnQoLTEwMCwgLTEwMCksIEZsb2F0U2l6ZSg5MCwgOTApKSwgcmVzdWx0KTsKIH0KIAogVEVT
VChDQ01hdGhVdGlsVGVzdCwgc21hbGxlc3RBbmdsZUJldHdlZW5WZWN0b3JzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5j
cHAKaW5kZXggMTcxNjc2ZjQ1ZDQ0NjBiNmYwYmEwM2NhYTg2ZGYwZmQ5M2Q2NWI2Ny4uNTYwNzg0
YmEzZThhMWY2YjJmNWFkYjkzN2UwZGNjY2ViZjU0OTU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCkBAIC0y
NywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJDQ09jY2x1c2lvblRyYWNrZXIuaCIKIAogI2luY2x1
ZGUgIkNDQW5pbWF0aW9uVGVzdENvbW1vbi5oIgorI2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRp
bHMuaCIKICNpbmNsdWRlICJDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkNDTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgiCi0jaW5j
bHVkZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAiQ0NNYXRoVXRpbC5oIgog
I2luY2x1ZGUgIkNDT2NjbHVzaW9uVHJhY2tlclRlc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ092
ZXJkcmF3TWV0cmljcy5oIgpAQCAtNDQ2LDkgKzQ0Niw5IEBAIHByb3RlY3RlZDoKICAgICAgICAg
dGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJM
YXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcw
LCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7
CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVj
dCgzMCwgMzAsIDcwLCA3MCkpKTsKQEAgLTQ2NiwxNCArNDY2LDE0IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKS5pc0VtcHR5KCkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzAsIDEsIDcwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDMwLCA3MCwgNzApKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCAyOSwgNzAsIDcwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDI5LCA3MCwgNzApKSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAyOSwgNzAsIDEpLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMjksIDcwLCA3
MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzEsIDI5LCA3MCwgNzAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMjks
IDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAwLCAzMCwg
MSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgz
MSwgMzAsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzEs
IDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCgzMSwgMzEsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMjksIDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgyOSwgMzEsIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgyOSwgMzAsIDEsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIEludFJlY3QoMjksIDMwLCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMjksIDI5LCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMjksIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgzMCwgMjksIDcwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5LCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMzEsIDI5LCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMjksIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgxMDAsIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNzAsIDcwKSkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDMxLCAzMSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDMxLCA3MCwgNzApKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzEsIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMSwgNzAsIDcwKSkpOwogICAgIH0K
IH07CiAKQEAgLTQ5OSw5ICs0OTksOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0
TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50
LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAz
MCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAg
IEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3
MCwgNzApKSk7CkBAIC01MTksMTQgKzUxOSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG9jY2x1
c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAg
ICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJ
bnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkuaXNFbXB0eSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMjksIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMCwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgMjksIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAyOSwgNzAsIDcwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDcwLCAxKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5LCA3MCwgNzApKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMxLCAyOSwgNzAsIDcwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDI5LCA3MCwgNzApKSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgMzAsIDEsIDcwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDMwLCA3MCwg
NzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMxLCAzMSwgNzAsIDcw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDMx
LCA3MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAxMDAs
IDcwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MzAsIDMxLCA3MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5
LCAzMSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMjksIDMxLCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MjksIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJ
bnRSZWN0KDI5LCAzMCwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDI5LCAyOSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoMjksIDI5LCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMzAsIDI5LCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCBJbnRSZWN0KDMwLCAyOSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDMxLCAyOSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoMzEsIDI5LCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMTAwLCAzMCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgzMSwgMzEsIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCBJbnRSZWN0KDMxLCAzMSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDMwLCAxMDAsIDcwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIEludFJlY3QoMzAsIDMxLCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMjksIDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzEsIDcwLCA3MCkpKTsKICAgICB9CiB9OwogCkBAIC01
NTAsOSArNTUwLDkgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVy
LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9u
KTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNTAsIDUwLCA1MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCg1MCwgNTAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJV
RShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkpOwpA
QCAtNTcwLDI1ICs1NzAsMjUgQEAgcHJvdGVjdGVkOgogICAgICAgICBvY2NsdXNpb24uc2V0TGF5
ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICBFWFBFQ1Rf
VFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwg
NTAsIDUwLCA1MCkpLmlzRW1wdHkoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDQ5LCA1MCwgMSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCg0OSwgNTAsIDUwLCA1MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoNDksIDQ5LCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCg0OSwgNDksIDUwLCA1MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoNTAsIDQ5LCA1MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA0OSwgNTAsIDUwKSkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCg1MSwgNDksIDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA0OSwgNTAsIDUwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDUwLCAxLCA1MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MCwgNTAsIDUwKSkpOwotICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MSwgNTEsIDUwLCA1MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MSwgNTAsIDUwKSkp
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgMTAwLCA1MCwgMSksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA1MSwgNTAs
IDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNTEsIDUwLCA1
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1
MSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQ5LCA1MCwgMSwg
NTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwg
NTAsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUw
LCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5
LCA0OSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA0OSwg
NTAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1
MCwgNDksIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1MSwgNDks
IDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0
KDUxLCA0OSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwg
NTAsIDEsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNTEsIDUwLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTEs
IDUxLCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCg1MSwgNTEsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1
MCwgMTAwLCA1MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJ
bnRSZWN0KDUwLCA1MSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDQ5LCA1MSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNDksIDUxLCA1MCwgNTApKSk7CiAKICAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1
bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAs
IDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUwLCA1
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA0
OSwgNTAsIDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNDks
IDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
NTAsIDQ5LCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUx
LCA0OSwgNDksIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCg1MSwgNDksIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0
OSwgNTAsIDEsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoNDksIDUwLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
NDksIDQ5LCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
SW50UmVjdCg0OSwgNDksIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCg1MCwgNDksIDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNTAsIDQ5LCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoNTEsIDQ5LCA0OSwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCBJbnRSZWN0KDUxLCA0OSwgNTAsIDUwKSkpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MSwgNTAsIDUwLCA1MCkp
LmlzRW1wdHkoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MSwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKICAg
ICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNTAsIDUxLCA1MCwgNTApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCg0OSwgNTEsIDEsIDQ5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDUxLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoNDksIDUxLCAxLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MSwgNTAsIDUwKSkpOwogICAgICAgICBvY2Ns
dXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICB9
CiB9OwpAQCAtNjE4LDE3ICs2MTgsMTcgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52aXNp
dExheWVyKGxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGlu
Z1N1cmZhY2UoY2hpbGQsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcw
LCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMCwgNDMw
LCA2MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA0MzAsIDYwLCA3MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVD
VF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQsIG9j
Y2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwog
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9j
Y2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDQwLCA3MCwgNjApKSk7CkBAIC03
MDAsMzYgKzcwMCwzNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihj
aGlsZDIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MzAsIDMwLCA2MCwgMjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDYwLCAyMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDYwLCAyMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA2MCwgMjApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAg
ICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDEwLCA0MzAsIDYwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwg
NjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3Vy
ZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA0MzAsIDYw
LCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogCiAgICAgICAgIC8vIE9jY2x1c2lvbiBpbiB8Y2hpbGQyfCBzaG91bGQgZ2V0IG1lcmdlZCB3
aXRoIHRoZSB8Y2hpbGR8IHN1cmZhY2Ugd2UgYXJlIGxlYXZpbmcgbm93LgogICAgICAgICB0aGlz
LT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAs
IDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAg
RVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFy
ZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCg5MCwgMzAsIDEwLCAxMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDkwLCAzMCwgMTAsIDEwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKSk7CiAKICAgICAgICAgRVhQRUNU
X1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzAsIDYwLCAxMCkp
KTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJl
Y3QoMjksIDMwLCA2MCwgMTApKSk7CkBAIC03NDIsMjEgKzc0MiwyMSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMw
LCAzOSwgNzAsIDYwKSkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNjAsIDEwKSkuaXNFbXB0eSgp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjksIDMwLCAxLCAxMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMCwgNjAs
IDEwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDYwLCAx
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5
LCA2MCwgMTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDkwLCAzMCwg
MSwgMTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgz
MSwgMzAsIDYwLCAxMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzAs
IDEsIDEwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MjksIDMwLCA2MCwgMTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDI5
LCA2MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0
KDMwLCAyOSwgNjAsIDEwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDkwLCAz
MCwgMSwgMTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCgzMSwgMzAsIDYwLCAxMCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDMxLCA2MCwgMTApKS5pc0VtcHR5
KCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSkuaXNFbXB0eSgpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjksIDQwLCAxLCA2MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCA0MCwgNzAsIDYwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI5LCA0MCwgMSwgNjApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgNDAsIDcwLCA2MCkpKTsKICAg
ICAgICAgLy8gVGhpcyByZWN0IGlzIG1vc3RseSBvY2NsdWRlZCBieSB8Y2hpbGQyfC4KLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoOTAsIDM5LCAxMCwgMSksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzOSwgNzAsIDYwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDkwLCAzOSwgMTAsIDEpLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzksIDcwLCA2MCkpKTsK
ICAgICAgICAgLy8gVGhpcyByZWN0IGV4dGVuZHMgcGFzdCB0b3AvcmlnaHQgZW5kcyBvZiB8Y2hp
bGQyfC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDI5LCA3MCwgMTEp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMjks
IDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDcwLCAx
MSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAy
OSwgNzAsIDcwKSkpOwogICAgICAgICAvLyBUaGlzIHJlY3QgZXh0ZW5kcyBwYXN0IGxlZnQvcmln
aHQgZW5kcyBvZiB8Y2hpbGQyfC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MjAsIDM5LCA4MCwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
SW50UmVjdCgyMCwgMzksIDgwLCA2MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMTAwLCA0MCwgMSwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgzMSwgNDAsIDcwLCA2MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgNDEsIDcwLCA2MCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgyMCwgMzksIDgwLCA2MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDIwLCAzOSwgODAsIDYwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDEwMCwgNDAsIDEsIDYwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDQwLCA3MCwgNjApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgNDEsIDcwLCA2MCkpKTsKIAogICAgICAgICAv
KiBKdXN0aWZpY2F0aW9uIGZvciB0aGUgYWJvdmUgb2NjbHVzaW9uIGZyb20gfGxheWVyfDoKICAg
ICAgICAgICAgICAgICAgICAxMDAKQEAgLTgxNCw5ICs4MTQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVu
dGVyQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDB1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRMYXllckluQ2hpbGQsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKGNsaXBwZWRMYXllckluQ2hpbGQsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1Rf
VFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQsIGNsaXBwZWRMYXllckluQ2hpbGQpKTsKQEAg
LTg0MSwxMyArODQxLDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+bGVhdmVDb250cmli
dXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVy
KHBhcmVudCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1LCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAK
ICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3Qo
NzUsIDU1LCAxLCAxKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg3NSwg
NTUsIDEsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCg3NSwgNTUsIDEsIDEpKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNzUsIDU1
LCAxLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
NzUsIDU1LCAxLCAxKSkpOwogICAgIH0KIH07CiAKQEAgLTg3OCw5ICs4NzgsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIxLCBvY2NsdXNpb24pOwogICAgICAg
ICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQsIG9jY2x1c2lvbik7CiAKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgxMCwgNDMwLCA2MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDEwLCA0MzAsIDYwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2Ns
dXNpb24ub2NjbHVkZWQoY2hpbGQsIEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSkpOwpAQCAtODkw
LDE3ICs4OTAsMTcgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9u
Lm9jY2x1ZGVkKGNoaWxkLCBJbnRSZWN0KDEwLCA0MzEsIDYwLCA3MCkpKTsKIAogICAgICAgICBF
WFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNoaWxkLCBJbnRSZWN0
KDEwLCA0MzAsIDYwLCA3MCkpLmlzRW1wdHkoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDksIDQzMCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KGNoaWxkLCBJbnRSZWN0KDksIDQzMCwgNjAsIDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgxMCwgNDI5LCA2MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QoY2hpbGQsIEludFJlY3QoMTAsIDQyOSwgNjAsIDcwKSkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCg3MCwgNDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoMTEsIDQzMCwgNjAsIDcwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMCwgNTAwLCA2MCwgMSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoMTAsIDQzMSwgNjAsIDcwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDksIDQzMCwgMSwgNzApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KGNoaWxkLCBJbnRSZWN0KDksIDQzMCwgNjAsIDcwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA0MjksIDYwLCAxKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50UmVjdCgxMCwgNDI5LCA2MCwgNzApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNzAsIDQzMCwgMSwgNzApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KGNoaWxkLCBJbnRSZWN0KDExLCA0MzAsIDYwLCA3MCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNTAwLCA2MCwgMSksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoMTAsIDQzMSwgNjAsIDcwKSkp
OwogCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVz
aW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MzAsIDQwLCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVz
aW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgNDAsIDcwLCA2MCkpKTsKQEAgLTkwOCwx
MCArOTA4LDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5v
Y2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CiAKICAgICAgICAgRVhQ
RUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MzAsIDQwLCA3MCwgNjApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgyOSwgNDAsIDEsIDYwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMjksIDQwLCA3MCwgNjApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KDMwLCAzOSwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzksIDcwLCA2MCkpKTsKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMTAwLCA0MCwgMSwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgNDAsIDcwLCA2MCkpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgNDEsIDcwLCA2MCkpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgNDAsIDEsIDYwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDQwLCA3MCwgNjApKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDM5LCA3MCwgMSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzOSwgNzAsIDYwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgNDAsIDEsIDYwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDQwLCA3MCwgNjApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgNDEsIDcwLCA2MCkpKTsK
IAogICAgICAgICAvKiBKdXN0aWZpY2F0aW9uIGZvciB0aGUgYWJvdmUgb2NjbHVzaW9uIGZyb20g
fGxheWVyMXwgYW5kIHxsYXllcjJ8OgogCkBAIC05NjYsOSArOTY2LDkgQEAgcHJvdGVjdGVkOgog
ICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyMiwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhp
cy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkMiwgb2NjbHVzaW9uKTsKIAotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMCwgMzAsIDgwLCA3MCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDIwLCAzMCwgODAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KC0xMCwgNDIwLCA3MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KC0x
MCwgNDIwLCA3MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVz
aW9uLm9jY2x1ZGVkKGNoaWxkMiwgSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSkpOwpAQCAtOTg2
LDE1ICs5ODYsMTUgQEAgcHJvdGVjdGVkOgogICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlw
UmVjdChJbnRSZWN0KC0yMCwgLTIwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8gVGhlcmUg
aXMgbm90aGluZyBhYm92ZSBjaGlsZDIncyBzdXJmYWNlIGluIHRoZSB6LW9yZGVyLgotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hpbGQyLCBmYWxzZSwg
SW50UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KC0xMCwgNDIwLCA3MCwgODApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1
cmZhY2VDb250ZW50UmVjdChjaGlsZDIsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDIwLCA3MCwgODAp
KSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkMiwgb2Nj
bHVzaW9uKTsKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllcjEsIG9jY2x1c2lvbik7CiAg
ICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZDEsIG9jY2x1c2lvbik7
CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAsIDIwLCA4MCwgODApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgyMCwgMjAsIDgwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgtMTAsIDQzMCwgODAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgtMTAsIDQzMCwgODAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3Vy
ZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9U
UlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDEsIEludFJlY3QoLTEwLCA0MzAsIDgwLCA3MCkp
KTsKQEAgLTEwMDQsMTQgKzEwMDQsMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFM
U0Uob2NjbHVzaW9uLm9jY2x1ZGVkKGNoaWxkMSwgSW50UmVjdCgtMTAsIDQzMCwgODAsIDcxKSkp
OwogCiAgICAgICAgIC8vIGNoaWxkMidzIGNvbnRlbnRzIHdpbGwgb2NjbHVkZSBjaGlsZDEgYmVs
b3cgaXQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KC0xMCwgNDMwLCAxMCwg
NzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChj
aGlsZDEsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDMwLCA4MCwgNzApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MzAsIDEwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoLTEw
LCA0MzAsIDgwLCA3MCkpKTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZh
Y2UoY2hpbGQxLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwg
b2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMCwgMjAs
IDgwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwLCAyMCwgODAsIDgwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgy
dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwLCAyMCwgODAsIDgwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgyMCwgMjAsIDgwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBF
WFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgyMCwgMjAsIDgw
LCA4MCkpKTsKQEAgLTEwODEsOSArMTA4MSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihsYXllcjIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIo
Y2hpbGQyLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDIwLCAzMCwgODAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAsIDMwLCA4MCwgNzApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgx
dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
IAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0
KC0xMCwgNDIwLCA3MCwgODApKSk7CkBAIC0xMDk2LDE1ICsxMDk2LDE1IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkMiwgb2NjbHVzaW9u
KTsKIAogICAgICAgICAvLyBUaGVyZSBpcyBub3RoaW5nIGFib3ZlIGNoaWxkMidzIHN1cmZhY2Ug
aW4gdGhlIHotb3JkZXIuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KC0xMCwg
NDIwLCA3MCwgODApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250
ZW50UmVjdChjaGlsZDIsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDIwLCA3MCwgODApKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMiwgZmFsc2UsIElu
dFJlY3QoLTEwLCA0MjAsIDcwLCA4MCkpKTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1
dGluZ1N1cmZhY2UoY2hpbGQyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdExheWVy
KGxheWVyMSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJm
YWNlKGNoaWxkMSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgxMCwgMjAsIDkwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQyMCwgLTIwLCA4
MCwgOTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQyMCwgLTIwLCA4MCwgOTApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUo
KSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGNoaWxkMSwgSW50
UmVjdCg0MjAsIC0yMCwgODAsIDkwKSkpOwpAQCAtMTExNCwxNiArMTExNCwxNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQxLCBJbnRS
ZWN0KDQyMSwgLTIwLCA4MCwgOTApKSk7CiAKICAgICAgICAgLy8gY2hpbGQyJ3MgY29udGVudHMg
d2lsbCBvY2NsdWRlIGNoaWxkMSBiZWxvdyBpdC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoNDIwLCAtMjAsIDgwLCA5MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0
aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoNDIwLCAtMjAsIDgw
LCA5MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDkwLCAtMTAsIDEw
LCA4MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0
KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoNDIwLCAtMTAsIDgwLCA5MCkpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDIwLCAtMjAsIDcwLCAxMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJl
Y3QoNDIwLCAtMjAsIDcwLCA5MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0
MjAsIC0yMCwgODAsIDkwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNl
Q29udGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVjdCg0MjAsIC0yMCwgODAsIDkwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQ5MCwgLTEwLCAxMCwgODApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChjaGlsZDEsIGZhbHNl
LCBJbnRSZWN0KDQyMCwgLTEwLCA4MCwgOTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoNDIwLCAtMjAsIDcwLCAxMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5n
U3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoNDIwLCAtMjAsIDcwLCA5
MCkpKTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQxLCBv
Y2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsK
IAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMCwgMjAsIDkwLCA4MCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgxMCwgMjAsIDkwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShv
Y2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSkpOwpAQCAt
MTIwOSwxNiArMTIwOSwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
b3BhcXVlTGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5n
U3VyZmFjZShvcGFxdWVMYXllciwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAz
MCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDQzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCA0MzAsIDcwLCA3MCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVY
UEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCku
c2l6ZSgpKTsKIAogICAgICAgICAvLyBBbmQgaXQgZ2V0cyB0cmFuc2xhdGVkIHRvIHRoZSBwYXJl
bnQgc3VyZmFjZS4KICAgICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNlKG9wYXF1
ZUxheWVyLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgz
MCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVD
VF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUo
KSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAg
ICAgICAvLyBUaGUgYmx1ciBsYXllciBuZWVkcyB0byB0aHJvdyBhd2F5IGFueSBvY2NsdXNpb24g
ZnJvbSBvdXRzaWRlIGl0cyBzdWJ0cmVlLgpAQCAtMTIzNSw5ICsxMjM1LDkgQEAgcHJvdGVjdGVk
OgogICAgICAgICAvLyBCdXQgdGhlIG9wYXF1ZSBsYXllcidzIG9jY2x1c2lvbiBpcyBwcmVzZXJ2
ZWQgb24gdGhlIHBhcmVudC4gCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFj
ZShibHVyTGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50
LCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAs
IDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgx
dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKICAgICB9CiB9OwpA
QCAtMTI1OSwxNiArMTI1OSwxNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+dmlzaXRM
YXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDEwMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCA1MCwg
NTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAs
IDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAK
ICAgICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lv
bik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCiAgICAg
ICAgIC8vIFRoZSBzdXJmYWNlIGFuZCByZXBsaWNhIHNob3VsZCBib3RoIGJlIG9jY2x1ZGluZyB0
aGUgcGFyZW50LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDEw
MCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNU
X0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwogICAgIH0KIH07CkBAIC0xMjkxLDE2ICsxMjkxLDE2IEBAIHByb3RlY3RlZDoKIAogICAg
ICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJl
Y3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdENvbnRyaWJ1dGluZ1N1cmZhY2Uo
c3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9j
Y2x1c2lvbik7CiAKICAgICAgICAgLy8gVGhlIHN1cmZhY2UgYW5kIHJlcGxpY2Egc2hvdWxkIGJv
dGggYmUgb2NjbHVkaW5nIHRoZSBwYXJlbnQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDEwMCwgMTAwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCAx
MDAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CkBAIC0xMzIzLDE2ICsxMzIzLDE2IEBAIHBy
b3RlY3RlZDoKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7
CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCA1MCwgNTApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdENvbnRy
aWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJM
YXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gVGhlIHJlcGxpY2Egc2hvdWxk
IG5vdCBiZSBvY2NsdWRpbmcgdGhlIHBhcmVudCwgc2luY2UgaXQgaGFzIGEgbWFzayBhcHBsaWVk
IHRvIGl0LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDUwLCA1
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAg
ICAgfQogfTsKQEAgLTEzNzcsNyArMTM3Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNU
X1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgxMDAsIDIwMCwgMTAwLCAx
MDApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIElu
dFJlY3QoMjAwLCAyMDAsIDEwMCwgMTAwKSkpOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgIH0KIH07
CiAKQEAgLTE0MjEsNyArMTQyMSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX1RSVUUo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgxMDAsIDIwMCwgMTAwLCAxMDApKSk7
CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3Qo
MjAwLCAyMDAsIDEwMCwgMTAwKSkpOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgIH0KIH07CiAKQEAg
LTE1MzgsMTEgKzE1MzgsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFMU0Uob2Nj
bHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgxMDAsIDIwMCwgMTAwLCAxMDApKSk7CiAg
ICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDIw
MCwgMjAwLCAxMDAsIDEwMCkpKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDIwMCwgNTAsIDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgyMDAsIDEwMCwgNTAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDEwMCwgMzAwLCAxMDApKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwMCwgMTAwLCA1MCwgMTAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAw
KSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDIwMCwgMTAwLCA1
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDEwMCwg
MjAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1MCwgNTAs
IDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAw
LCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMCwgMCwgMzAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MjAwLCAxMDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgwLCAxMDAsIDMwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDIwMCwgMTAwLCA1MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMTAwLCAyMDAsIDEwMCwgMTAwKSkpOwogICAgIH0K
IH07CiAKQEAgLTE1ODEsMTEgKzE1ODEsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1Rf
RkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgxMDAsIDIwMCwgMTAwLCAx
MDApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJ
bnRSZWN0KDIwMCwgMjAwLCAxMDAsIDEwMCkpKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDIwMCwgNTAsIDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMTAwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDEwMCwgNTAsIDEwMCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDEwMCwgMzAwLCAxMDApKSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwMCwgMTAwLCA1MCwgMTAwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjAwLCAxMDAs
IDEwMCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDIw
MCwgMTAwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRS
ZWN0KDEwMCwgMjAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMjAwLCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMjAwLCAxMDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgwLCAxMDAsIDMwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDIwMCwgMTAwLCA1MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMTAwLCAyMDAsIDEwMCwgMTAwKSkp
OwogICAgIH0KIH07CiAKQEAgLTE3NTQsNyArMTc1NCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
ICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgICAgICB0aGlz
LT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAotICAgICAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAgICAgRVhQ
RUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMCwgMTAwLCAxMDAs
IDEwMCkpKTsKQEAgLTE3NzAsNyArMTc3MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIHRo
aXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgICAgICB0aGlzLT5lbnRl
ckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAotICAgICAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMTIwLCAxMjAsIDE4MCwgMTgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDEyMCwgMTIwLCAxODAsIDE4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAgICAgRVhQRUNUX0ZB
TFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMCwgMTAwLCAxMDAsIDEwMCkp
KTsKQEAgLTE3ODYsNyArMTc4Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIHRoaXMtPnZp
c2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgICAgICB0aGlzLT5lbnRlckxheWVy
KHBhcmVudCwgb2NjbHVzaW9uKTsKIAotICAgICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMjUwLCAyNTAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyNTAsIDI1
MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVz
aW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgwLCAxMDAsIDEwMCwgMTAwKSkpOwpAQCAtMTgx
NSw3ICsxODE1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVy
LCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFRoZSBsYXllciBpcyByb3RhdGVkIGluIDNkIGJ1
dCB3aXRob3V0IHByZXNlcnZpbmcgM2QsIHNvIGl0IG9ubHkgZ2V0cyByZXNpemVkLgotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QobGF5ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAyMDApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjAwLCAyMDApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSkpOwog
ICAgIH0KIH07CiAKQEAgLTE4ODAsNyArMTg4MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5
cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwg
MTAwMCwgMTAwMCkpOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24p
OwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAyMDAs
IDIwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QobGF5ZXIsIEludFJlY3QoMCwgMCwgMjAw
LCAyMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTk3NCw5ICsxOTc0LDkgQEAgcHJvdGVjdGVkOgog
ICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aG9zZSBwaXhlbHMgZG9uJ3Qgb2NjbHVkZSB0aGluZ3Mg
b3V0c2lkZSB0aGUgY2xpcFJlY3QuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9j
Y2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKICAgICB9CiB9OwpAQCAtMjAxMCwyNyArMjAx
MCwyNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIodG9wbW9zdCwgb2Nj
bHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQyLCBvY2NsdXNpb24pOwog
ICAgICAgICAvLyBUaGlzIG9jY2x1c2lvbiB3aWxsIGFmZmVjdCBhbGwgc3VyZmFjZXMuCi0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQyLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQyLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAw
KSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHBhcmVudDIsIG9jY2x1c2lvbik7CiAKICAg
ICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlQ2hpbGQyLCBvY2NsdXNpb24pOwogICAgICAg
ICB0aGlzLT5lbnRlckxheWVyKHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgMCwgMTAwLCAzMDApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2VDaGlsZCwgSW50UmVjdCgwLCAwLCAz
MDAsIDMwMCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1
c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAwLCA1MCwgMzAwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAw
KSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwMCwgMCwgNTAsIDMwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwog
CiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNp
b24pOwogICAgICAgICAvLyBPY2NsdXNpb24gd2l0aGluIHRoZSBzdXJmYWNlIGlzIGxvc3Qgd2hl
biBsZWF2aW5nIHRoZSBhbmltYXRpbmcgc3VyZmFjZS4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1
dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZh
Y2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2
ZUNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAogICAgICAgICB0aGlz
LT52aXNpdExheWVyKGxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVy
KHBhcmVudCwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBPY2NsdXNpb24gaXMgbm90IGFkZGVk
IGZvciB0aGUgYW5pbWF0aW5nIHxsYXllcnwuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKICAgICB9CiB9OwogCkBAIC0yMDYy
LDI3ICsyMDYyLDI3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Bt
b3N0LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudDIsIG9jY2x1
c2lvbik7CiAgICAgICAgIC8vIFRoaXMgb2NjbHVzaW9uIHdpbGwgYWZmZWN0IGFsbCBzdXJmYWNl
cy4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMw
MCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHBhcmVudDIsIG9jY2x1c2lvbik7
CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlQ2hpbGQyLCBvY2NsdXNpb24pOwog
ICAgICAgICB0aGlzLT5lbnRlckxheWVyKHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDMwMCwg
MzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgMCwgMTAwLCAzMDAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2VDaGlsZCwgSW50UmVjdCgw
LCAwLCAzMDAsIDMwMCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihzdXJmYWNlQ2hpbGQs
IG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9u
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAwLCA1MCwgMzAwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMw
MCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwMCwgMCwgNTAsIDMw
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAw
LCAzMDAsIDMwMCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihzdXJmYWNlLCBvY2NsdXNp
b24pOwogCiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBv
Y2NsdXNpb24pOwogICAgICAgICAvLyBPY2NsdXNpb24gd2l0aGluIHRoZSBzdXJmYWNlIGlzIGxv
c3Qgd2hlbiBsZWF2aW5nIHRoZSBhbmltYXRpbmcgc3VyZmFjZS4KLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAw
LCAzMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAs
IDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0
KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlz
LT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAogICAgICAg
ICB0aGlzLT52aXNpdExheWVyKGxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRl
ckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBPY2NsdXNpb24gaXMgbm90
IGFkZGVkIGZvciB0aGUgYW5pbWF0aW5nIHxsYXllcnwuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKICAgICB9CiB9OwogCkBA
IC0yMTIwLDcgKzIxMjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
c3VyZmFjZTIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3Vy
ZmFjZShzdXJmYWNlMiwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDMw
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShzdXJm
YWNlMiwgb2NjbHVzaW9uKTsKQEAgLTIxMjgsNTMgKzIxMjgsNTMgQEAgcHJvdGVjdGVkOgogCiAg
ICAgICAgIC8vIHN1cmZhY2VDaGlsZDIgaXMgbW92aW5nIGluIHNjcmVlbiBzcGFjZSBidXQgbm90
IHJlbGF0aXZlIHRvIGl0cyB0YXJnZXQsIHNvIG9jY2x1c2lvbiBzaG91bGQgaGFwcGVuIGluIGl0
cyB0YXJnZXQgc3BhY2Ugb25seS4KICAgICAgICAgLy8gSXQgYWxzbyBtZWFucyB0aGF0IHRoaW5n
cyBvY2NsdWRpbmcgaW4gc2NyZWVuIHNwYWNlIChlLmcuIHN1cmZhY2UyKSBjYW5ub3Qgb2NjbHVk
ZSB0aGlzIGxheWVyLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAx
MDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkMiwg
SW50UmVjdCgwLCAwLCAxMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFj
ZUNoaWxkMiwgSW50UmVjdCgwLCAwLCAxMDAsIDMwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNF
KG9jY2x1c2lvbi5vY2NsdWRlZChzdXJmYWNlQ2hpbGQsIEludFJlY3QoMCwgMCwgNTAsIDMwMCkp
KTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2VDaGlsZDIsIG9jY2x1c2lvbik7
CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24pOwogICAg
ICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHN1cmZhY2VDaGlsZCwgSW50UmVj
dCgwLCAwLCAxMDAsIDMwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgNTAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCAzMDApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNU
X0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAzMDApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDAsIDIwMCwgMzAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgMCwgMjAwLCAzMDApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAz
MDApKSk7CiAKICAgICAgICAgLy8gVGhlIHN1cmZhY2VDaGlsZCBpcyBvY2NsdWRlZCBieSB0aGUg
c3VyZmFjZUNoaWxkMiwgYnV0IGlzIG1vdmluZyByZWxhdGl2ZSBpdHMgdGFyZ2V0IGFuZCB0aGUg
c2NyZWVuLCBzbyBpdAogICAgICAgICAvLyBjYW4ndCBiZSBvY2NsdWRlZC4KLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjAwLCAzMDApLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHN1cmZhY2VDaGlsZCwgSW50UmVjdCgwLCAwLCAyMDAsIDMwMCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyMDAsIDMwMCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDIwMCwg
MzAwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHN1cmZhY2VD
aGlsZCwgSW50UmVjdCgwLCAwLCA1MCwgMzAwKSkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlTGF5
ZXIoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHN1
cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoZSBzdXJmYWNlQ2hpbGQgaXMgbW92aW5n
IGluIHNjcmVlbiBzcGFjZSBidXQgbm90IHJlbGF0aXZlIHRvIGl0cyB0YXJnZXQsIHNvIG9jY2x1
c2lvbiBzaG91bGQgaGFwcGVuIGluIGl0cyB0YXJnZXQgc3BhY2Ugb25seS4KLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDUwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMTAwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwg
MzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
cmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAs
IDAsIDIwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlLCBJ
bnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDEwMCwgMCwgMjAwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZh
Y2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVMYXll
cihzdXJmYWNlLCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUgc3VyZmFjZSdzIG93bmluZyBs
YXllciBpcyBtb3ZpbmcgaW4gc2NyZWVuIHNwYWNlIGJ1dCBub3QgcmVsYXRpdmUgdG8gaXRzIHRh
cmdldCwgc28gb2NjbHVzaW9uIHNob3VsZCBoYXBwZW4gaW4gaXRzIHRhcmdldCBzcGFjZSBvbmx5
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMzAwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDAsIDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1
cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3Vy
ZmFjZSwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKIAogICAgICAgICB0aGlzLT5lbnRlckNv
bnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhlIGNv
bnRyaWJ1dGluZyB8c3VyZmFjZXwgaXMgYW5pbWF0aW5nIHNvIGl0IGNhbid0IGJlIG9jY2x1ZGVk
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDMwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2Us
IGZhbHNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRp
bmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMzAwLCAz
MDApKSk7CiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBv
Y2NsdXNpb24pOwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7
CiAgICAgICAgIC8vIFRoZSB8c3VyZmFjZXwgaXMgbW92aW5nIGluIHRoZSBzY3JlZW4gYW5kIGlu
IGl0cyB0YXJnZXQsIHNvIGFsbCBvY2NsdXNpb24gd2l0aGluIHRoZSBzdXJmYWNlIGlzIGxvc3Qg
d2hlbiBsZWF2aW5nIGl0LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwg
MCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1
MCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
SW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihsYXll
ciwgb2NjbHVzaW9uKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVz
aW9uKTsKICAgICAgICAgLy8gVGhlIHxsYXllcnwgaXMgYW5pbWF0aW5nIGluIHRoZSBzY3JlZW4g
YW5kIGluIGl0cyB0YXJnZXQsIHNvIG5vIG9jY2x1c2lvbiBpcyBhZGRlZC4KLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNTAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAg
ICAgfQogfTsKIApAQCAtMjIwMiw5ICsyMjAyLDkgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlz
LT52aXNpdExheWVyKHN1cmZhY2UyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdENv
bnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZTIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoNTAsIDUwLCAyMDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoNTAsIDUwLCAyMDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTAsIDUw
LCAyMDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3Vy
ZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBDbGVhciBhbnkgc3RvcmVkIG9j
Y2x1c2lvbi4KQEAgLTIyMTQsOSArMjIxNCw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdENvbnRy
aWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA0MDAsIDQwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDQwMCwgNDAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDQwMCwgNDAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA0MDAsIDQwMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKICAgICB9CiB9OwpAQCAtMjIzOSw5ICsyMjM5LDkgQEAgcHJvdGVjdGVkOgog
ICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogCi0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMjAwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMzAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDMwMCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CkBAIC0yMjY1LDIyICsyMjY1LDIy
IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gfHRvcG1vc3R8IG9jY2x1ZGVzIHRoZSByZXBsaWNh
LCBidXQgbm90IHRoZSBzdXJmYWNlIGl0c2VsZi4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0
b3Btb3N0LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDEwMCwgMTAw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgMTAw
LCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUo
KSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCi0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJp
YnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFN1cmZhY2Ug
aXMgbm90IG9jY2x1ZGVkIHNvIGl0IHNob3VsZG4ndCB0aGluayBpdCBpcy4KLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVj
dCgwLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRl
bnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwogICAgIH0K
IH07CiAKQEAgLTIzMDMsMjMgKzIzMDMsMjMgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyB8dG9w
bW9zdHwgb2NjbHVkZXMgdGhlIHN1cmZhY2UsIGJ1dCBub3QgdGhlIGVudGlyZSBzdXJmYWNlJ3Mg
cmVwbGljYS4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwog
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTEwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMTEwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5
ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAxMDAsIDExMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTEw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwg
MTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgx
dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
IAogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVz
aW9uKTsKIAogICAgICAgICAvLyBTdXJmYWNlIGlzIG9jY2x1ZGVkLCBidXQgb25seSB0aGUgdG9w
IDEwcHggb2YgdGhlIHJlcGxpY2EuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDAsIDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250
ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAsIDEwMCwgOTApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCB0cnVlLCBJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDAsIDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250
ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMCwgMTAwLCA5MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIHRydWUsIEludFJl
Y3QoMCwgMCwgMTAwLCAxMDApKSk7CiAgICAgfQogfTsKIApAQCAtMjM0NCwyMyArMjM0NCwyMyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIob3ZlclJlcGxpY2EsIG9jY2x1
c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIob3ZlclN1cmZhY2UsIG9jY2x1c2lvbik7
CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDIwMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgNTAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVy
KHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5z
aXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEw
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAK
ICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lv
bik7CiAKICAgICAgICAgLy8gU3VyZmFjZSBhbmQgcmVwbGljYSBhcmUgb2NjbHVkZWQgZGlmZmVy
ZW50IGFtb3VudHMuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQwLCAwLCA2
MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJl
Y3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCAwLCA1MCwgMTAwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgdHJ1ZSwgSW50UmVj
dCgwLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0MCwg
MCwgNjAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRl
bnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCAwLCA1MCwgMTAwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgdHJ1ZSwgSW50UmVj
dCgwLCAwLCAxMDAsIDEwMCkpKTsKICAgICB9CiB9OwogCkBAIC0yMzg0LDE4ICsyMzg0LDE4IEBA
IHByb3RlY3RlZDoKICAgICAgICAgLy8gfHRvcG1vc3R8IG9jY2x1ZGVzIGV2ZXJ5dGhpbmcgcGFy
dGlhbGx5IHNvIHdlIGtub3cgb2NjbHVzaW9uIGlzIGhhcHBlbmluZyBhdCBhbGwuCiAgICAgICAg
IHRoaXMtPnZpc2l0TGF5ZXIodG9wbW9zdCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgMTAwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDUwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAg
RVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZUNoaWxkLCBvY2Ns
dXNpb24pOwogCiAgICAgICAgIC8vIHN1cmZhY2VDaGlsZCBpbmNyZWFzZXMgdGhlIG9jY2x1c2lv
biBpbiB0aGUgc2NyZWVuIGJ5IGEgbmFycm93IHNsaXZlci4KLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDEwMCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgp
LnJlY3RzKCkuc2l6ZSgpKTsKICAgICAgICAgLy8gSW4gaXRzIG93biBzdXJmYWNlLCBzdXJmYWNl
Q2hpbGQgaXMgYXQgMCwwIGFzIGlzIGl0cyBvY2NsdXNpb24uCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3
YXlzIGhhcyBhIGNsaXBSZWN0LiBTbyB0aGUgcGFyZW50IG9mIHxzdXJmYWNlfCBoYXMgYSBjbGlw
UmVjdC4gSG93ZXZlciwgdGhlIG93bmluZyBsYXllciBmb3IgfHN1cmZhY2V8IGRvZXMgbm90CkBA
IC0yNDA1LDIwICsyNDA1LDIwIEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+ZW50ZXJDb250
cmlidXRpbmdTdXJmYWNlKHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhl
IHN1cmZhY2VDaGlsZCdzIHBhcmVudCBkb2VzIG5vdCBoYXZlIGEgY2xpcFJlY3QgYXMgaXQgb3du
cyBhIHJlbmRlciBzdXJmYWNlLiBNYWtlIHN1cmUgdGhlIHVub2NjbHVkZWQgcmVjdAogICAgICAg
ICAvLyBkb2VzIG5vdCBnZXQgY2xpcHBlZCBhd2F5IGluYXBwcm9wcmlhdGVseS4KLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgNDAsIDEwMCwgMTApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIGZhbHNl
LCBJbnRSZWN0KDAsIDAsIDEwMCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgNDAsIDEwMCwgMTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZh
Y2VDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgNTAp
KSk7CiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlQ2hpbGQs
IG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gV2hlbiB0aGUgc3VyZmFjZUNoaWxkJ3Mgb2NjbHVz
aW9uIGlzIHRyYW5zZm9ybWVkIHVwIHRvIGl0cyBwYXJlbnQsIG1ha2Ugc3VyZSBpdCBpcyBub3Qg
Y2xpcHBlZCBhd2F5IGluYXBwcm9wcmlhdGVseSBhbHNvLgogICAgICAgICB0aGlzLT5lbnRlckxh
eWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDYwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVY
UEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNp
emUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDEwLCAxMDAsIDUw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMCwgMTAwLCA1MCksIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKICAg
ICAgICAgdGhpcy0+bGVhdmVMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAgIHRo
aXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogICAgICAg
ICAvLyBUaGUgc3VyZmFjZSdzIHBhcmVudCBkb2VzIGhhdmUgYSBjbGlwUmVjdCBhcyBpdCBpcyB0
aGUgcm9vdCBsYXllci4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgNTAs
IDEwMCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50
UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCA1MCwgMTAwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSkpOwogICAgIH0KIH07CiAKQEAgLTI0NDQsNyArMjQ0NCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgICAgIC8vIFRoZSByb290IGxheWVyIGFsd2F5cyBoYXMgYSBjbGlw
UmVjdC4gU28gdGhlIHBhcmVudCBvZiB8c3VyZmFjZXwgaGFzIGEgY2xpcFJlY3QgZ2l2aW5nIHRo
ZSBzdXJmYWNlIGl0c2VsZiBhIGNsaXBSZWN0LgogICAgICAgICAgICAgdGhpcy0+ZW50ZXJDb250
cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgICAgICAvLyBNYWtl
IHN1cmUgdGhlIHBhcmVudCdzIGNsaXBSZWN0IGNsaXBzIHRoZSB1bm9jY2x1ZGVkIHJlZ2lvbiBv
ZiB0aGUgY2hpbGQgc3VyZmFjZS4KLSAgICAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJm
YWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAzMDApKSk7
CisgICAgICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwg
ZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAzMDApKSk7CiAgICAgICAgIH0KICAgICAgICAgdGhp
cy0+cmVzZXRMYXllckl0ZXJhdG9yKCk7CiAgICAgICAgIHsKQEAgLTI0NTYsNyArMjQ1Niw3IEBA
IHByb3RlY3RlZDoKICAgICAgICAgICAgIC8vIFRoZSByb290IGxheWVyIGFsd2F5cyBoYXMgYSBj
bGlwUmVjdC4gU28gdGhlIHBhcmVudCBvZiB8c3VyZmFjZXwgaGFzIGEgY2xpcFJlY3QgZ2l2aW5n
IHRoZSBzdXJmYWNlIGl0c2VsZiBhIGNsaXBSZWN0LgogICAgICAgICAgICAgdGhpcy0+ZW50ZXJD
b250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgICAgICAvLyBN
YWtlIHN1cmUgdGhlIHZpZXdwb3J0IHJlY3QgY2xpcHMgdGhlIHVub2NjbHVkZWQgcmVnaW9uIG9m
IHRoZSBjaGlsZCBzdXJmYWNlLgotICAgICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZh
Y2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDMwMCkpKTsK
KyAgICAgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBm
YWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDMwMCkpKTsKICAgICAgICAgfQogICAgIH0KIH07CkBA
IC0yNDgzLDE3ICsyNDgzLDE3IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gfHRvcG1vc3R8IG9j
Y2x1ZGVzIGV2ZXJ5dGhpbmcgcGFydGlhbGx5IHNvIHdlIGtub3cgb2NjbHVzaW9uIGlzIGhhcHBl
bmluZyBhdCBhbGwuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIodG9wbW9zdCwgb2NjbHVzaW9u
KTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA4MCwgNTApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA4MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgODAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCA4MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gc3VyZmFjZUNoaWxkIGlz
IG5vdCBvcGFxdWUgYW5kIGRvZXMgbm90IG9jY2x1ZGUsIHNvIHdlIGhhdmUgYSBub24tZW1wdHkg
dW5vY2NsdWRlZCBhcmVhIG9uIHN1cmZhY2UuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3Vy
ZmFjZUNoaWxkLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDgwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDgwLCA1MCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8v
IFRoZSByb290IGxheWVyIGFsd2F5cyBoYXMgYSBjbGlwUmVjdC4gU28gdGhlIHBhcmVudCBvZiB8
c3VyZmFjZXwgaGFzIGEgY2xpcFJlY3QuIEhvd2V2ZXIsIHRoZSBvd25pbmcgbGF5ZXIgZm9yIHxz
dXJmYWNlfCBkb2VzIG5vdApAQCAtMjUwMiwxMyArMjUwMiwxMyBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2VDaGlsZCwgb2NjbHVz
aW9uKTsKICAgICAgICAgLy8gVGhlIHN1cmZhY2VDaGlsZCdzIHBhcmVudCBkb2VzIG5vdCBoYXZl
IGEgY2xpcFJlY3QgYXMgaXQgb3ducyBhIHJlbmRlciBzdXJmYWNlLgotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCA1MCwgODAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBmYWxzZSwgSW50UmVj
dCgwLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCA1
MCwgODAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVu
dFJlY3Qoc3VyZmFjZUNoaWxkLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKICAg
ICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2VDaGlsZCwgb2NjbHVz
aW9uKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAg
ICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24p
OwogICAgICAgICAvLyBUaGUgc3VyZmFjZSdzIHBhcmVudCBkb2VzIGhhdmUgYSBjbGlwUmVjdCBh
cyBpdCBpcyB0aGUgcm9vdCBsYXllci4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgNTAsIDgwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFj
ZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDUwLCA4MCwgNTApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwg
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKICAgICB9CiB9OwogCkBAIC0yNTU2LDI4ICsyNTU2
LDI4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvY2NsdWRpbmdMYXll
cjIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIob2NjbHVkaW5nTGF5ZXIx
LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDV1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAg
IC8vIEV2ZXJ5dGhpbmcgb3V0c2lkZSB0aGUgc3VyZmFjZS9yZXBsaWNhIGlzIG9jY2x1ZGVkIGJ1
dCB0aGUgc3VyZmFjZS9yZXBsaWNhIGl0c2VsZiBpcyBub3QuCiAgICAgICAgIHRoaXMtPmVudGVy
TGF5ZXIoZmlsdGVyZWRTdXJmYWNlLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgxLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMSwgMCwgMTAwLCAxMDApKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDEsIDEwMCwgOTkpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAxLCAxMDAsIDEw
MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgOTksIDEwMCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0
KC0xLCAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgMTAwLCA5OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRT
dXJmYWNlLCBJbnRSZWN0KDAsIC0xLCAxMDAsIDEwMCkpKTsKLQotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAxLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMzAwICsgMSwgMCwgMTAwLCAx
MDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwMCArIDAsIDEsIDEw
MCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgzMDAgKyAwLCAxLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMzAwICsgMCwgMCwgOTksIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDMwMCAtIDEsIDAsIDEwMCwgMTAwKSkp
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAwLCAwLCAxMDAsIDk5
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJl
Y3QoMzAwICsgMCwgLTEsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDEsIDAsIDk5LCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRl
cmVkU3VyZmFjZSwgSW50UmVjdCgxLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgwLCAxLCAxMDAsIDk5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwgMSwgMTAwLCAxMDApKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgOTksIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KC0xLCAwLCAxMDAsIDEwMCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDk5KSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwgLTEs
IDEwMCwgMTAwKSkpOworCisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAwICsgMSwg
MCwgOTksIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJm
YWNlLCBJbnRSZWN0KDMwMCArIDEsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDMwMCArIDAsIDEsIDEwMCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgzMDAgKyAwLCAxLCAxMDAsIDEwMCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAwLCAwLCA5OSwgMTAwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3Qo
MzAwIC0gMSwgMCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MzAwICsgMCwgMCwgMTAwLCA5OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmls
dGVyZWRTdXJmYWNlLCBJbnRSZWN0KDMwMCArIDAsIC0xLCAxMDAsIDEwMCkpKTsKICAgICAgICAg
dGhpcy0+bGVhdmVMYXllcihmaWx0ZXJlZFN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAg
Ly8gVGhlIGZpbHRlcmVkIGxheWVyL3JlcGxpY2EgZG9lcyBub3Qgb2NjbHVkZS4KLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDB1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVj
dHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIFRoZSBzdXJmYWNlIGhhcyBhIGJhY2tncm91bmQg
Ymx1ciwgc28gaXQgbmVlZHMgcGl4ZWxzIHRoYXQgYXJlIGN1cnJlbnRseSBjb25zaWRlcmVkIG9j
Y2x1ZGVkIGluIG9yZGVyIHRvIGJlIGRyYXduLiBTbyB0aGUgcGl4ZWxzCkBAIC0yNTg1LDkgKzI1
ODUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFj
ZShmaWx0ZXJlZFN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJMYXll
cihwYXJlbnQsIG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDV1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTAp
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1LCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAg
ICAgICAgIEludFJlY3Qgb3V0c2V0UmVjdDsKQEAgLTI1OTYsNDQgKzI1OTYsNDQgQEAgcHJvdGVj
dGVkOgogICAgICAgICAvLyBOb3RoaW5nIGluIHRoZSBibHVyIG91dHNldHMgZm9yIHRoZSBmaWx0
ZXJlZFN1cmZhY2UgaXMgb2NjbHVkZWQuCiAgICAgICAgIG91dHNldFJlY3QgPSBJbnRSZWN0KDUw
IC0gb3V0c2V0TGVmdCwgNTAgLSBvdXRzZXRUb3AsIDUwICsgb3V0c2V0TGVmdCArIG91dHNldFJp
Z2h0LCA1MCArIG91dHNldFRvcCArIG91dHNldEJvdHRvbSk7CiAgICAgICAgIHRlc3RSZWN0ID0g
b3V0c2V0UmVjdDsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgdGVzdFJlY3QpKTsKIAogICAgICAgICAvLyBTdHVmZiBvdXRzaWRlIHRoZSBibHVy
IG91dHNldHMgaXMgc3RpbGwgb2NjbHVkZWQgdGhvdWdoLgogICAgICAgICB0ZXN0UmVjdCA9IG91
dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgxLCAwKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKICAgICAg
ICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMCwgMSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRl
c3RSZWN0KSk7CiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJl
Y3QubW92ZSgtMSwgMCk7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgxLCAwKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRS
ZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsK
ICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5tb3ZlKDAs
IC0xKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAsIDEpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOwogCiAgICAgICAg
IC8vIE5vdGhpbmcgaW4gdGhlIGJsdXIgb3V0c2V0cyBmb3IgdGhlIGZpbHRlcmVkU3VyZmFjZSdz
IHJlcGxpY2EgaXMgb2NjbHVkZWQuCiAgICAgICAgIG91dHNldFJlY3QgPSBJbnRSZWN0KDIwMCAt
IG91dHNldExlZnQsIDUwIC0gb3V0c2V0VG9wLCA1MCArIG91dHNldExlZnQgKyBvdXRzZXRSaWdo
dCwgNTAgKyBvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pOwogICAgICAgICB0ZXN0UmVjdCA9IG91
dHNldFJlY3Q7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIHRlc3RSZWN0KSk7CiAKICAgICAgICAgLy8gU3R1ZmYgb3V0c2lkZSB0aGUgYmx1ciBv
dXRzZXRzIGlzIHN0aWxsIG9jY2x1ZGVkIHRob3VnaC4KICAgICAgICAgdGVzdFJlY3QgPSBvdXRz
ZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CiAgICAgICAg
IHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAsIDEpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0
UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0
Lm1vdmUoLTEsIDApOwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEob3V0c2V0UmVj
dCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CiAg
ICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJlY3QubW92ZSgwLCAt
MSk7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKICAgICB9CiB9Owog
CkBAIC0yNjcxLDkgKzI2NzEsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMt
PnZpc2l0TGF5ZXIob2NjbHVkaW5nTGF5ZXJBYm92ZSwgb2NjbHVzaW9uKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAwIC8gMiwgMTAwIC8gMiwgNTAgLyAyLCA1MCAvIDIp
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMDAgLyAyLCAxMDAgLyAyLCA1MCAvIDIsIDUwIC8gMiks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5z
aXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDEwMCwgNTAs
IDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDEwMCwgNTAsIDUwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoZmlsdGVyZWRTdXJmYWNlMiwgb2NjbHVzaW9u
KTsKQEAgLTI2ODYsNyArMjY4Niw3IEBAIHByb3RlY3RlZDoKIAogICAgICAgICAvLyBUZXN0IGV4
cGVjdGF0aW9ucyBpbiB0aGUgdGFyZ2V0LgogICAgICAgICBJbnRSZWN0IGV4cGVjdGVkT2NjbHVz
aW9uID0gSW50UmVjdCgxMDAgKyBvdXRzZXRSaWdodCAqIDIsIDEwMCArIG91dHNldEJvdHRvbSAq
IDIsIDUwIC0gKG91dHNldExlZnQgKyBvdXRzZXRSaWdodCkgKiAyLCA1MCAtIChvdXRzZXRUb3Ag
KyBvdXRzZXRCb3R0b20pICogMik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3Rl
ZE9jY2x1c2lvbiwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKClb
MF0pOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZE9jY2x1c2lvbiwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKClbMF0pOwogCiAgICAgICAgIC8vIFRl
c3QgZXhwZWN0YXRpb25zIGluIHRoZSBzY3JlZW4uIFRha2UgdGhlIGNlaWxpbmcgb2YgaGFsZiBv
ZiB0aGUgb3V0c2V0cy4KICAgICAgICAgb3V0c2V0VG9wID0gKG91dHNldFRvcCArIDEpIC8gMjsK
QEAgLTI2OTUsNyArMjY5NSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgb3V0c2V0TGVmdCA9IChv
dXRzZXRMZWZ0ICsgMSkgLyAyOwogICAgICAgICBleHBlY3RlZE9jY2x1c2lvbiA9IEludFJlY3Qo
MTAwIC8gMiArIG91dHNldFJpZ2h0ICogMiwgMTAwIC8gMiArIG91dHNldEJvdHRvbSAqIDIsIDUw
IC8gMiAtIChvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQpICogMiwgNTAgLzIgLSAob3V0c2V0VG9w
ICsgb3V0c2V0Qm90dG9tKSAqIDIpOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBl
Y3RlZE9jY2x1c2lvbiwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygp
WzBdKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRPY2NsdXNpb24sIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKVswXSk7CiAgICAgfQogfTsKIApAQCAt
Mjc0MiwyOCArMjc0MiwyOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
b2NjbHVkaW5nTGF5ZXIyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdExheWVyKG9j
Y2x1ZGluZ0xheWVyMSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwg
MTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSg1dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0
cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMw
MCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USg1dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKIAogICAgICAgICAvLyBFdmVyeXRoaW5nIG91dHNpZGUgdGhlIHN1cmZhY2UvcmVwbGljYSBp
cyBvY2NsdWRlZCBidXQgdGhlIHN1cmZhY2UvcmVwbGljYSBpdHNlbGYgaXMgbm90LgogICAgICAg
ICB0aGlzLT5lbnRlckxheWVyKGZpbHRlcmVkU3VyZmFjZSwgb2NjbHVzaW9uKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMSwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMSwgMCwgNTAsIDUwKSkp
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAxLCA1MCwgNDkpLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAx
LCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDQ5
LCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJ
bnRSZWN0KC0xLCAwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDUwLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVy
ZWRTdXJmYWNlLCBJbnRSZWN0KDAsIC0xLCA1MCwgNTApKSk7Ci0KLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMTUwICsgMSwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMTUwICsgMSwgMCwgNTAsIDUw
KSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxNTAgKyAwLCAxLCA1MCwg
NDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50
UmVjdCgxNTAgKyAwLCAxLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDE1MCArIDAsIDAsIDQ5LCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCAtIDEsIDAsIDUwLCA1MCkpKTsKLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTUwICsgMCwgMCwgNTAsIDQ5KSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMTUwICsg
MCwgLTEsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxLCAwLCA0
OSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgxLCAwLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MCwgMSwgNTAsIDQ5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1
cmZhY2UsIEludFJlY3QoMCwgMSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDQ5LCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmls
dGVyZWRTdXJmYWNlLCBJbnRSZWN0KC0xLCAwLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDQ5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwgLTEsIDUwLCA1MCkpKTsKKworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDE1MCArIDEsIDAsIDQ5LCA1MCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCArIDEsIDAs
IDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxNTAgKyAwLCAxLCA1
MCwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgxNTAgKyAwLCAxLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMTUwICsgMCwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMTUwIC0gMSwgMCwgNTAsIDUwKSkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDE1MCArIDAsIDAsIDUwLCA0OSksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCArIDAsIC0x
LCA1MCwgNTApKSk7CiAgICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIoZmlsdGVyZWRTdXJmYWNlLCBv
Y2NsdXNpb24pOwogCiAgICAgICAgIC8vIFRoZSBmaWx0ZXJlZCBsYXllci9yZXBsaWNhIGRvZXMg
bm90IG9jY2x1ZGUuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMw
MCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBUaGUgc3Vy
ZmFjZSBoYXMgYSBiYWNrZ3JvdW5kIGJsdXIsIHNvIGl0IG5lZWRzIHBpeGVscyB0aGF0IGFyZSBj
dXJyZW50bHkgY29uc2lkZXJlZCBvY2NsdWRlZCBpbiBvcmRlciB0byBiZSBkcmF3bi4gU28gdGhl
IHBpeGVscwpAQCAtMjc3MSw3ICsyNzcxLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52
aXNpdENvbnRyaWJ1dGluZ1N1cmZhY2UoZmlsdGVyZWRTdXJmYWNlLCBvY2NsdXNpb24pOwogCiAg
ICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShjbGlwcGluZ1N1cmZhY2UsIG9j
Y2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwg
MTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1LCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAg
ICAgICBJbnRSZWN0IG91dHNldFJlY3Q7CkBAIC0yNzgyLDQ1ICsyNzgyLDQ1IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgb3V0c2V0UmVjdCA9IEludFJlY3QoNTAgLSBvdXRzZXRMZWZ0LCA1MCAtIG91
dHNldFRvcCwgNTAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIDUwICsgb3V0c2V0VG9wICsg
b3V0c2V0Qm90dG9tKTsKICAgICAgICAgY2xpcHBlZE91dHNldFJlY3QgPSBpbnRlcnNlY3Rpb24o
b3V0c2V0UmVjdCwgSW50UmVjdCgwIC0gb3V0c2V0TGVmdCwgMCAtIG91dHNldFRvcCwgMzAwICsg
b3V0c2V0TGVmdCArIG91dHNldFJpZ2h0LCA3MCArIG91dHNldFRvcCArIG91dHNldEJvdHRvbSkp
OwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChj
bGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGNsaXBw
ZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3Vy
ZmFjZSwgdGVzdFJlY3QpKTsKIAogICAgICAgICAvLyBTdHVmZiBvdXRzaWRlIHRoZSAoY2xpcHBl
ZCkgYmx1ciBvdXRzZXRzIGlzIHN0aWxsIG9jY2x1ZGVkIHRob3VnaC4KICAgICAgICAgdGVzdFJl
Y3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRz
ZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMCwgMSk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBw
aW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0Owog
ICAgICAgICB0ZXN0UmVjdC5tb3ZlKC0xLCAwKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDEs
IDApOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CiAgICAgICAgIHRl
c3RSZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJlY3QubW92ZSgwLCAtMSk7CiAgICAg
ICAgIHRlc3RSZWN0LmV4cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNs
aXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5n
U3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNl
dFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0
ZXN0UmVjdCkpOwogCiAgICAgICAgIC8vIE5vdGhpbmcgaW4gdGhlIChjbGlwcGVkKSBibHVyIG91
dHNldHMgZm9yIHRoZSBmaWx0ZXJlZFN1cmZhY2UncyByZXBsaWNhIGlzIG9jY2x1ZGVkLgogICAg
ICAgICBvdXRzZXRSZWN0ID0gSW50UmVjdCgyMDAgLSBvdXRzZXRMZWZ0LCA1MCAtIG91dHNldFRv
cCwgNTAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIDUwICsgb3V0c2V0VG9wICsgb3V0c2V0
Qm90dG9tKTsKICAgICAgICAgY2xpcHBlZE91dHNldFJlY3QgPSBpbnRlcnNlY3Rpb24ob3V0c2V0
UmVjdCwgSW50UmVjdCgwIC0gb3V0c2V0TGVmdCwgMCAtIG91dHNldFRvcCwgMzAwICsgb3V0c2V0
TGVmdCArIG91dHNldFJpZ2h0LCA3MCArIG91dHNldFRvcCArIG91dHNldEJvdHRvbSkpOwogICAg
ICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShj
bGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjbGlwcGlu
Z1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGNsaXBwZWRPdXRz
ZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwg
dGVzdFJlY3QpKTsKIAogICAgICAgICAvLyBTdHVmZiBvdXRzaWRlIHRoZSAoY2xpcHBlZCkgYmx1
ciBvdXRzZXRzIGlzIHN0aWxsIG9jY2x1ZGVkIHRob3VnaC4KICAgICAgICAgdGVzdFJlY3QgPSBv
dXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNs
aXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0
OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMCwgMSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChj
bGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGNsaXBw
ZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3Vy
ZmFjZSwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAg
ICB0ZXN0UmVjdC5tb3ZlKC0xLCAwKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDEsIDApOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CiAgICAgICAgIHRlc3RSZWN0
ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJlY3QubW92ZSgwLCAtMSk7CiAgICAgICAgIHRl
c3RSZWN0LmV4cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRP
dXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFj
ZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3Qs
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVj
dCkpOwogICAgIH0KIH07CiAKQEAgLTI4NjYsOSArMjg2Niw5IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgSW50UmVjdCBvY2NsdXNpb25CZWhpbmRSZXBsaWNhID0gSW50UmVjdCgyMTAsIDYwLCAzMCwg
MzApOwogCiAgICAgICAgIEludFJlY3QgZXhwZWN0ZWRPcGFxdWVCb3VuZHMgPSB1bmlvblJlY3Qo
b2NjbHVzaW9uQmVoaW5kU3VyZmFjZSwgb2NjbHVzaW9uQmVoaW5kUmVwbGljYSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZE9wYXF1ZUJvdW5kcywgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGV4
cGVjdGVkT3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4
cGVjdGVkT3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZE9wYXF1ZUJvdW5kcywg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAg
RVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogICAgIH0KIH07CkBAIC0yOTE0LDkgKzI5MTQsOSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIEludFJlY3Qgb2NjbHVzaW9uQWJvdmVSZXBsaWNhID0gSW50UmVjdCgyMDAsIDUwLCA1
MCwgNTApOwogCiAgICAgICAgIEludFJlY3QgZXhwZWN0ZWRPcGFxdWVCb3VuZHMgPSB1bmlvblJl
Y3Qob2NjbHVzaW9uQWJvdmVTdXJmYWNlLCBvY2NsdXNpb25BYm92ZVJlcGxpY2EpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWRPcGFxdWVCb3VuZHMsIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShl
eHBlY3RlZE9wYXF1ZUJvdW5kcywgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShl
eHBlY3RlZE9wYXF1ZUJvdW5kcywgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRPcGFxdWVCb3VuZHMs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKICAgICB9CiB9OwpAQCAtMzAxNSwxNyArMzAxNSwxNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIC8vIFRoZSBzbWFsbCBsYXllciBpcyBub3QgdHJhY2tlZCBiZWNhdXNlIGl0IGlz
IHRvbyBzbWFsbC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzbWFsbCwgb2NjbHVzaW9uKTsK
IAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDB1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJl
Y3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gVGhlIGxhcmdl
IGxheWVyIGlzIHRyYWNrZWQgYXMgaXQgaXMgbGFyZ2UgZW5vdWdoLgogICAgICAgICB0aGlzLT52
aXNpdExheWVyKGxhcmdlLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KEludFBvaW50KCksIHRyYWNraW5nU2l6ZSksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KEludFBvaW50KCksIHRyYWNraW5nU2l6ZSksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdChJbnRQb2ludCgpLCB0cmFja2luZ1NpemUpLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KEludFBvaW50KCksIHRyYWNraW5nU2l6ZSksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKICAgICB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Db250ZW50TGF5ZXJDaHJv
bWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Db250ZW50TGF5ZXJD
aHJvbWl1bVRlc3QuY3BwCmluZGV4IGZkMzVlMjIyNDVkZWNlODQxOWJjY2Y2YzA0MGRkNTczMzJj
NGE5OWIuLmQyZTc0ZmZjOTkyZThhNzUzZDk5MjQyMTlmOTdiZGRiMTk5ZDkyM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ29udGVudExheWVyQ2hyb21pdW1UZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NvbnRlbnRMYXllckNocm9t
aXVtVGVzdC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJv
bWl1bS5oIgogCiAjaW5jbHVkZSAiQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIgot
I2luY2x1ZGUgIkNDTGF5ZXJUcmVlVGVzdENvbW1vbi5oIgorI2luY2x1ZGUgIkNDR2VvbWV0cnlU
ZXN0VXRpbHMuaCIKICNpbmNsdWRlICJDQ1JlbmRlcmluZ1N0YXRzLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVy
RGVsZWdhdGUuaCIKQEAgLTEwNSw3ICsxMDUsNyBAQCBURVNUKENvbnRlbnRMYXllckNocm9taXVt
VGVzdCwgQ29udGVudExheWVyUGFpbnRlcldpdGhEZXZpY2VTY2FsZSkKICAgICBDQ1JlbmRlcmlu
Z1N0YXRzIHN0YXRzOwogICAgIHVwZGF0ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50UmVjdCwg
SW50U2l6ZSgyNTYsIDI1NiksIGNvbnRlbnRzU2NhbGUsIGNvbnRlbnRzU2NhbGUsIHJlc3VsdGlu
Z09wYXF1ZVJlY3QsIHN0YXRzKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShvcGFxdWVSZWN0
SW5Db250ZW50U3BhY2UsIHJlc3VsdGluZ09wYXF1ZVJlY3QpOworICAgIEVYUEVDVF9SRUNUX0VR
KG9wYXF1ZVJlY3RJbkNvbnRlbnRTcGFjZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xh
eWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwCmluZGV4IDBlNmViMGViNDFiMDJiZGFkNTFjNjdkYjZkODUwOTM3MzM5
NmRkOTEuLmI4YTRiNWNhMjlkNTVlMTI1MDE0ODQxMzE2ZWNmMzAwYjNhNDJiNWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBA
IC0yNiw5ICsyNiw5IEBACiAKICNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCiAKKyNpbmNsdWRl
ICJDQ0dlb21ldHJ5VGVzdFV0aWxzLmgiCiAjaW5jbHVkZSAiQ0NMYXllckltcGwuaCIKICNpbmNs
dWRlICJDQ0xheWVyVHJlZUhvc3QuaCIKLSNpbmNsdWRlICJDQ0xheWVyVHJlZVRlc3RDb21tb24u
aCIKICNpbmNsdWRlICJDQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiRmFrZUNDTGF5
ZXJUcmVlSG9zdENsaWVudC5oIgogI2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCkBA
IC01NDAsMTggKzU0MCwxOCBAQCBURVNUX0YoTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeVB1c2hQ
cm9wZXJ0aWVzQWNjdW11bGF0ZXNVcGRhdGVSZWN0KQogCiAgICAgdGVzdExheWVyLT5zZXROZWVk
c0Rpc3BsYXlSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIEZsb2F0U2l6ZSg1LCA1
KSkpOwogICAgIHRlc3RMYXllci0+cHVzaFByb3BlcnRpZXNUbyhpbXBsTGF5ZXIuZ2V0KCkpOwot
ICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIEZs
b2F0U2l6ZSg1LCA1KSksIGltcGxMYXllci0+dXBkYXRlUmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBGbG9hdFNpemUoNSwgNSkpLCBpbXBs
TGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiAKICAgICAvLyBUaGUgQ0NMYXllckltcGwncyB1cGRhdGVS
ZWN0IHNob3VsZCBiZSBhY2N1bXVsYXRlZCBoZXJlLCBzaW5jZSB3ZSBkaWQgbm90IGRvIGFueXRo
aW5nIHRvIGNsZWFyIGl0LgogICAgIHRlc3RMYXllci0+c2V0TmVlZHNEaXNwbGF5UmVjdChGbG9h
dFJlY3QoRmxvYXRQb2ludCgxMCwgMTApLCBGbG9hdFNpemUoNSwgNSkpKTsKICAgICB0ZXN0TGF5
ZXItPnB1c2hQcm9wZXJ0aWVzVG8oaW1wbExheWVyLmdldCgpKTsKLSAgICBFWFBFQ1RfRkxPQVRf
UkVDVF9FUShGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBGbG9hdFNpemUoMTUsIDE1KSks
IGltcGxMYXllci0+dXBkYXRlUmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3Qo
RmxvYXRQb2ludDo6emVybygpLCBGbG9hdFNpemUoMTUsIDE1KSksIGltcGxMYXllci0+dXBkYXRl
UmVjdCgpKTsKIAogICAgIC8vIElmIHdlIGRvIGNsZWFyIHRoZSBDQ0xheWVySW1wbCBzaWRlLCB0
aGVuIHRoZSBuZXh0IHVwZGF0ZVJlY3Qgc2hvdWxkIGJlIGZyZXNoIHdpdGhvdXQgYWNjdW11bGF0
aW9uLgogICAgIGltcGxMYXllci0+cmVzZXRBbGxDaGFuZ2VUcmFja2luZ0ZvclN1YnRyZWUoKTsK
ICAgICB0ZXN0TGF5ZXItPnNldE5lZWRzRGlzcGxheVJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
MTAsIDEwKSwgRmxvYXRTaXplKDUsIDUpKSk7CiAgICAgdGVzdExheWVyLT5wdXNoUHJvcGVydGll
c1RvKGltcGxMYXllci5nZXQoKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0
KEZsb2F0UG9pbnQoMTAsIDEwKSwgRmxvYXRTaXplKDUsIDUpKSwgaW1wbExheWVyLT51cGRhdGVS
ZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEZsb2F0UmVjdChGbG9hdFBvaW50KDEwLCAxMCks
IEZsb2F0U2l6ZSg1LCA1KSksIGltcGxMYXllci0+dXBkYXRlUmVjdCgpKTsKIH0KIAogY2xhc3Mg
TGF5ZXJDaHJvbWl1bVdpdGhDb250ZW50U2NhbGluZyA6IHB1YmxpYyBMYXllckNocm9taXVtIHsK
QEAgLTU5Niw3ICs1OTYsNyBAQCBURVNUX0YoTGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrQ29udGVu
dHNTY2FsZUNoYW5nZVRyaWdnZXJzTmVlZHNEaXNwbGF5KQogCiAgICAgRVhFQ1VURV9BTkRfVkVS
SUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRDb250ZW50c1Nj
YWxlKHRlc3RMYXllci0+Y29udGVudHNTY2FsZSgpICsgMS5mKSk7CiAgICAgRVhQRUNUX1RSVUUo
dGVzdExheWVyLT5uZWVkc0Rpc3BsYXkoKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxv
YXRSZWN0KDAsIDAsIDMyMCwgMjQwKSwgdGVzdExheWVyLT5sYXN0TmVlZHNEaXNwbGF5UmVjdCgp
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgMzIwLCAyNDApLCB0ZXN0TGF5
ZXItPmxhc3ROZWVkc0Rpc3BsYXlSZWN0KCkpOwogfQogCiBjbGFzcyBGYWtlQ0NMYXllclRyZWVI
b3N0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCAwMGVlMjhh
Njg4ZWE2ZDI4NTU2N2EzN2EwMDcwZDM1YWExMWJmNzA1Li5hYTM2MWVhMmQyMjE1MTJhZGNhZWQy
YjgxZDhkMjUxYWQ2OTcyN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCIKICNpbmNsdWRlICJD
Q0FuaW1hdGlvblRlc3RDb21tb24uaCIKLSNpbmNsdWRlICJDQ0xheWVyVHJlZVRlc3RDb21tb24u
aCIKKyNpbmNsdWRlICJDQ0dlb21ldHJ5VGVzdFV0aWxzLmgiCiAjaW5jbHVkZSAiQ0NPdmVyZHJh
d01ldHJpY3MuaCIKICNpbmNsdWRlICJDQ1JlbmRlcmluZ1N0YXRzLmgiCiAjaW5jbHVkZSAiQ0NT
aW5nbGVUaHJlYWRQcm94eS5oIiAvLyBGb3IgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkCkBAIC00
NiwxMiArNDYsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0VGVzdHM7CiB1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogdXNpbmcgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAotI2RlZmlu
ZSBFWFBFQ1RfRVFfUkVDVChhLCBiKSBcCi0gICAgRVhQRUNUX0VRKGEueCgpLCBiLngoKSk7IFwK
LSAgICBFWFBFQ1RfRVEoYS55KCksIGIueSgpKTsgXAotICAgIEVYUEVDVF9FUShhLndpZHRoKCks
IGIud2lkdGgoKSk7IFwKLSAgICBFWFBFQ1RfRVEoYS5oZWlnaHQoKSwgYi5oZWlnaHQoKSk7Ci0K
IG5hbWVzcGFjZSB7CiAKIGNsYXNzIFRlc3RDQ09jY2x1c2lvblRyYWNrZXIgOiBwdWJsaWMgQ0NP
Y2NsdXNpb25UcmFja2VyIHsKQEAgLTYyNCw3ICs2MTgsNyBAQCBURVNUX0YoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgdmVyaWZ5VXBkYXRlUmVjdFdoZW5Db250ZW50Qm91bmRzQXJlU2NhbGVkKQog
ICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAg
ICAgbV90ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPnVw
ZGF0ZShtX3F1ZXVlLCAwLCBtX3N0YXRzKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9h
dFJlY3QoMCwgMCwgMzAwLCAzMDAgKiAwLjgpLCBsYXllci0+dXBkYXRlUmVjdCgpKTsKKyAgICBF
WFBFQ1RfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgMzAwLCAzMDAgKiAwLjgpLCBsYXllci0+dXBk
YXRlUmVjdCgpKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogCiAgICAgLy8gQWZ0ZXIgdGhlIHRp
bGVzIGFyZSB1cGRhdGVkIG9uY2UsIGFub3RoZXIgaW52YWxpZGF0ZSBvbmx5IG5lZWRzIHRvIHVw
ZGF0ZSB0aGUgYm91bmRzIG9mIHRoZSBsYXllci4KQEAgLTYzMiw3ICs2MjYsNyBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5VXBkYXRlUmVjdFdoZW5Db250ZW50Qm91bmRz
QXJlU2NhbGVkKQogICAgIG1fdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwog
ICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoY29udGVudEJvdW5kcyk7CiAgICAgbGF5
ZXItPnVwZGF0ZShtX3F1ZXVlLCAwLCBtX3N0YXRzKTsKLSAgICBFWFBFQ1RfRkxPQVRfUkVDVF9F
UShGbG9hdFJlY3QobGF5ZXJCb3VuZHMpLCBsYXllci0+dXBkYXRlUmVjdCgpKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShGbG9hdFJlY3QobGF5ZXJCb3VuZHMpLCBsYXllci0+dXBkYXRlUmVjdCgpKTsK
ICAgICB1cGRhdGVUZXh0dXJlcygpOwogCiAgICAgLy8gUGFydGlhbCByZS1wYWludCBzaG91bGQg
YWxzbyBiZSByZXByZXNlbnRlZCBieSB0aGUgdXBkYXRlUmVjdCBpbiBsYXllciBzcGFjZSwgbm90
IGNvbnRlbnQgc3BhY2UuCkBAIC02NDEsNyArNjM1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIHZlcmlmeVVwZGF0ZVJlY3RXaGVuQ29udGVudEJvdW5kc0FyZVNjYWxlZCkKICAg
ICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAg
IG1fdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwogICAgIGxheWVyLT51cGRh
dGUobV9xdWV1ZSwgMCwgbV9zdGF0cyk7Ci0gICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRS
ZWN0KDQ1LCA4MCwgMTUsIDgpLCBsYXllci0+dXBkYXRlUmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShGbG9hdFJlY3QoNDUsIDgwLCAxNSwgOCksIGxheWVyLT51cGRhdGVSZWN0KCkpOwogfQog
CiBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNv
bnRlbnRzU2NhbGVDaGFuZ2VzKQpAQCAtNjU2LDcgKzY1MCw3IEBAIFRFU1RfRihUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29udGVudHNTY2FsZUNoYW5nZXMp
CiAKICAgICAvLyBJbnZhbGlkYXRlIHRoZSBlbnRpcmUgbGF5ZXIuCiAgICAgbGF5ZXItPnNldE5l
ZWRzRGlzcGxheSgpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgwLCAwLCAx
MDAsIDEwMCksIGxheWVyLT5sYXN0TmVlZHNEaXNwbGF5UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShGbG9hdFJlY3QoMCwgMCwgMTAwLCAxMDApLCBsYXllci0+bGFzdE5lZWRzRGlzcGxheVJl
Y3QoKSk7CiAKICAgICAvLyBQdXNoIHRoZSB0aWxlcyB0byB0aGUgaW1wbCBzaWRlIGFuZCBjaGVj
ayB0aGF0IHRoZXJlIGlzIGV4YWN0bHkgb25lLgogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3Jp
dGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CkBAIC02NzMsNyArNjY3LDcgQEAgVEVTVF9GKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeUludmFsaWRhdGlvbldoZW5Db250ZW50c1NjYWxl
Q2hhbmdlcykKICAgICAvLyBpcyBub3Qgc2NhbGVkLgogICAgIGxheWVyLT5zZXRDb250ZW50c1Nj
YWxlKDIpOwogICAgIGxheWVyLT5zZXRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCAy
MDAsIDIwMCkpOwotICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgwLCAwLCAxMDAs
IDEwMCksIGxheWVyLT5sYXN0TmVlZHNEaXNwbGF5UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9F
UShGbG9hdFJlY3QoMCwgMCwgMTAwLCAxMDApLCBsYXllci0+bGFzdE5lZWRzRGlzcGxheVJlY3Qo
KSk7CiAKICAgICAvLyBUaGUgaW1wbCBzaWRlIHNob3VsZCBnZXQgMngyIHRpbGVzIG5vdy4KICAg
ICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwpAQCAt
MTIxNSw3ICsxMjA5LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVD
b250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVyLT51cGRhdGUobV9xdWV1ZSwgJm9jY2x1ZGVk
LCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0g
bGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7Ci0gICAgRVhQRUNUX0VRX1JFQ1Qo
aW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRl
bnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShpbnRlcnNlY3Rpb24ob3BhcXVlUGFp
bnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVY
UEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAq
IDIsIDEpOwpAQCAtMTIyOCw3ICsxMjIyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVyLT51cGRhdGUobV9xdWV1
ZSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1
ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7Ci0gICAgRVhQ
RUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyks
IG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShpbnRlcnNlY3Rp
b24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRz
KCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwog
CiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRl
ZCgpLCAyMDAwMCAqIDIsIDEpOwpAQCAtMTI0Myw3ICsxMjM3LDcgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVyLT51
cGRhdGUobV9xdWV1ZSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygp
OwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9u
KCk7Ci0gICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlz
aWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVDVF9F
UShpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29u
dGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIgKyAxLCAxKTsKQEAgLTEyNTgsNyArMTI1Miw3IEBA
IFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lv
bikKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAg
dXBkYXRlVGV4dHVyZXMoKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29u
dGVudE9wYXF1ZVJlZ2lvbigpOwotICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihJbnRS
ZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91
bmRzKCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGludGVyc2VjdGlvbihJbnRSZWN0KDEwLCAxMDAs
IDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAg
IEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAw
MCAqIDIgKyAxICArIDEsIDEpOwpAQCAtMTU0MCw3ICsxNTM0LDcgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJp
bmdQYWludCkKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAsIG1fc3RhdHMpOwogICAgIGxh
eWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5yZXNldFBhaW50ZWRSZWN0KCk7CiAKLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIo
KS0+cGFpbnRlZFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXllci0+
dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CiAKICAgICB7CiAgICAgICAg
IERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwpAQCAtMTU1MSw3ICsxNTQ1LDcg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxl
SXNOb3REaXN0b3J0ZWREdXJpbmdQYWludCkKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRS
ZWN0KGNvbnRlbnRSZWN0KTsKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAsIG1fc3RhdHMp
OwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5
ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGxheWVyUmVj
dCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwogfQogCiBU
RVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJc05v
dERpc3RvcnRlZER1cmluZ0ludmFsaWRhdGlvbikKQEAgLTE1NzQsNyArMTU2OCw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90RGlz
dG9ydGVkRHVyaW5nSW52YWxpCiAgICAgbGF5ZXItPnVwZGF0ZShtX3F1ZXVlLCAwLCBtX3N0YXRz
KTsKICAgICBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cmVzZXRQYWludGVkUmVjdCgp
OwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5ZXItPnRyYWNraW5nTGF5
ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
KSwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwogCiAgICAg
ewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKQEAgLTE1ODUs
NyArMTU3OSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29u
dGVudHNTY2FsZUlzTm90RGlzdG9ydGVkRHVyaW5nSW52YWxpCiAgICAgbGF5ZXItPnNldE5lZWRz
RGlzcGxheVJlY3QobGF5ZXJSZWN0KTsKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAsIG1f
c3RhdHMpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNr
aW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGxh
eWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJUcmFuc2Zvcm1PcGVyYXRpb25zVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCA5ZTRmNzVhM2Nl
YjhlMDkyZmY2ZWI0Nzg2ZDcwMGU4NWQ2Mzk1OGY0Li5kNTRkYjIxNGQ1ZTcwMTA4MDZkZjU4NTMz
MDY5MTUyNzNlZWYzODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcApAQCAtMjYsMTEgKzI2LDkg
QEAKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1PcGVyYXRpb25zLmg+CiAKLSNpbmNs
dWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KLQotI2luY2x1ZGUgIkNDTGF5
ZXJUcmVlVGVzdENvbW1vbi5oIgotCisjaW5jbHVkZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5oIgog
I2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0
aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3Bw
CmluZGV4IGViNDQyZjRlM2RlZWYyZWM5OWI2N2EzOWVmNTQ5YWM1NjVjZDU0MjMuLmE1ODdlNGEz
NzRhM2ZhZGIxNWI2ZDllM2Q1MTEzOGFmZDkxMGNiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVzdC5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oPgogCi0jaW5jbHVkZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCisjaW5jbHVk
ZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161775</attachid>
            <date>2012-08-31 14:28:51 -0700</date>
            <delta_ts>2012-08-31 14:36:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95526-20120831142839.patch</filename>
            <type>text/plain</type>
            <size>146882</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDY0MWUwNTlhZDI5NzYxNjdhY2NkMDM0M2JhNTY2NzM2NGI0YWFiMGIuLjZhZWU1MjczOTE4ZDg3
NzhlMzdkMjY0NmE1NWY2Yjc5MjEwNzI4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjkgQEAKIDIwMTItMDgtMzAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIENvbnNvbGlkYXRlIGdlb21ldHJ5IHVuaXQg
dGVzdGluZyBmdW5jdGlvbnMgZm9yIGNjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTUyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgY29uc29saWRhdGVzIGdlb21ldHJ5IGVxdWFsaXR5IChyZWN0
cywgbWF0cmljZXMpIGluIENDR2VvbWV0cnlVdGlscyBhbmQgcmVtb3ZlcyBhIGZldyBkdXBsaWNh
dGUgbWFjcm9zIGZvcgorICAgICAgICB0ZXN0aW5nIHJlY3QgZXF1YWxpdHkuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiB0ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcDoK
KyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDR2VvbWV0
cnlUZXN0VXRpbHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdFRlc3RzKToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKToKKyAgICAgICAgKiB0
ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlVGVzdENvbW1vbi5oLgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdFRlc3RzKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
OgorCisyMDEyLTA4LTMwICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgW2Nocm9taXVtXSBSZXZlcnQgV2ViQ29tcG9zaXRvclN1cHBvcnQgdG8gcmF3IHB0
cnMsIG1ha2UgZHRvciBwcm90ZWN0ZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk1NTIwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4
IGMxMTAwY2U4ZmVhYzNiOGJmNWUyZDczMGMzM2QxZWJjZmZhYmI2YzAuLjU0ZjBkYjhlNWMyYzU1
NGNjY2E3ZTE2MDhhN2U2Zjc4ODcxMTc3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aQpAQCAtMTIwLDYgKzEyMCw4IEBACiAgICAgICAgICAgICAndGVzdHMvQ0NEYW1hZ2VUcmFja2Vy
VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2VUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NGcmFtZVJhdGVDb250cm9sbGVyVGVzdC5jcHAn
LAorICAgICAgICAgICAgJ3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMuY3BwJywKKyAgICAgICAg
ICAgICd0ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0ND
SGVhZHNVcERpc3BsYXlUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NLZXlmcmFtZWRB
bmltYXRpb25DdXJ2ZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlclRlc3QuY3BwJywKQEAgLTEzMiw3ICsxMzQsNiBAQAogICAgICAgICAgICAg
J3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwJywKLSAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZVRlc3RD
b21tb24uaCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NNYXRoVXRpbFRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdENvbW1vbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NHZW9tZXRyeVRlc3RVdGlscy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmExN2ZjNjQzZmY2MWYxNGE5M2MyMWQwMDk5ZjQzZTE2OWMzOWU1YTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMuY3Bw
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRpbHMuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0
Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXRUZXN0cyB7CisKK3ZvaWQgRXhwZWN0VHJhbnNmb3JtYXRpb25NYXRyaXhFcShj
b25zdCBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4JiBleHBlY3RlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9u
TWF0cml4JiBhY3R1YWwpCit7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTExKCks
IChhY3R1YWwpLm0xMSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMTIoKSwg
KGFjdHVhbCkubTEyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0xMygpLCAo
YWN0dWFsKS5tMTMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTE0KCksIChh
Y3R1YWwpLm0xNCgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjEoKSwgKGFj
dHVhbCkubTIxKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMigpLCAoYWN0
dWFsKS5tMjIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIzKCksIChhY3R1
YWwpLm0yMygpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjQoKSwgKGFjdHVh
bCkubTI0KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMSgpLCAoYWN0dWFs
KS5tMzEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMyKCksIChhY3R1YWwp
Lm0zMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzMoKSwgKGFjdHVhbCku
bTMzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zNCgpLCAoYWN0dWFsKS5t
MzQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQxKCksIChhY3R1YWwpLm00
MSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDIoKSwgKGFjdHVhbCkubTQy
KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MygpLCAoYWN0dWFsKS5tNDMo
KSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQ0KCksIChhY3R1YWwpLm00NCgp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0VGVzdHMKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGVh
NzA5MThiM2RmMGQ1ZjdlYTRlODM2MmE2ZGVlMmUyZGQxNGFhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmgKQEAgLTAs
MCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDQ0dlb21ldHJ5VGVzdFV0aWxzX2gK
KyNkZWZpbmUgQ0NHZW9tZXRyeVRlc3RVdGlsc19oCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xh
c3MgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg7Cit9CisKK25hbWVzcGFjZSBXZWJLaXRUZXN0cyB7
CisKKy8vIFRoZXNlIGFyZSBtYWNyb3MgaW5zdGVhZCBvZiBmdW5jdGlvbnMgc28gdGhhdCB3ZSBn
ZXQgdXNlZnVsIGxpbmUgbnVtYmVycyB3aGVyZSBhIHRlc3QgZmFpbGVkLgorI2RlZmluZSBFWFBF
Q1RfRkxPQVRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLmxvY2F0aW9uKCkueCgpLCAoYWN0
dWFsKS5sb2NhdGlvbigpLngoKSk7IFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5s
b2NhdGlvbigpLnkoKSwgKGFjdHVhbCkubG9jYXRpb24oKS55KCkpOyBcCisgICAgRVhQRUNUX0ZM
T0FUX0VRKChleHBlY3RlZCkuc2l6ZSgpLndpZHRoKCksIChhY3R1YWwpLnNpemUoKS53aWR0aCgp
KTsgXAorICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLnNpemUoKS5oZWlnaHQoKSwgKGFj
dHVhbCkuc2l6ZSgpLmhlaWdodCgpKQorCisjZGVmaW5lIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVk
LCBhY3R1YWwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFWFBFQ1RfRVEoKGV4
cGVjdGVkKS5sb2NhdGlvbigpLngoKSwgKGFjdHVhbCkubG9jYXRpb24oKS54KCkpOyAgICAgIFwK
KyAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5sb2NhdGlvbigpLnkoKSwgKGFjdHVhbCkubG9jYXRp
b24oKS55KCkpOyAgICAgIFwKKyAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkud2lkdGgo
KSwgKGFjdHVhbCkuc2l6ZSgpLndpZHRoKCkpOyAgICAgIFwKKyAgICBFWFBFQ1RfRVEoKGV4cGVj
dGVkKS5zaXplKCkuaGVpZ2h0KCksIChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKKworLy8gVGhp
cyBpcyBhIGZ1bmN0aW9uIHJhdGhlciB0aGFuIGEgbWFjcm8gYmVjYXVzZSB3aGVuIHRoaXMgaXMg
aW5jbHVkZWQgYXMgYSBtYWNybworLy8gaW4gYnVsaywgaXQgY2F1c2VzIGEgc2lnbmlmaWNhbnQg
c2xvdy1kb3duIGluIGNvbXBpbGF0aW9uIHRpbWUuIFRoaXMgcHJvYmxlbQorLy8gZXhpc3RzIHdp
dGggYm90aCBnY2MgYW5kIGNsYW5nLCBhbmQgYnVncyBoYXZlIGJlZW4gZmlsZWQgYXQKKy8vIGh0
dHA6Ly9sbHZtLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMzY1MSBhbmQgaHR0cDovL2djYy5n
bnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD01NDMzNwordm9pZCBFeHBlY3RUcmFuc2Zv
cm1hdGlvbk1hdHJpeEVxKGNvbnN0IFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIGV4
cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIGFjdHVhbCk7CisKKyNkZWZpbmUgRVhQRUNUX1RSQU5T
Rk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgYWN0dWFsKSAgICAgICAgICAgIFwKKyAgICB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRyYW5z
Zm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIGFjdHVhbCk7IFwKKyAgICB9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdFRlc3RzCisKKyNlbmRpZiAvLyBDQ0dlb21ldHJ5VGVzdFV0aWxzX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QuY3BwCmluZGV4IGRiZjI4ZTQ5NTk1ODQwNzBjOWFmZGIyMWVmMjZhNjZmYzdk
ZTk4YTIuLmY5NjgzYzlkNzU5YmU4MzUxZDRlNGY5ODk0MWQyMzE5ZWNkZTM1M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LmNwcApAQCAtMTQ3OCw5ICsxNDc4LDkgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUNvbnRlbnRSZWN0Rm9yTGF5ZXJzKQogICAgIENDTGF5
ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXMocGFyZW50LmdldCgpLCBw
YXJlbnQtPmJvdW5kcygpLCAxLCBkdW1teU1heFRleHR1cmVTaXplLCByZW5kZXJTdXJmYWNlTGF5
ZXJMaXN0KTsKICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0
cyhyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KEludFBvaW50KDUsIDUpLCBJbnRTaXplKDEwLCAxMCkpLCBncmFuZENoaWxkMS0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdChJbnRQb2lu
dCgxNSwgMTUpLCBJbnRTaXplKDUsIDUpKSwgZ3JhbmRDaGlsZDMtPmRyYXdhYmxlQ29udGVudFJl
Y3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMTUsIDE1KSwg
SW50U2l6ZSg1LCA1KSksIGdyYW5kQ2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoNSwgNSksIEludFNpemUoMTAsIDEwKSks
IGdyYW5kQ2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoSW50UG9pbnQoMTUsIDE1KSwgSW50U2l6ZSg1LCA1KSksIGdyYW5kQ2hpbGQzLT5k
cmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9p
bnQoMTUsIDE1KSwgSW50U2l6ZSg1LCA1KSksIGdyYW5kQ2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRS
ZWN0KCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGQ0LT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkuaXNFbXB0eSgpKTsKIH0KIApAQCAtMTU1MCw5ICsxNTUwLDkgQEAgVEVTVChDQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlDbGlwUmVjdElzUHJvcGFnYXRlZENvcnJlY3RseVRvU3Vy
ZmFjZXMpCiAgICAgRVhQRUNUX0ZBTFNFKGdyYW5kQ2hpbGQ0LT5yZW5kZXJTdXJmYWNlKCkpOyAv
LyBCZWNhdXNlIGdyYW5kQ2hpbGQ0IGlzIGVudGlyZWx5IGNsaXBwZWQsIGl0IGlzIGV4cGVjdGVk
IHRvIG5vdCBoYXZlIGEgcmVuZGVyU3VyZmFjZS4KIAogICAgIC8vIFN1cmZhY2VzIGFyZSBjbGlw
cGVkIGJ5IHRoZWlyIHBhcmVudCwgYnV0IHVuLWFmZmVjdGVkIGJ5IHRoZSBvd25pbmcgbGF5ZXIn
cyBtYXNrc1RvQm91bmRzLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KEludFBvaW50
KDAsIDApLCBJbnRTaXplKDIwLCAyMCkpLCBncmFuZENoaWxkMS0+cmVuZGVyU3VyZmFjZSgpLT5j
bGlwUmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdChJbnRQb2ludCgwLCAw
KSwgSW50U2l6ZSgyMCwgMjApKSwgZ3JhbmRDaGlsZDItPnJlbmRlclN1cmZhY2UoKS0+Y2xpcFJl
Y3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMCwgMCksIElu
dFNpemUoMjAsIDIwKSksIGdyYW5kQ2hpbGQzLT5yZW5kZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAs
IDIwKSksIGdyYW5kQ2hpbGQxLT5yZW5kZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkpOworICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSksIGdy
YW5kQ2hpbGQyLT5yZW5kZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkpOworICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSksIGdyYW5kQ2hpbGQz
LT5yZW5kZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9z
dENvbW1vblRlc3QsIHZlcmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5KQpA
QCAtMTcwNyw3ICsxNzA3LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJp
ZnlWaXNpYmxlUmVjdEZvcklkZW50aXR5VHJhbnNmb3JtKQogICAgIEludFJlY3QgbGF5ZXJDb250
ZW50UmVjdCA9IEludFJlY3QoSW50UG9pbnQoMTAsIDEwKSwgSW50U2l6ZSgzMCwgMzApKTsKICAg
ICBJbnRSZWN0IGV4cGVjdGVkID0gSW50UmVjdChJbnRQb2ludCgxMCwgMTApLCBJbnRTaXplKDMw
LCAzMCkpOwogICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxj
dWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5
ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwg
YWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAogICAgIC8v
IENhc2UgMjogTGF5ZXIgaXMgb3V0c2lkZSB0aGUgc3VyZmFjZSByZWN0LgogICAgIGxheWVyQ29u
dGVudFJlY3QgPSBJbnRSZWN0KEludFBvaW50KDEyMCwgMTIwKSwgSW50U2l6ZSgzMCwgMzApKTsK
QEAgLTE3MTgsNyArMTcxOCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5VmlzaWJsZVJlY3RGb3JJZGVudGl0eVRyYW5zZm9ybSkKICAgICBsYXllckNvbnRlbnRSZWN0
ID0gSW50UmVjdChJbnRQb2ludCg4MCwgODApLCBJbnRTaXplKDMwLCAzMCkpOwogICAgIGV4cGVj
dGVkID0gSW50UmVjdChJbnRQb2ludCg4MCwgODApLCBJbnRTaXplKDIwLCAyMCkpOwogICAgIGFj
dHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0
U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsK
LSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3JUcmFuc2xhdGlvbnMpCkBAIC0xNzM0LDcgKzE3MzQs
NyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9y
VHJhbnNsYXRpb25zKQogICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZSgxMCwg
MTApOwogICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRT
aXplKDMwLCAzMCkpOwogICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9u
OjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVj
dCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBl
Y3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAog
ICAgIC8vIENhc2UgMjogTGF5ZXIgaXMgb3V0c2lkZSB0aGUgc3VyZmFjZSByZWN0LgogICAgIGxh
eWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwpAQCAtMTc0Nyw3ICsxNzQ3LDcg
QEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvclRy
YW5zbGF0aW9ucykKICAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS50cmFuc2xhdGUoODAsIDgw
KTsKICAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIw
KSk7CiAgICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxl
UmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VU
cmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAg
ICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIH0KIAogVEVTVChDQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjJEUm90YXRpb25zKQpAQCAtMTc2
NSw3ICsxNzY1LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNp
YmxlUmVjdEZvcjJEUm90YXRpb25zKQogICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0
ZSg0NSk7CiAgICAgSW50UmVjdCBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIElu
dFNpemUoMzAsIDMwKSk7CiAgICAgSW50UmVjdCBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21t
b246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRS
ZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4
cGVjdGVkLCBhY3R1YWwpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwog
CiAgICAgLy8gQ2FzZSAyOiBMYXllciBpcyBvdXRzaWRlIHRoZSBzdXJmYWNlIHJlY3QuCiAgICAg
bGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CkBAIC0xNzgzLDcgKzE3ODMs
NyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9y
MkRSb3RhdGlvbnMpCiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ucm90YXRlKDQ1KTsKICAg
ICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMzAsIDMwKSk7CiAg
ICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0
YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zv
cm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAogICAgIC8vIENhc2UgNDogVGhlIGxheWVy
IGlzIHJvdGF0ZWQgYWJvdXQgaXRzIHRvcC1sZWZ0IGNvcm5lciwgYW5kIHRyYW5zbGF0ZWQgdXB3
YXJkcy4gSW4KICAgICAvLyAgICAgICAgIHN1cmZhY2Ugc3BhY2UsIHRoZSBsYXllciBpcyBvcmll
bnRlZCBkaWFnb25hbGx5LCB3aXRoIG9ubHkgdGhlIHRvcCBjb3JuZXIKQEAgLTE3OTUsNyArMTc5
NSw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RG
b3IyRFJvdGF0aW9ucykKICAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5yb3RhdGUoNDUpOwog
ICAgIGV4cGVjdGVkID0gSW50UmVjdChJbnRQb2ludCgxNSwgMCksIEludFNpemUoMTUsIDMwKSk7
IC8vIHJpZ2h0IGhhbGYgb2YgbGF5ZXIgYm91bmRzLgogICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVl
SG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVy
Q29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFj
dHVhbCk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJs
ZVJlY3RGb3IzZE9ydGhvZ3JhcGhpY1RyYW5zZm9ybSkKQEAgLTE4MTEsNyArMTgxMSw3IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IzZE9ydGhv
Z3JhcGhpY1RyYW5zZm9ybSkKICAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5yb3RhdGUzZCgw
LCA0NSwgMCk7CiAgICAgSW50UmVjdCBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCks
IEludFNpemUoMTAwLCAxMDApKTsKICAgICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9z
dENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29u
dGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVh
bCk7CiAKICAgICAvLyBDYXNlIDI6IE9ydGhvZ3JhcGhpYyBwcm9qZWN0aW9uIG9mIGEgbGF5ZXIg
cm90YXRlZCBhYm91dCB5LWF4aXMgYnkgNDUgZGVncmVlcywgYnV0CiAgICAgLy8gICAgICAgICBz
aGlmdGVkIHRvIHRoZSBzaWRlIHNvIG9ubHkgdGhlIHJpZ2h0LWhhbGYgdGhlIGxheWVyIHdvdWxk
IGJlIHZpc2libGUgb24KQEAgLTE4MjIsNyArMTgyMiw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IzZE9ydGhvZ3JhcGhpY1RyYW5zZm9ybSkK
ICAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5yb3RhdGUzZCgwLCA0NSwgMCk7IC8vIHJvdGF0
ZXMgYWJvdXQgdGhlIGxlZnQgZWRnZSBvZiB0aGUgbGF5ZXIKICAgICBleHBlY3RlZCA9IEludFJl
Y3QoSW50UG9pbnQoNTAsIDApLCBJbnRTaXplKDUwLCAxMDApKTsgLy8gcmlnaHQgaGFsZiBvZiB0
aGUgbGF5ZXIuCiAgICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVW
aXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1
cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFs
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIH0KIAogVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNkUGVyc3BlY3RpdmVU
cmFuc2Zvcm0pCkBAIC0xODQ5LDcgKzE4NDksNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RQZXJzcGVjdGl2ZVRyYW5zZm9ybSkKIAogICAg
IEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KC01MCwgLTUwKSwgSW50U2l6ZSgy
MDAsIDIwMCkpOwogICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpj
YWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwg
bGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3Rl
ZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIAogICAg
IC8vIENhc2UgMjogc2FtZSBwcm9qZWN0aW9uIGFzIGJlZm9yZSwgZXhjZXB0IHRoYXQgdGhlIGxh
eWVyIGlzIGFsc28gdHJhbnNsYXRlZCB0byB0aGUKICAgICAvLyAgICAgICAgIHNpZGUsIHNvIHRo
YXQgb25seSB0aGUgcmlnaHQgaGFsZiBvZiB0aGUgbGF5ZXIgc2hvdWxkIGJlIHZpc2libGUuCkBA
IC0xODYyLDcgKzE4NjIsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlm
eVZpc2libGVSZWN0Rm9yM2RQZXJzcGVjdGl2ZVRyYW5zZm9ybSkKICAgICBsYXllclRvU3VyZmFj
ZVRyYW5zZm9ybS50cmFuc2xhdGUzZCgtMjAwLCAwLCAwKTsKICAgICBleHBlY3RlZCA9IEludFJl
Y3QoSW50UG9pbnQoNTAsIC01MCksIEludFNpemUoMTAwLCAyMDApKTsgLy8gVGhlIHJpZ2h0IGhh
bGYgb2YgdGhlIGxheWVyJ3MgYm91bmRpbmcgcmVjdC4KICAgICBhY3R1YWwgPSBDQ0xheWVyVHJl
ZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBsYXll
ckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9S
RUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBh
Y3R1YWwpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2li
bGVSZWN0Rm9yM2RPcnRob2dyYXBoaWNJc05vdENsaXBwZWRCZWhpbmRTdXJmYWNlKQpAQCAtMTg4
NSw3ICsxODg1LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNp
YmxlUmVjdEZvcjNkT3J0aG9ncmFwaGljSXNOb3RDbGlwcGVkQmUKIAogICAgIEludFJlY3QgZXhw
ZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAg
SW50UmVjdCBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVS
ZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRy
YW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAg
IEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogfQogCiBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RQZXJzcGVjdGl2ZVdoZW5DbGlw
cGVkQnlXKQpAQCAtMTk1MSw3ICsxOTUxLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvclBlcnNwZWN0aXZlVW5wcm9qZWN0aW9uKQogICAgIC8v
IHRoYXQgdGhlIGVudGlyZSBsYXllciBzaG91bGQgc3RpbGwgYmUgY29uc2lkZXJlZCB2aXNpYmxl
LgogICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KC0xMCwgLTEwKSwgSW50
U2l6ZSgyMCwgMjApKTsKICAgICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJl
Y3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhw
ZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiB9
CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNp
YmxlQ29udGVudFJlY3RzRm9yU2ltcGxlTGF5ZXJzKQpAQCAtMTk3MiwyMSArMTk3MiwyMSBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNv
bnRlbnRSZWN0c0ZvclNpbXBsZUxheQogCiAgICAgZXhlY3V0ZUNhbGN1bGF0ZURyYXdUcmFuc2Zv
cm1zQW5kVmlzaWJpbGl0eShyb290LmdldCgpKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwg
MTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDAp
LCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8g
bm90IGRyYXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgot
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxl
Q29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwg
cm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gbGF5ZXIgdmlzaWJsZUNvbnRl
bnRSZWN0cyBhcmUgY2xpcHBlZCBieSB0aGVpciB0YXJnZXRTdXJmYWNlCi0gICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1KSwgY2hp
bGQyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCA1MCwgNTApLCBjaGlsZDEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwogICAgIEVYUEVDVF9UUlVFKGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0
eSgpKTsKIAogICAgIC8vIGxheWVyIGRyYXdhYmxlQ29udGVudFJlY3RzIGFyZSBub3QgY2xpcHBl
ZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
NzUsIDc1LCA1MCwgNTApLCBjaGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1
MCksIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwgY2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwor
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJh
d2FibGVDb250ZW50UmVjdCgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNGb3JMYXllcnNDbGlwcGVkQnlM
YXllcikKQEAgLTIwMTMsMjEgKzIwMTMsMjEgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNGb3JMYXllcnNDbGkKIAog
ICAgIEFTU0VSVF9GQUxTRShjaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKIAotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgp
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgp
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gTGF5
ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2aXNpYmxlQ29u
dGVudFJlY3RzLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBy
b290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMCwgMCksIGNoaWxkLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIGNoaWxkLT52aXNpYmxl
Q29udGVudFJlY3QoKSk7CiAKICAgICAvLyBBbGwgZ3JhbmRjaGlsZCB2aXNpYmxlQ29udGVudFJl
Y3RzIHNob3VsZCBiZSBjbGlwcGVkIGJ5IGNoaWxkLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDUwLCA1MCksIGdyYW5kQ2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7
Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1KSwgZ3JhbmRDaGls
ZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDUwLCA1MCksIGdyYW5kQ2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNSwgMjUpLCBncmFuZENoaWxkMi0+dmlzaWJsZUNv
bnRlbnRSZWN0KCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGQzLT52aXNpYmxlQ29udGVu
dFJlY3QoKS5pc0VtcHR5KCkpOwogCiAgICAgLy8gQWxsIGdyYW5kY2hpbGQgZHJhd2FibGVDb250
ZW50UmVjdHMgc2hvdWxkIGFsc28gYmUgY2xpcHBlZCBieSBjaGlsZC4KLSAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA1MCwgNTApLCBncmFuZENoaWxkMS0+ZHJhd2FibGVDb250
ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDI1LCAy
NSksIGdyYW5kQ2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwgZ3JhbmRDaGlsZDEtPmRyYXdhYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDI1LCAyNSksIGdyYW5k
Q2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hp
bGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKIH0KIApAQCAtMjA1NSwyNCAr
MjA1NSwyNCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxl
QW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvckxheWVyc0luVQogCiAgICAgQVNTRVJUX1RSVUUocmVu
ZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSk7CiAKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAs
IDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8vIExheWVycyB0aGF0IGRv
IG5vdCBkcmF3IGNvbnRlbnQgc2hvdWxkIGhhdmUgZW1wdHkgdmlzaWJsZUNvbnRlbnRSZWN0cy4K
LSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJs
ZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAs
IDApLCByZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsK
KyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMS0+
dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQW4gdW5jbGlwcGVkIHN1cmZhY2UgZ3Jv
d3MgaXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVkZSBhbGwgZHJhd2FibGUgcmVnaW9u
cyBvZiB0aGUgc3VidHJlZS4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCAx
NzAsIDE3MCksIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVu
dFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCAxNzAsIDE3MCksIHJl
bmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAK
ICAgICAvLyBBbGwgbGF5ZXJzIHRoYXQgZHJhdyBjb250ZW50IGludG8gdGhlIHVuY2xpcHBlZCBz
dXJmYWNlIGFyZSBhbHNvIHVuY2xpcHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDItPnZpc2libGVDb250
ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTAp
LCBjaGlsZDMtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQyLT52aXNpYmxlQ29udGVu
dFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGls
ZDMtPnZpc2libGVDb250ZW50UmVjdCgpKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDUwLCA1MCksIGNoaWxkMi0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEy
NSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBjaGlsZDIt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMjUs
IDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogfQogCiBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRl
bnRSZWN0c0ZvckxheWVyc0luQ2xpcHBlZFJlbmRlclN1cmZhY2UpCkBAIC0yMTAwLDI2ICsyMTAw
LDI2IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRW
aXNpYmxlQ29udGVudFJlY3RzRm9yTGF5ZXJzSW5DCiAKICAgICBBU1NFUlRfVFJVRShyZW5kZXJT
dXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpKTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBy
b290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90
IGRyYXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgotICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29u
dGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCks
IHJlbmRlclN1cmZhY2UxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52aXNp
YmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBBIGNsaXBwZWQgc3VyZmFjZSBncm93cyBpdHMg
ZHJhd2FibGVDb250ZW50UmVjdCB0byBpbmNsdWRlIGFsbCBkcmF3YWJsZSByZWdpb25zIG9mIHRo
ZSBzdWJ0cmVlLAogICAgIC8vIGJ1dCBhbHNvIGdldHMgY2xhbXBlZCBieSB0aGUgYW5jZXN0b3In
cyBjbGlwLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDk1LCA5NSksIHJl
bmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Cisg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA5NSwgOTUpLCByZW5kZXJTdXJmYWNlMS0+
cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQWxsIGxh
eWVycyB0aGF0IGRyYXcgY29udGVudCBpbnRvIHRoZSBzdXJmYWNlIGhhdmUgdGhlaXIgdmlzaWJs
ZUNvbnRlbnRSZWN0IGNsaXBwZWQgYnkgdGhlIHN1cmZhY2UgY2xpcFJlY3QuCi0gICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVu
dFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1KSwg
Y2hpbGQyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRS
ZWN0KCkpOwogICAgIEVYUEVDVF9UUlVFKGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNF
bXB0eSgpKTsKIAogICAgIC8vIEJ1dCB0aGUgZHJhd2FibGVDb250ZW50UmVjdHMgYXJlIHVuY2xp
cHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA1MCwgNTApLCBjaGls
ZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoNzUsIDc1LCA1MCwgNTApLCBjaGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJh
d2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUw
LCA1MCksIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwgY2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+
ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNGb3JTdXJmYWNlSGllcmFy
Y2h5KQpAQCAtMjE1MywzMiArMjE1MywzMiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvclN1cmZhY2VIaQogICAg
IEFTU0VSVF9UUlVFKHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIEFTU0VS
VF9UUlVFKHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJmYWNlKCkpOwogCi0gICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5yZW5kZXJTdXJmYWNlKCkt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5yZW5kZXJTdXJmYWNlKCkt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBMYXll
cnMgdGhhdCBkbyBub3QgZHJhdyBjb250ZW50IHNob3VsZCBoYXZlIGVtcHR5IHZpc2libGVDb250
ZW50UmVjdHMuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJv
b3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTIt
PnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTEtPnZpc2libGVDb250ZW50UmVjdCgp
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNl
Mi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQSBjbGlwcGVkIHN1cmZhY2UgZ3Jv
d3MgaXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVkZSBhbGwgZHJhd2FibGUgcmVnaW9u
cyBvZiB0aGUgc3VidHJlZSwKICAgICAvLyBidXQgYWxzbyBnZXRzIGNsYW1wZWQgYnkgdGhlIGFu
Y2VzdG9yJ3MgY2xpcC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA5NSwg
OTUpLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgOTUsIDk1KSwgcmVuZGVyU3Vy
ZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8v
IHJlbmRlclN1cmZhY2UxIGxpdmVzIGluIHRoZSAidW5jbGlwcGVkIHVuaXZlcnNlIiBvZiByZW5k
ZXJTdXJmYWNlMSwgYW5kIGlzIG9ubHkKICAgICAvLyBpbXBsaWNpdGx5IGNsaXBwZWQgYnkgcmVu
ZGVyU3VyZmFjZTEncyBjb250ZW50UmVjdC4gU28sIHJlbmRlclN1cmZhY2UyIGdyb3dzIHRvCiAg
ICAgLy8gZW5jbG9zZSBhbGwgZHJhd2FibGUgY29udGVudCBvZiBpdHMgc3VidHJlZS4KLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCAxNzAsIDE3MCksIHJlbmRlclN1cmZhY2Uy
LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCg1LCA1LCAxNzAsIDE3MCksIHJlbmRlclN1cmZhY2UyLT5yZW5kZXJTdXJm
YWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBBbGwgbGF5ZXJzIHRoYXQg
ZHJhdyBjb250ZW50IGludG8gcmVuZGVyU3VyZmFjZTIgdGhpbmsgdGhleSBhcmUgdW5jbGlwcGVk
LgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+
dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDUwLCA1MCksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQx
LT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCA1MCwgNTApLCBjaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
OwogCiAgICAgLy8gZHJhd2FibGVDb250ZW50UmVjdHMgYXJlIGFsc28gdW5jbGlwcGVkLgotICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxkMS0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUs
IDUwLCA1MCksIGNoaWxkMi0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwgY2hp
bGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
NzUsIDc1LCA1MCwgNTApLCBjaGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgxMjUsIDEyNSwgNTAsIDUwKSwgY2hpbGQzLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlm
eURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhUcmFuc2Zvcm1PblVuY2xpcHBlZFN1
cmZhY2UpCkBAIC0yMjA0LDIxICsyMjA0LDIxIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3RzV2l0aFRyYW5zZm9yCiAK
ICAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpKTsKIAotICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVy
U3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsK
KyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+cmVuZGVy
U3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAg
ICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29udGVudCBzaG91bGQgaGF2ZSBlbXB0eSB2
aXNpYmxlQ29udGVudFJlY3RzLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlz
aWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwg
MCksIHJlbmRlclN1cmZhY2UxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKICAgICAvLyBUaGUg
dW5jbGlwcGVkIHN1cmZhY2UgZ3Jvd3MgaXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVk
ZSBhbGwgZHJhd2FibGUgcmVnaW9ucyBvZiB0aGUgc3VidHJlZS4KICAgICBpbnQgZGlhZ29uYWxS
YWRpdXMgPSBjZWlsKHNxcnQoMi4wKSAqIDI1KTsKICAgICBJbnRSZWN0IGV4cGVjdGVkU3VyZmFj
ZURyYXdhYmxlQ29udGVudCA9IEludFJlY3QoNTAgLSBkaWFnb25hbFJhZGl1cywgNTAgLSBkaWFn
b25hbFJhZGl1cywgZGlhZ29uYWxSYWRpdXMgKiAyLCBkaWFnb25hbFJhZGl1cyAqIDIpOwotICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZFN1cmZhY2VEcmF3YWJsZUNvbnRlbnQsIHJlbmRl
clN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAg
RVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50LCByZW5kZXJTdXJm
YWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8g
QWxsIGxheWVycyB0aGF0IGRyYXcgY29udGVudCBpbnRvIHRoZSB1bmNsaXBwZWQgc3VyZmFjZSBh
cmUgYWxzbyB1bmNsaXBwZWQuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
NTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9S
RUNUX0VRKGV4cGVjdGVkU3VyZmFjZURyYXdhYmxlQ29udGVudCwgY2hpbGQxLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwg
Y2hpbGQxLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0
ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50LCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRW
aXNpYmxlQ29udGVudFJlY3RzV2l0aFRyYW5zZm9ybU9uQ2xpcHBlZFN1cmZhY2UpCkBAIC0yMjQ5
LDE1ICsyMjQ5LDE1IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJh
d2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3RzV2l0aFRyYW5zZm9yCiAgICAgaW50IGRpYWdvbmFs
UmFkaXVzID0gY2VpbChzcXJ0KDIuMCkgKiAyNSk7CiAgICAgSW50UmVjdCB1bmNsaXBwZWRTdXJm
YWNlQ29udGVudCA9IEludFJlY3QoNTAgLSBkaWFnb25hbFJhZGl1cywgNTAgLSBkaWFnb25hbFJh
ZGl1cywgZGlhZ29uYWxSYWRpdXMgKiAyLCBkaWFnb25hbFJhZGl1cyAqIDIpOwogICAgIEludFJl
Y3QgZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50ID0gaW50ZXJzZWN0aW9uKHVuY2xpcHBl
ZFN1cmZhY2VDb250ZW50LCBJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOwotICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShleHBlY3RlZFN1cmZhY2VEcmF3YWJsZUNvbnRlbnQsIHJlbmRlclN1cmZhY2UxLT5y
ZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1Rf
RVEoZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVy
U3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gT24gdGhlIGNsaXBw
ZWQgc3VyZmFjZSwgb25seSBhIHF1YXJ0ZXIgIG9mIHRoZSBjaGlsZDEgaXMgdmlzaWJsZSwgYnV0
IHdoZW4gcm90YXRpbmcKICAgICAvLyBpdCBiYWNrIHRvICBjaGlsZDEncyBjb250ZW50IHNwYWNl
LCB0aGUgYWN0dWFsIGVuY2xvc2luZyByZWN0IGVuZHMgdXAgY292ZXJpbmcgdGhlCiAgICAgLy8g
ZnVsbCBsZWZ0IGhhbGYgb2YgY2hpbGQxLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDI2LCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjYsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CiAKICAgICAvLyBUaGUgY2hpbGQncyBkcmF3YWJsZUNvbnRlbnRSZWN0IGlzIHVuY2xp
cHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEodW5jbGlwcGVkU3VyZmFjZUNvbnRlbnQsIGNo
aWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUSh1bmNsaXBw
ZWRTdXJmYWNlQ29udGVudCwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogfQogCiBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUJhY2tGYWNlQ3VsbGluZ1dpdGhv
dXRQcmVzZXJ2ZXMzZCkKQEAgLTI5MDAsNyArMjkwMCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdCwgdmVyaWZ5SGl0VGVzdGluZ0ZvclNpbmdsZUxheWVyV2l0aFNjYWxlZENvbnRl
bnRzCiAgICAgLy8gU2FuaXR5IGNoZWNrIHRoZSBzY2VuYXJpbyB3ZSBqdXN0IGNyZWF0ZWQuCiAg
ICAgLy8gVGhlIHZpc2libGVDb250ZW50UmVjdCBmb3IgdGVzdExheWVyIGlzIGFjdHVhbGx5IDEw
MHgxMDAsIGV2ZW4gdGhvdWdoIGl0cyBsYXlvdXQgc2l6ZSBpcyA1MHg1MCwgcG9zaXRpb25lZCBh
dCAyNXgyNS4KICAgICBDQ0xheWVySW1wbCogdGVzdExheWVyID0gcm9vdC0+Y2hpbGRyZW4oKVsw
XS5nZXQoKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdChJbnRQb2ludDo6emVybygp
LCBJbnRTaXplKDEwMCwgMTAwKSksIHRlc3RMYXllci0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwor
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMDAs
IDEwMCkpLCB0ZXN0TGF5ZXItPnZpc2libGVDb250ZW50UmVjdCgpKTsKICAgICBBU1NFUlRfRVEo
MXUsIHJlbmRlclN1cmZhY2VMYXllckxpc3Quc2l6ZSgpKTsKICAgICBBU1NFUlRfRVEoMXUsIHJv
b3QtPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKIApAQCAtMzUyMSw3ICsz
NTIxLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJm
YWNlVHJhbnNmb3Jtc0luSGlnaERQSSkKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBl
Y3RlZER1cGxpY2F0ZUNoaWxkRHJhd1RyYW5zZm9ybSA9IGNoaWxkLT5kcmF3VHJhbnNmb3JtKCk7
CiAgICAgRVhQRUNUX1RSQU5TRk9STUFUSU9OX01BVFJJWF9FUShjaGlsZC0+ZHJhd1RyYW5zZm9y
bSgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5kcmF3VHJhbnNmb3JtKCkpOwogICAgIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoY2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtKCks
IGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkpOwotICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShjaGlsZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpLCBkdXBsaWNhdGVD
aGlsZE5vbk93bmVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VR
KGNoaWxkLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPmRy
YXdhYmxlQ29udGVudFJlY3QoKSk7CiAgICAgRVhQRUNUX0VRKGNoaWxkLT5jb250ZW50Qm91bmRz
KCksIGR1cGxpY2F0ZUNoaWxkTm9uT3duZXItPmNvbnRlbnRCb3VuZHMoKSk7CiAKICAgICBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBleHBlY3RlZFJlbmRlclN1cmZhY2VEcmF3VHJhbnNmb3JtOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJ
bXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dEltcGxUZXN0LmNwcAppbmRleCA1NjJjMDg2NzcxZmFmMjZkZmQwYzVjY2RlYWY4MDUyMzg2YWM4
ZTY2Li5kMDliYzM2NDllYWViZWM0M2Q4OWRkNjIzNzQzMzZlYmYyNTYxYzI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LmNwcApAQCAtMjcsMTIgKzI3LDEyIEBACiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0SW1w
bC5oIgogCiAjaW5jbHVkZSAiQ0NBbmltYXRpb25UZXN0Q29tbW9uLmgiCisjaW5jbHVkZSAiQ0NH
ZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgIkNDSGVhZHNVcERpc3BsYXlMYXllckltcGwu
aCIKICNpbmNsdWRlICJDQ0lPU3VyZmFjZUxheWVySW1wbC5oIgogI2luY2x1ZGUgIkNDTGF5ZXJJ
bXBsLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRlc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ0xheWVy
VGlsaW5nRGF0YS5oIgotI2luY2x1ZGUgIkNDTGF5ZXJUcmVlVGVzdENvbW1vbi5oIgogI2luY2x1
ZGUgIkNDUXVhZFNpbmsuaCIKICNpbmNsdWRlICJDQ1JlbmRlclBhc3NEcmF3UXVhZC5oIgogI2lu
Y2x1ZGUgIkNDUmVuZGVyZXJHTC5oIgpAQCAtMjgyMCw3ICsyODIwLDcgQEAgVEVTVF9GKENDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LCB0ZXh0dXJlQ2FjaGluZ1dpdGhDbGlwcGluZykKICAgICAgICAg
RVhQRUNUX0xUKHF1YWRWaXNpYmxlUmVjdC53aWR0aCgpLCAxMDApOwogCiAgICAgICAgIC8vIFZl
cmlmeSB0aGF0IHRoZSByZW5kZXIgc3VyZmFjZSB0ZXh0dXJlIGlzICpub3QqIGNsaXBwZWQuCi0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgZnJhbWUu
cmVuZGVyUGFzc2VzWzBdLT5vdXRwdXRSZWN0KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgZnJhbWUucmVuZGVyUGFzc2VzWzBdLT5vdXRwdXRSZWN0
KCkpOwogCiAgICAgICAgIEVYUEVDVF9FUShDQ0RyYXdRdWFkOjpSZW5kZXJQYXNzLCBmcmFtZS5y
ZW5kZXJQYXNzZXNbMV0tPnF1YWRMaXN0KClbMF0tPm1hdGVyaWFsKCkpOwogICAgICAgICBDQ1Jl
bmRlclBhc3NEcmF3UXVhZCogcXVhZCA9IHN0YXRpY19jYXN0PENDUmVuZGVyUGFzc0RyYXdRdWFk
Kj4oZnJhbWUucmVuZGVyUGFzc2VzWzFdLT5xdWFkTGlzdCgpWzBdLmdldCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmlu
ZGV4IDc3N2Q2MGZjMDJiYzE1ZTJmNDEwODMyZWUzOTE2ZDYwNjNhYmZmNjEuLjBlM2NlYjgwNzEw
OGIwMDgxNjJlMDY1YzgwY2M0ZWQ3YjYyMDQyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMjYsNiArMjYsNyBA
QAogCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0LmgiCiAKKyNpbmNsdWRlICJDQ0dlb210cnlU
ZXN0VXRpbHMuaCIKICNpbmNsdWRlICJDQ0dyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkND
TGF5ZXJUcmVlSG9zdEltcGwuaCIKICNpbmNsdWRlICJDQ09jY2x1c2lvblRyYWNrZXJUZXN0Q29t
bW9uLmgiCkBAIC00NiwxMiArNDcsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0VGVzdHM7CiAKLSNkZWZp
bmUgRVhQRUNUX0VRX1JFQ1QoYSwgYikgXAotICAgIEVYUEVDVF9FUShhLngoKSwgYi54KCkpOyBc
Ci0gICAgRVhQRUNUX0VRKGEueSgpLCBiLnkoKSk7IFwKLSAgICBFWFBFQ1RfRVEoYS53aWR0aCgp
LCBiLndpZHRoKCkpOyBcCi0gICAgRVhQRUNUX0VRKGEuaGVpZ2h0KCksIGIuaGVpZ2h0KCkpOwot
CiBuYW1lc3BhY2UgewogCiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0IDogcHVibGljIENDVGhy
ZWFkZWRUZXN0IHsgfTsKQEAgLTEzNDUsNyArMTM0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUX0VRKDJ1LCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7CiAK
ICAgICAgICAgLy8gVGhlIHJvb3QgcmVuZGVyIHN1cmZhY2UgaXMgdGhlIHNpemUgb2YgdGhlIHZp
ZXdwb3J0LgotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDAsIDAsIDYwLCA2MCksIHJv
b3QtPnJlbmRlclN1cmZhY2UoKS0+Y29udGVudFJlY3QoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgNjAsIDYwKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5jb250ZW50
UmVjdCgpKTsKIAogICAgICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBzY2FsZVRyYW5zZm9y
bTsKICAgICAgICAgc2NhbGVUcmFuc2Zvcm0uc2NhbGUoaW1wbC0+ZGV2aWNlU2NhbGVGYWN0b3Io
KSk7CkBAIC0xNjg1LDExICsxNjgwLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVI
b3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAg
ICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5k
Q2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgwdSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQt
Pm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMw
LCA0MCwgMTcwLCAxNjApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIHJv
b3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNU
X0VRKDF1LCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7
CiAKICAgICAgICAgLy8gSWYgdGhlIGNoaWxkIGxheWVyIGlzIG9wYXF1ZSwgdGhlbiBpdCBhZGRz
IHRvIHRoZSBvY2NsdXNpb24gc2VlbiBieSB0aGUgcm9vdExheWVyLgpAQCAtMTcwMiwxMSArMTY5
NywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1
ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKElu
dFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9S
RUNUKEludFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcw
LCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAg
RVhQRUNUX0VRKDF1LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgMzAsIDE3MCwgMTcwKSwgcm9v
dExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgMTcwLCAxNzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5v
Y2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIEFkZCBh
IHNlY29uZCBjaGlsZCB0byB0aGUgcm9vdCBsYXllciBhbmQgdGhlIHJlZ2lvbnMgc2hvdWxkIG1l
cmdlCkBAIC0xNzIwLDEzICsxNzE1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVI
b3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAg
ICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5k
Q2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgwdSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQt
Pm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMw
LCAzMCwgMTcwLCAxNzApLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCAxNzAsIDE3MCksIGNoaWxk
Mi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1
LCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAg
IEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMzAsIDIwLCAxNzAsIDE4MCksIHJvb3RMYXllci0+b2Nj
bHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgzMCwgMjAsIDE3MCwgMTgwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3Jl
ZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBNb3ZlIHRoZSBzZWNvbmQg
Y2hpbGQgdG8gYmUgc3VyZS4KQEAgLTE3NDAsMTMgKzE3MzUsMTMgQEAgcHVibGljOgogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxl
dGUoKTsKIAotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDB1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCA0MCwgMTcw
LCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVk
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9S
RUNUKEludFJlY3QoMzAsIDMwLCAxNzAsIDE3MCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDE3
MCwgMTcwKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMXUsIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMCwgMzAsIDE5MCwgMTcwKSwg
cm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDEwLCAzMCwgMTkwLCAxNzApLCByb290TGF5ZXItPm9jY2x1ZGVk
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgcm9vdExheWVy
LT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIElm
IHRoZSBjaGlsZCBsYXllciBoYXMgYSBtYXNrIG9uIGl0LCB0aGVuIGl0IHNob3VsZG4ndCBjb250
cmlidXRlIHRvIG9jY2x1c2lvbiBvbiBzdHVmZiBiZWxvdyBpdApAQCAtMTc2MiwxMyArMTc1Nywx
MyBAQCBwdWJsaWM6CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVl
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJl
Y3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1
ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNU
KEludFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAx
NjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDF1LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hp
bGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MHUsIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAg
ICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5v
Y2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNj
cmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBs
YXllciB3aXRoIGEgbWFzayBpcyBiZWxvdyBjaGlsZDIsIHRoZW4gY2hpbGQyIHNob3VsZCBjb250
cmlidXRlIHRvIG9jY2x1c2lvbiBvbiBldmVyeXRoaW5nLCBhbmQgY2hpbGQgc2hvdWxkbid0IGNv
bnRyaWJ1dGUgdG8gdGhlIHJvb3RMYXllcgpAQCAtMTc4NCwxMyArMTc3OSwxMyBAQCBwdWJsaWM6
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21t
aXRDb21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgY2hpbGQy
LT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDB1LCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDcwLCAxOTAsIDEz
MCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIGdyYW5kQ2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgZ3Jh
bmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMCwgNDAsIDE5MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVk
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MTAsIDQwLCAxOTAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMnUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkw
LCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBy
b290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAg
ICAgLy8gSWYgdGhlIGNoaWxkIGxheWVyIGhhcyBhIG5vbi1vcGFxdWUgZHJhd09wYWNpdHksIHRo
ZW4gaXQgc2hvdWxkbid0IGNvbnRyaWJ1dGUgdG8gb2NjbHVzaW9uIG9uIHN0dWZmIGJlbG93IGl0
CkBAIC0xODA3LDEzICsxODAyLDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5kQ2hp
bGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgw
dSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAg
ICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGNo
aWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkw
LCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBy
b290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAg
ICAgLy8gSWYgdGhlIGNoaWxkIGxheWVyIHdpdGggbm9uLW9wYXF1ZSBkcmF3T3BhY2l0eSBpcyBi
ZWxvdyBjaGlsZDIsIHRoZW4gY2hpbGQyIHNob3VsZCBjb250cmlidXRlIHRvIG9jY2x1c2lvbiBv
biBldmVyeXRoaW5nLCBhbmQgY2hpbGQgc2hvdWxkbid0IGNvbnRyaWJ1dGUgdG8gdGhlIHJvb3RM
YXllcgpAQCAtMTgzMCwxMyArMTgyNSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1h
eCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCi0gICAg
ICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGNoaWxkMi0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1LCBj
aGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVY
UEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIGdyYW5kQ2hpbGQtPm9jY2x1
ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMTAsIDcwLCAxOTAsIDEzMCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3Jl
ZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVj
dCgxMCwgNDAsIDE5MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDQwLCAxOTAsIDE2MCksIGNo
aWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MnUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAg
ICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCByb290TGF5ZXItPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gS2lsbCB0aGUgbGF5ZXJU
cmVlSG9zdCBpbW1lZGlhdGVseS4KQEAgLTE4OTMsMTMgKzE4ODgsMTMgQEAgcHVibGljOgogICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xp
bWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29t
cGxldGUoKTsKIAotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGNoaWxkMi0+b2Nj
bHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCBn
cmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCBncmFuZENoaWxkLT5vY2NsdWRl
ZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGdyYW5kQ2hp
bGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVD
VF9FUV9SRUNUKEludFJlY3QoMTAsIDQwLCAxOTAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA0
MCwgMTkwLCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDJ1LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCku
c2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMw
KSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9jY2x1
ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExh
eWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8v
IElmIHRoZSBjaGlsZCBsYXllciBoYXMgYSBmaWx0ZXIgdGhhdCBtb3ZlcyBwaXhlbHMvY2hhbmdl
cyBhbHBoYSwgYW5kIGlzIGJlbG93IGNoaWxkMiwgdGhlbiBjaGlsZCBzaG91bGQgbm90IGluaGVy
aXQgb2NjbHVzaW9uIGZyb20gb3V0c2lkZSBpdHMgc3VidHJlZSwKQEAgLTE5MjAsMTMgKzE5MTUs
MTMgQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1
ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJU
cmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRS
ZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCks
IGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNj
cmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRS
ZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwg
Y2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgxdSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAg
ICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIHJvb3RMYXllci0+b2NjbHVkZWRT
Y3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBLaWxsIHRoZSBsYXll
clRyZWVIb3N0IGltbWVkaWF0ZWx5LgpAQCAtMTk4NSw3ICsxOTgwLDcgQEAgcHVibGljOgogICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVN1cmZhY2VzLTE7ICsraSkgewogICAgICAgICAg
ICAgSW50UmVjdCBleHBlY3RlZE9jY2x1c2lvbihpKzEsIGkrMSwgMjAwLWktMSwgMjAwLWktMSk7
CiAKLSAgICAgICAgICAgIEVYUEVDVF9FUV9SRUNUKGV4cGVjdGVkT2NjbHVzaW9uLCBsYXllcnNb
aV0tPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShleHBlY3RlZE9jY2x1c2lvbiwgbGF5ZXJzW2ldLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICAgICAgRVhQRUNUX0VRKDF1LCBsYXllcnNbaV0tPm9jY2x1
ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmN2UyMDI3OTgzMDkyYTI0YTU1YjA4OWNkYzc5
OWJmOTRjODVkNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZVRlc3RDb21tb24uaAor
KysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ0NM
YXllclRyZWVUZXN0Q29tbW9uX2gKLSNkZWZpbmUgQ0NMYXllclRyZWVUZXN0Q29tbW9uX2gKLQot
I2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgotCi1uYW1lc3BhY2Ug
V2ViS2l0VGVzdHMgewotCi0vLyBUaGVzZSBhcmUgbWFjcm9zIGluc3RlYWQgb2YgZnVuY3Rpb25z
IHNvIHRoYXQgd2UgZ2V0IHVzZWZ1bCBsaW5lIG51bWJlcnMgd2hlcmUgYSB0ZXN0IGZhaWxlZC4K
LSNkZWZpbmUgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5sb2NhdGlv
bigpLngoKSwgKGFjdHVhbCkubG9jYXRpb24oKS54KCkpOyBcCi0gICAgRVhQRUNUX0ZMT0FUX0VR
KChleHBlY3RlZCkubG9jYXRpb24oKS55KCksIChhY3R1YWwpLmxvY2F0aW9uKCkueSgpKTsgXAot
ICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLnNpemUoKS53aWR0aCgpLCAoYWN0dWFsKS5z
aXplKCkud2lkdGgoKSk7IFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5zaXplKCku
aGVpZ2h0KCksIChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKLQotI2RlZmluZSBFWFBFQ1RfSU5U
X1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIEVYUEVDVF9FUSgoZXhwZWN0ZWQpLmxvY2F0aW9uKCkueCgpLCAoYWN0dWFsKS5sb2NhdGlv
bigpLngoKSk7ICAgICAgXAotICAgIEVYUEVDVF9FUSgoZXhwZWN0ZWQpLmxvY2F0aW9uKCkueSgp
LCAoYWN0dWFsKS5sb2NhdGlvbigpLnkoKSk7ICAgICAgXAotICAgIEVYUEVDVF9FUSgoZXhwZWN0
ZWQpLnNpemUoKS53aWR0aCgpLCAoYWN0dWFsKS5zaXplKCkud2lkdGgoKSk7ICAgICAgXAotICAg
IEVYUEVDVF9FUSgoZXhwZWN0ZWQpLnNpemUoKS5oZWlnaHQoKSwgKGFjdHVhbCkuc2l6ZSgpLmhl
aWdodCgpKQotCi0vLyBUaGlzIGlzIGEgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBtYWNybyBiZWNh
dXNlIHdoZW4gdGhpcyBpcyBpbmNsdWRlZCBhcyBhIG1hY3JvCi0vLyBpbiBidWxrLCBpdCBjYXVz
ZXMgYSBzaWduaWZpY2FudCBzbG93LWRvd24gaW4gY29tcGlsYXRpb24gdGltZS4gVGhpcyBwcm9i
bGVtCi0vLyBleGlzdHMgd2l0aCBib3RoIGdjYyBhbmQgY2xhbmcsIGFuZCBidWdzIGhhdmUgYmVl
biBmaWxlZCBhdAotLy8gaHR0cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEzNjUx
IGFuZCBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU0MzM3Ci12
b2lkIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0cml4RXEoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBleHBlY3RlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGFjdHVhbCk7Ci0KLSNkZWZpbmUgRVhQRUNUX1RS
QU5TRk9STUFUSU9OX01BVFJJWF9FUShleHBlY3RlZCwgYWN0dWFsKSAgICAgICAgICAgIFwKLSAg
ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgU0NPUEVEX1RSQUNFKCIiKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgV2ViS2l0VGVzdHM6OkV4cGVjdFRy
YW5zZm9ybWF0aW9uTWF0cml4RXEoZXhwZWN0ZWQsIGFjdHVhbCk7IFwKLSAgICB9Ci0KLX0gLy8g
bmFtZXNwYWNlCi0KLSNlbmRpZiAvLyBDQ0xheWVyVHJlZVRlc3RDb21tb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5j
cHAKaW5kZXggMTcxNjc2ZjQ1ZDQ0NjBiNmYwYmEwM2NhYTg2ZGYwZmQ5M2Q2NWI2Ny4uYjBlNTlh
OTA3YzAyNGRlNDAxNTUzYWZlMTBmNzY5MTA0YTgwNDgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCkBAIC00
NDYsOSArNDQ2LDkgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVy
LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9u
KTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJV
RShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkpOwpA
QCAtNDY2LDE0ICs0NjYsMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICBvY2NsdXNpb24uc2V0TGF5
ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICBFWFBFQ1Rf
VFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwg
MzAsIDcwLCA3MCkpLmlzRW1wdHkoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDI5LCAzMCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgyOSwgMzAsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMjksIDI5LCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgyOSwgMjksIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMzAsIDI5LCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAyOSwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgzMSwgMjksIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAyOSwgNzAsIDcwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNzAsIDcwKSkpOwotICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMSwgMzEsIDcwLCA3MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMSwgNzAsIDcwKSkp
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMSwgNzAs
IDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzEsIDcwLCA3
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAz
MSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI5LCAzMCwgMSwg
NzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwg
MzAsIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMjksIDcw
LCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5
LCAyOSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAyOSwg
NzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgz
MCwgMjksIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMSwgMjks
IDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0
KDMxLCAyOSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwg
MzAsIDEsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoMzEsIDMwLCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzEs
IDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCgzMSwgMzEsIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgz
MCwgMTAwLCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJ
bnRSZWN0KDMwLCAzMSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDI5LCAzMSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoMjksIDMxLCA3MCwgNzApKSk7CiAgICAgfQogfTsKIApAQCAtNDk5LDkgKzQ5OSw5
IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAs
IDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9u
Lm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzAsIDcwLCA3MCkpKTsKQEAgLTUxOSwxNCAr
NTE5LDE0IEBAIHByb3RlY3RlZDoKICAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3Qo
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzAp
KS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzAs
IDEsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MjksIDMwLCA3MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5
LCAyOSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMjksIDI5LCA3MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDMwLCAyOSwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgzMCwgMjksIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMzEsIDI5LCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgzMSwgMjksIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMTAwLCAzMCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMzEsIDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMzEsIDcwLCA3MCkpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjksIDMxLCA3MCwgNzApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzEsIDcwLCA3MCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzAsIDEsIDcwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDMwLCA3MCwgNzAp
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjksIDI5LCA3MCwgNzApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMjksIDcwLCA3
MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDcwLCAxKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5LCA3MCwg
NzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzEsIDI5LCA3MCwgNzApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMjksIDcw
LCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDMwLCAxLCA3MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwg
NzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMxLCAzMSwgNzAsIDcw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDMx
LCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAs
IDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwg
MzEsIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzEsIDcw
LCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5
LCAzMSwgNzAsIDcwKSkpOwogICAgIH0KIH07CiAKQEAgLTU1MCw5ICs1NTAsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAg
IHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
NTAsIDUwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoNTAsIDUwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgNTAsIDUw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVj
dHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChw
YXJlbnQsIEludFJlY3QoNTAsIDUwLCA1MCwgNTApKSk7CkBAIC01NzAsMjUgKzU3MCwyNSBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAs
IDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUwLCA1
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA0
OSwgNTAsIDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNDks
IDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
NTAsIDQ5LCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUx
LCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoNTEsIDQ5LCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDEwMCwgNTAsIDEsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoNTEsIDUwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDUxLCA1MSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIEludFJlY3QoNTEsIDUxLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDUwLCAxMDAsIDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTAsIDUxLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA1MSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDUxLCA1MCwgNTApKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQ5LCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDQ5LCA1MCwgNTApKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTAsIDQ5LCA1MCwgMSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA0OSwgNTAsIDUwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUxLCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDQ5LCA1MCwgNTApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCA1MCwgMSwgNTApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MSwgNTAsIDUwLCA1MCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1MSwgNTEsIDUwLCA1MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MSwgNTAsIDUwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCAxMDAsIDUwLCAxKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTAsIDUxLCA1MCwgNTAp
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNDksIDUxLCA1MCwgNTApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTEsIDUwLCA1
MCkpKTsKIAogICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyQ2xpcFJlY3QoKTsKICAg
ICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNTAsIDUwLCA1MCwgNTApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCg0OSwgNTAsIDEsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDUwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDQ5LCA1MCwgNTApKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCA0OSwgNTAsIDEpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNDksIDUwLCA1MCkpKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNTEsIDQ5LCA0OSwgMSksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA0OSwgNTAsIDUwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQ5LCA1MCwgMSwgNTApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTAsIDUwLCA1MCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUwLCA1MCksIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA0OSwgNTAsIDUw
KSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA0OSwgNTAsIDEpLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNDksIDUwLCA1
MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1MSwgNDksIDQ5LCAxKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDQ5LCA1MCwg
NTApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKICAgICAgICAg
RVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNTEsIDUxLCA1MCwgNTApKS5pc0VtcHR5KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1
MCkpLmlzRW1wdHkoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA1
MSwgMSwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCg0OSwgNTEsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0OSwg
NTEsIDEsIDQ5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNDksIDUxLCA1MCwgNTApKSk7CiAgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAgIH0KIH07CkBAIC02MTgsMTcgKzYxOCwx
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lv
bik7CiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVz
aW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA0MzAsIDYwLCA3MCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0
U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMt
PmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhp
cy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwg
NDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgz
MCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygp
LnNpemUoKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVu
dCwgSW50UmVjdCgzMCwgNDAsIDcwLCA2MCkpKTsKQEAgLTcwMCwzNiArNzAwLDM2IEBAIHByb3Rl
Y3RlZDoKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKGNoaWxkMiwgb2NjbHVzaW9uKTsKIAot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDYwLCAyMCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNjAsIDIwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNjAsIDIwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgzMCwgMzAsIDYwLCAyMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVy
KGxheWVyLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNDMwLCA2MCwgNzApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAK
ICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24p
OwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgxMCwgNDMwLCA2MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gT2NjbHVz
aW9uIGluIHxjaGlsZDJ8IHNob3VsZCBnZXQgbWVyZ2VkIHdpdGggdGhlIHxjaGlsZHwgc3VyZmFj
ZSB3ZSBhcmUgbGVhdmluZyBub3cuCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3Vy
ZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQs
IG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDMw
LCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAg
RVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3
MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDkwLCAzMCwgMTAs
IDEwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAs
IDMwLCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoOTAsIDMwLCAx
MCwgMTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgz
MCwgMzAsIDcwLCA3MCkpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVk
ZWQocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNjAsIDEwKSkpOwogICAgICAgICBFWFBFQ1RfRkFM
U0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDYwLCAxMCkpKTsK
QEAgLTc0MiwyMSArNzQyLDIxIEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9j
Y2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CiAKICAg
ICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoMzAsIDMwLCA2MCwgMTApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgyOSwgMzAsIDEsIDEwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDMwLCA2MCwgMTApKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAyOSwgNjAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMjksIDYwLCAxMCkpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoOTAsIDMwLCAxLCAxMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNjAsIDEwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI5LCAzMCwgMSwgMTApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDYwLCAxMCkpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDYwLCAxKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5LCA2MCwgMTApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoOTAsIDMwLCAxLCAxMCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNjAsIDEwKSkpOwog
ICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgzMCwgMzEsIDYwLCAxMCkpLmlzRW1wdHkoKSk7CiAKICAgICAgICAgRVhQRUNU
X1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAs
IDQwLCA3MCwgNjApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgyOSwgNDAsIDEsIDYwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoMjksIDQwLCA3MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMjksIDQwLCAxLCA2MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFy
ZW50LCBJbnRSZWN0KDI5LCA0MCwgNzAsIDYwKSkpOwogICAgICAgICAvLyBUaGlzIHJlY3QgaXMg
bW9zdGx5IG9jY2x1ZGVkIGJ5IHxjaGlsZDJ8LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCg5MCwgMzksIDEwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoOTAsIDM5LCAxMCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCBJbnRSZWN0KDMwLCAzOSwgNzAsIDYwKSkpOwogICAgICAgICAvLyBUaGlzIHJlY3Qg
ZXh0ZW5kcyBwYXN0IHRvcC9yaWdodCBlbmRzIG9mIHxjaGlsZDJ8LgotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDcwLCAxMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAyOSwgNzAsIDcwKSkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAyOSwgNzAsIDExKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5LCA3MCwgNzApKSk7CiAgICAgICAg
IC8vIFRoaXMgcmVjdCBleHRlbmRzIHBhc3QgbGVmdC9yaWdodCBlbmRzIG9mIHxjaGlsZDJ8Lgot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMCwgMzksIDgwLCA2MCksIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDIwLCAzOSwgODAsIDYw
KSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDQwLCAxLCA2MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCA0MCwg
NzAsIDYwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3
MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMw
LCA0MSwgNzAsIDYwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwLCAzOSwg
ODAsIDYwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MjAsIDM5LCA4MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCA0
MCwgMSwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCgzMSwgNDAsIDcwLCA2MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwg
MTAwLCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRS
ZWN0KDMwLCA0MSwgNzAsIDYwKSkpOwogCiAgICAgICAgIC8qIEp1c3RpZmljYXRpb24gZm9yIHRo
ZSBhYm92ZSBvY2NsdXNpb24gZnJvbSB8bGF5ZXJ8OgogICAgICAgICAgICAgICAgICAgIDEwMApA
QCAtODE0LDkgKzgxNCw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihs
YXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNl
KGNoaWxkLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoY2xpcHBlZExheWVySW5DaGlsZCwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3Vy
ZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZExheWVySW5D
aGlsZCwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
cmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRl
ZChjaGlsZCwgY2xpcHBlZExheWVySW5DaGlsZCkpOwpAQCAtODQxLDEzICs4NDEsMTMgQEAgcHJv
dGVjdGVkOgogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQsIG9j
Y2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwog
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfRkFMU0Uo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg3NSwgNTUsIDEsIDEpKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDc1LCA1NSwgMSwgMSksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDc1LCA1NSwgMSwgMSkpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg3NSwgNTUsIDEsIDEpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg3NSwgNTUsIDEsIDEpKSk7CiAgICAg
fQogfTsKIApAQCAtODc4LDkgKzg3OCw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlz
aXRMYXllcihsYXllcjEsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0
aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwg
NzAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAg
ICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5y
ZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA0
MzAsIDYwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5z
aXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZCwg
SW50UmVjdCgxMCwgNDMwLCA2MCwgNzApKSk7CkBAIC04OTAsMTcgKzg5MCwxNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQsIEludFJl
Y3QoMTAsIDQzMSwgNjAsIDcwKSkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSkuaXNF
bXB0eSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoOSwgNDMwLCAxLCA3
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoOSwgNDMw
LCA2MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA0Mjks
IDYwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50UmVjdCgx
MCwgNDI5LCA2MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDcw
LCA0MzAsIDEsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50
UmVjdCgxMSwgNDMwLCA2MCwgNzApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDEwLCA1MDAsIDYwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjaGls
ZCwgSW50UmVjdCgxMCwgNDMxLCA2MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoOSwgNDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2hp
bGQsIEludFJlY3QoOSwgNDMwLCA2MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMTAsIDQyOSwgNjAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNo
aWxkLCBJbnRSZWN0KDEwLCA0MjksIDYwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCg3MCwgNDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
Y2hpbGQsIEludFJlY3QoMTEsIDQzMCwgNjAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDEwLCA1MDAsIDYwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChjaGlsZCwgSW50UmVjdCgxMCwgNDMxLCA2MCwgNzApKSk7CiAKICAgICAgICAgdGhpcy0+bGVh
dmVDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5l
bnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwg
NzAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAg
ICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5y
ZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCA0
MCwgNzAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVD
VF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJ
bnRSZWN0KDMwLCA0MCwgNzAsIDYwKSkpOwpAQCAtOTA4LDEwICs5MDgsMTAgQEAgcHJvdGVjdGVk
OgogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVj
dCgzMCwgMzksIDcwLCA2MCkpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgNDAsIDcwLCA2MCkpLmlzRW1w
dHkoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCA0MCwgMSwgNjAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgNDAs
IDcwLCA2MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDM5LCA3
MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMw
LCAzOSwgNzAsIDYwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAs
IDQwLCAxLCA2MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRS
ZWN0KDMxLCA0MCwgNzAsIDYwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgzMCwgMTAwLCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCBJbnRSZWN0KDMwLCA0MSwgNzAsIDYwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDI5LCA0MCwgMSwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgyOSwgNDAsIDcwLCA2MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgzMCwgMzksIDcwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMTAwLCA0MCwgMSwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgzMSwgNDAsIDcwLCA2MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCBJbnRSZWN0KDMwLCA0MSwgNzAsIDYwKSkpOwogCiAgICAgICAgIC8qIEp1c3RpZmlj
YXRpb24gZm9yIHRoZSBhYm92ZSBvY2NsdXNpb24gZnJvbSB8bGF5ZXIxfCBhbmQgfGxheWVyMnw6
CiAKQEAgLTk2Niw5ICs5NjYsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5
ZXIobGF5ZXIyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1
cmZhY2UoY2hpbGQyLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDIwLCAzMCwgODAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAsIDMwLCA4MCwg
NzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAs
IDcwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVD
VF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJ
bnRSZWN0KC0xMCwgNDIwLCA3MCwgODApKSk7CkBAIC05ODYsMTUgKzk4NiwxNSBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTIwLCAtMjAs
IDEwMDAsIDEwMDApKTsKIAogICAgICAgICAvLyBUaGVyZSBpcyBub3RoaW5nIGFib3ZlIGNoaWxk
MidzIHN1cmZhY2UgaW4gdGhlIHotb3JkZXIuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KC0xMCwgNDIwLCA3MCwgODApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGlu
Z1N1cmZhY2VDb250ZW50UmVjdChjaGlsZDIsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDIwLCA3MCwg
ODApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxk
MiwgZmFsc2UsIEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCkpKTsKIAogICAgICAgICB0aGlzLT5s
ZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlz
LT52aXNpdExheWVyKGxheWVyMSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250
cmlidXRpbmdTdXJmYWNlKGNoaWxkMSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgyMCwgMjAsIDgwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIw
LCAyMCwgODAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KC0xMCwgNDMwLCA4MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KC0xMCwgNDMwLCA4MCwg
NzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5y
ZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVk
KGNoaWxkMSwgSW50UmVjdCgtMTAsIDQzMCwgODAsIDcwKSkpOwpAQCAtMTAwNCwxNCArMTAwNCwx
NCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQo
Y2hpbGQxLCBJbnRSZWN0KC0xMCwgNDMwLCA4MCwgNzEpKSk7CiAKICAgICAgICAgLy8gY2hpbGQy
J3MgY29udGVudHMgd2lsbCBvY2NsdWRlIGNoaWxkMSBiZWxvdyBpdC4KLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MzAsIDEwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJlY3Qo
LTEwLCA0MzAsIDgwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgtMTAs
IDQzMCwgMTAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29u
dGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVjdCgtMTAsIDQzMCwgODAsIDcwKSkpOwogCiAg
ICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZDEsIG9jY2x1c2lvbik7
CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwLCAyMCwgODAsIDgwKSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMjAsIDIwLCA4MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMjAsIDIwLCA4MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwLCAy
MCwgODAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24u
b2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDIwLCAyMCwgODAsIDgwKSkpOwpAQCAtMTA4MSw5ICsx
MDgxLDkgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyMiwgb2Nj
bHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihjaGlsZDIsIG9jY2x1c2lvbik7CiAK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAsIDMwLCA4MCwgNzApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgyMCwgMzAsIDgwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFj
ZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVF
KG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCkpKTsK
QEAgLTEwOTYsMTUgKzEwOTYsMTUgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT5lbnRlckNv
bnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQyLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFRoZXJl
IGlzIG5vdGhpbmcgYWJvdmUgY2hpbGQyJ3Mgc3VyZmFjZSBpbiB0aGUgei1vcmRlci4KLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMiwgZmFsc2Us
IEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdT
dXJmYWNlQ29udGVudFJlY3QoY2hpbGQyLCBmYWxzZSwgSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgw
KSkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZDIsIG9j
Y2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIxLCBvY2NsdXNpb24pOwog
ICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQxLCBvY2NsdXNpb24p
OwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDIwLCA5MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDIwLCAtMjAsIDgwLCA5MCksIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoNDIwLCAtMjAsIDgwLCA5MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1Rf
VFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQxLCBJbnRSZWN0KDQyMCwgLTIwLCA4MCwgOTAp
KSk7CkBAIC0xMTE0LDE2ICsxMTE0LDE2IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZB
TFNFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDEsIEludFJlY3QoNDIxLCAtMjAsIDgwLCA5MCkp
KTsKIAogICAgICAgICAvLyBjaGlsZDIncyBjb250ZW50cyB3aWxsIG9jY2x1ZGUgY2hpbGQxIGJl
bG93IGl0LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0MjAsIC0yMCwgODAs
IDkwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qo
Y2hpbGQxLCBmYWxzZSwgSW50UmVjdCg0MjAsIC0yMCwgODAsIDkwKSkpOwotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OTAsIC0xMCwgMTAsIDgwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVj
dCg0MjAsIC0xMCwgODAsIDkwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg0MjAsIC0yMCwgNzAsIDEwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJm
YWNlQ29udGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVjdCg0MjAsIC0yMCwgNzAsIDkwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQyMCwgLTIwLCA4MCwgOTApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChjaGlsZDEsIGZh
bHNlLCBJbnRSZWN0KDQyMCwgLTIwLCA4MCwgOTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoNDkwLCAtMTAsIDEwLCA4MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0
aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoNDIwLCAtMTAsIDgw
LCA5MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0MjAsIC0yMCwgNzAsIDEw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hp
bGQxLCBmYWxzZSwgSW50UmVjdCg0MjAsIC0yMCwgNzAsIDkwKSkpOwogCiAgICAgICAgIHRoaXMt
PmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZDEsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAs
IDIwLCA5MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MTAsIDIwLCA5MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAg
RVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJl
bnQsIEludFJlY3QoMTAsIDIwLCA5MCwgODApKSk7CkBAIC0xMjA5LDE2ICsxMjA5LDE2IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvcGFxdWVMYXllciwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKG9wYXF1ZUxheWVyLCBv
Y2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwg
NzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgNDMwLCA3MCwgNzApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDAsIDQzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8v
IEFuZCBpdCBnZXRzIHRyYW5zbGF0ZWQgdG8gdGhlIHBhcmVudCBzdXJmYWNlLgogICAgICAgICB0
aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2Uob3BhcXVlTGF5ZXIsIG9jY2x1c2lvbik7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIFRoZSBibHVyIGxheWVy
IG5lZWRzIHRvIHRocm93IGF3YXkgYW55IG9jY2x1c2lvbiBmcm9tIG91dHNpZGUgaXRzIHN1YnRy
ZWUuCkBAIC0xMjM1LDkgKzEyMzUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIEJ1dCB0aGUg
b3BhcXVlIGxheWVyJ3Mgb2NjbHVzaW9uIGlzIHByZXNlcnZlZCBvbiB0aGUgcGFyZW50LiAKICAg
ICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNlKGJsdXJMYXllciwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAz
MCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CkBAIC0xMjU5LDE2ICsxMjU5LDE2IEBA
IHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lv
bik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCA1MCwgNTAp
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1
c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdENv
bnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50
ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gVGhlIHN1cmZhY2UgYW5k
IHJlcGxpY2Egc2hvdWxkIGJvdGggYmUgb2NjbHVkaW5nIHRoZSBwYXJlbnQuCi0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAgICAgfQogfTsKQEAgLTEy
OTEsMTYgKzEyOTEsMTYgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
c3VyZmFjZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgNTAsIDUwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVY
UEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNp
emUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAg
ICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwog
ICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAogICAgICAgICAv
LyBUaGUgc3VyZmFjZSBhbmQgcmVwbGljYSBzaG91bGQgYm90aCBiZSBvY2NsdWRpbmcgdGhlIHBh
cmVudC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCAxMDAsIDcw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDEwMCwgNzApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAg
ICAgfQogfTsKQEAgLTEzMjMsMTYgKzEzMjMsMTYgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRo
aXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDEwMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5z
aXplKCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNl
LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9u
KTsKIAogICAgICAgICAvLyBUaGUgcmVwbGljYSBzaG91bGQgbm90IGJlIG9jY2x1ZGluZyB0aGUg
cGFyZW50LCBzaW5jZSBpdCBoYXMgYSBtYXNrIGFwcGxpZWQgdG8gaXQuCi0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKICAgICB9CiB9OwpAQCAtMTM3Nyw3ICsx
Mzc3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVk
ZWQocGFyZW50LCBJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNU
X1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgyMDAsIDIwMCwgMTAwLCAx
MDApKSk7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEw
MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAx
MDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTQyMSw3ICsxNDIxLDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFy
ZW50LCBJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgyMDAsIDIwMCwgMTAwLCAxMDApKSk7
CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwg
MzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEw
MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3Qo
MCwgMCwgMzAwLCAzMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTUzOCwxMSArMTUzOCwxMSBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50
LCBJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9j
Y2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMjAwLCAyMDAsIDEwMCwgMTAwKSkpOwog
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCA1MCwgNTAs
IDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwg
MCwgMzAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwMCwg
MTAwLCA1MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMCwgMTAwLCAzMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMjAwLCAxMDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMTAwLCAyMDAsIDEwMCwgMTAwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDUwLCA1MCwgNTApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDEwMCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDEwMCwgNTAsIDEwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDEwMCwgMzAw
LCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDUwLCAx
MDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyMDAs
IDEwMCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAy
MDAsIDEwMCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCgxMDAsIDIwMCwgMTAwLCAxMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTU4MSwxMSArMTU4
MSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVk
ZWQocGFyZW50LCBJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNU
X0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMjAwLCAyMDAsIDEwMCwg
MTAwKSkpOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAw
LCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgw
LCAwLCAzMDAsIDMwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAw
LCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMCwgMCwgMzAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDIwMCwgMTAwLCA1MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMCwgMTAwLCAzMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgMjAwLCAxMDAsIDUwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMTAwLCAyMDAsIDEwMCwgMTAw
KSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDUwLCA1MCwgNTAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAz
MDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDEwMCwgNTAs
IDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAs
IDEwMCwgMzAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAx
MDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMTAwLCAyMDAsIDEwMCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgxMDAsIDIwMCwgMTAwLCAxMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTc1
NCw3ICsxNzU0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihs
YXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBv
Y2NsdXNpb24pOwogCi0gICAgICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAs
IDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAxMDAsIDEwMCwg
MTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
cmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9j
Y2x1ZGVkKHBhcmVudCwgSW50UmVjdCgwLCAxMDAsIDEwMCwgMTAwKSkpOwpAQCAtMTc3MCw3ICsx
NzcwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwg
b2NjbHVzaW9uKTsKICAgICAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNp
b24pOwogCi0gICAgICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMjAsIDEyMCwg
MTgwLCAxODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTIwLCAxMjAsIDE4MCwgMTgwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgICAg
ICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVk
KHBhcmVudCwgSW50UmVjdCgwLCAxMDAsIDEwMCwgMTAwKSkpOwpAQCAtMTc4Niw3ICsxNzg2LDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVz
aW9uKTsKICAgICAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwog
Ci0gICAgICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyNTAsIDI1MCwgNTAsIDUw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI1MCwgMjUwLCA1MCwgNTApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgICAgIEVYUEVDVF9F
USgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7
CiAKICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJ
bnRSZWN0KDAsIDEwMCwgMTAwLCAxMDApKSk7CkBAIC0xODE1LDcgKzE4MTUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKICAgICAg
ICAgLy8gVGhlIGxheWVyIGlzIHJvdGF0ZWQgaW4gM2QgYnV0IHdpdGhvdXQgcHJlc2VydmluZyAz
ZCwgc28gaXQgb25seSBnZXRzIHJlc2l6ZWQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChs
YXllciwgSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAyMDAsIDIwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
bGF5ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAyMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTg4MCw3
ICsxODgwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAg
IHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KGxheWVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpKTsKICAgICB9CiB9Owog
CkBAIC0xOTc0LDkgKzE5NzQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIEVuc3VyZSB0aGF0
IHRob3NlIHBpeGVscyBkb24ndCBvY2NsdWRlIHRoaW5ncyBvdXRzaWRlIHRoZSBjbGlwUmVjdC4K
ICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhp
cy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0
U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3Vy
ZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5z
aXplKCkpOwogICAgIH0KIH07CkBAIC0yMDEwLDI3ICsyMDEwLDI3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlz
LT5lbnRlckxheWVyKHBhcmVudDIsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoaXMgb2NjbHVz
aW9uIHdpbGwgYWZmZWN0IGFsbCBzdXJmYWNlcy4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudDIsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudDIsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAgICAgICAgIHRoaXMtPmxl
YXZlTGF5ZXIocGFyZW50Miwgb2NjbHVzaW9uKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVy
KHN1cmZhY2VDaGlsZDIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3Vy
ZmFjZUNoaWxkLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgxMDAsIDAsIDEwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJm
YWNlQ2hpbGQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMTAwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3Qoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0
aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+
ZW50ZXJMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgyMDAsIDAsIDUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHN1cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMjAwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlz
LT5sZWF2ZUxheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJD
b250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIE9jY2x1
c2lvbiB3aXRoaW4gdGhlIHN1cmZhY2UgaXMgbG9zdCB3aGVuIGxlYXZpbmcgdGhlIGFuaW1hdGlu
ZyBzdXJmYWNlLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAs
IDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0
KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwg
MCwgMzAwLCAzMDApKSk7CiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShz
dXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9j
Y2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwog
CiAgICAgICAgIC8vIE9jY2x1c2lvbiBpcyBub3QgYWRkZWQgZm9yIHRoZSBhbmltYXRpbmcgfGxh
eWVyfC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAz
MDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMw
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAs
IDMwMCwgMzAwKSkpOwogICAgIH0KIH07CiAKQEAgLTIwNjIsMjcgKzIwNjIsMjcgQEAgcHJvdGVj
dGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAgICAg
ICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50Miwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhp
cyBvY2NsdXNpb24gd2lsbCBhZmZlY3QgYWxsIHN1cmZhY2VzLgotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAgICAgICAgIHRo
aXMtPmxlYXZlTGF5ZXIocGFyZW50Miwgb2NjbHVzaW9uKTsKIAogICAgICAgICB0aGlzLT52aXNp
dExheWVyKHN1cmZhY2VDaGlsZDIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5
ZXIoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgxMDAsIDAsIDEwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChzdXJmYWNlQ2hpbGQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMTAwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAg
ICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAg
dGhpcy0+ZW50ZXJMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgyMDAsIDAsIDUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHN1cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAg
ICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+
ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8v
IE9jY2x1c2lvbiB3aXRoaW4gdGhlIHN1cmZhY2UgaXMgbG9zdCB3aGVuIGxlYXZpbmcgdGhlIGFu
aW1hdGluZyBzdXJmYWNlLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRl
bnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJl
Y3QoMCwgMCwgMzAwLCAzMDApKSk7CiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3Vy
ZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5
ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNp
b24pOwogCiAgICAgICAgIC8vIE9jY2x1c2lvbiBpcyBub3QgYWRkZWQgZm9yIHRoZSBhbmltYXRp
bmcgfGxheWVyfC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUw
LCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgw
LCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAy
NTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0
KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgIH0KIH07CiAKQEAgLTIxMjAsNyArMjEyMCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlMiwgb2NjbHVzaW9uKTsK
ICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UyLCBvY2NsdXNp
b24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCAzMDAp
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAg
dGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UyLCBvY2NsdXNpb24pOwpAQCAt
MjEyOCw1MyArMjEyOCw1MyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgLy8gc3VyZmFjZUNoaWxk
MiBpcyBtb3ZpbmcgaW4gc2NyZWVuIHNwYWNlIGJ1dCBub3QgcmVsYXRpdmUgdG8gaXRzIHRhcmdl
dCwgc28gb2NjbHVzaW9uIHNob3VsZCBoYXBwZW4gaW4gaXRzIHRhcmdldCBzcGFjZSBvbmx5Lgog
ICAgICAgICAvLyBJdCBhbHNvIG1lYW5zIHRoYXQgdGhpbmdzIG9jY2x1ZGluZyBpbiBzY3JlZW4g
c3BhY2UgKGUuZy4gc3VyZmFjZTIpIGNhbm5vdCBvY2NsdWRlIHRoaXMgbGF5ZXIuCi0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAw
KSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQyLCBJbnRSZWN0KDAsIDAs
IDEwMCwgMzAwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHN1
cmZhY2VDaGlsZCwgSW50UmVjdCgwLCAwLCA1MCwgMzAwKSkpOwogCiAgICAgICAgIHRoaXMtPmxl
YXZlTGF5ZXIoc3VyZmFjZUNoaWxkMiwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJM
YXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1c2lvbik7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2Ns
dXNpb24ub2NjbHVkZWQoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgMTAwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDEwMCwgMCwgMjAwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHN1cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMTAwLCAwLCAyMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKIAogICAgICAgICAvLyBU
aGUgc3VyZmFjZUNoaWxkIGlzIG9jY2x1ZGVkIGJ5IHRoZSBzdXJmYWNlQ2hpbGQyLCBidXQgaXMg
bW92aW5nIHJlbGF0aXZlIGl0cyB0YXJnZXQgYW5kIHRoZSBzY3JlZW4sIHNvIGl0CiAgICAgICAg
IC8vIGNhbid0IGJlIG9jY2x1ZGVkLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCAyMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFj
ZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDIwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDIwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChzdXJmYWNlQ2hpbGQsIEludFJlY3QoMCwgMCwgMjAwLCAzMDApKSk7CiAgICAgICAgIEVYUEVD
VF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDUw
LCAzMDApKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1
c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAg
ICAgICAgLy8gVGhlIHN1cmZhY2VDaGlsZCBpcyBtb3ZpbmcgaW4gc2NyZWVuIHNwYWNlIGJ1dCBu
b3QgcmVsYXRpdmUgdG8gaXRzIHRhcmdldCwgc28gb2NjbHVzaW9uIHNob3VsZCBoYXBwZW4gaW4g
aXRzIHRhcmdldCBzcGFjZSBvbmx5LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDMwMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDMwMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgMCwgMjAwLCAzMDApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDAp
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAwLCAyMDAsIDMwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7
CiAgICAgICAgIC8vIFRoZSBzdXJmYWNlJ3Mgb3duaW5nIGxheWVyIGlzIG1vdmluZyBpbiBzY3Jl
ZW4gc3BhY2UgYnV0IG5vdCByZWxhdGl2ZSB0byBpdHMgdGFyZ2V0LCBzbyBvY2NsdXNpb24gc2hv
dWxkIGhhcHBlbiBpbiBpdHMgdGFyZ2V0IHNwYWNlIG9ubHkuCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCA1MCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDMwMCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDMwMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVY
UEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCku
c2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAwLCAz
MDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMw
MCwgMzAwKSkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShzdXJm
YWNlLCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUgY29udHJpYnV0aW5nIHxzdXJmYWNlfCBp
cyBhbmltYXRpbmcgc28gaXQgY2FuJ3QgYmUgb2NjbHVkZWQuCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwg
MzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAz
MDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChz
dXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKICAgICAgICAgdGhpcy0+
bGVhdmVDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAg
dGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhlIHxzdXJm
YWNlfCBpcyBtb3ZpbmcgaW4gdGhlIHNjcmVlbiBhbmQgaW4gaXRzIHRhcmdldCwgc28gYWxsIG9j
Y2x1c2lvbiB3aXRoaW4gdGhlIHN1cmZhY2UgaXMgbG9zdCB3aGVuIGxlYXZpbmcgaXQuCi0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCAwLCAyNTAsIDMwMCksIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAw
KSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCiAgICAg
ICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUg
fGxheWVyfCBpcyBhbmltYXRpbmcgaW4gdGhlIHNjcmVlbiBhbmQgaW4gaXRzIHRhcmdldCwgc28g
bm8gb2NjbHVzaW9uIGlzIGFkZGVkLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg1MCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCg1MCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKICAgICB9CiB9OwogCkBAIC0yMjAyLDkg
KzIyMDIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZTIs
IG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJm
YWNlMiwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1
MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTAsIDUwLCAyMDAsIDIwMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5z
aXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNTAsIDIwMCwg
MjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogCiAgICAgICAgIC8vIENsZWFyIGFueSBzdG9yZWQgb2NjbHVzaW9uLgpAQCAtMjIxNCw5ICsy
MjE0LDkgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9j
Y2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNl
LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDQwMCwgNDAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNDAwLCA0MDApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNDAwLCA0MDApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDQwMCwgNDAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07
CkBAIC0yMjM5LDkgKzIyMzksOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5
ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdT
dXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMzAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAs
IDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAz
MDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAyMDApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUo
KSk7CiAgICAgfQogfTsKQEAgLTIyNjUsMjIgKzIyNjUsMjIgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAvLyB8dG9wbW9zdHwgb2NjbHVkZXMgdGhlIHJlcGxpY2EsIGJ1dCBub3QgdGhlIHN1cmZhY2Ug
aXRzZWxmLgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCAxMDAsIDEwMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52
aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAx
MDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwog
ICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
cmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNp
emUoKSk7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2Us
IG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gU3VyZmFjZSBpcyBub3Qgb2NjbHVkZWQgc28gaXQg
c2hvdWxkbid0IHRoaW5rIGl0IGlzLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFj
ZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2Us
IEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CiAgICAgfQogfTsKIApAQCAtMjMwMywyMyArMjMw
MywyMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIHx0b3Btb3N0fCBvY2NsdWRlcyB0aGUgc3Vy
ZmFjZSwgYnV0IG5vdCB0aGUgZW50aXJlIHN1cmZhY2UncyByZXBsaWNhLgogICAgICAgICB0aGlz
LT52aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDExMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCAxMDAsIDExMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMTApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygp
LnNpemUoKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24p
OwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTEwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFj
ZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVy
Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFN1
cmZhY2UgaXMgb2NjbHVkZWQsIGJ1dCBvbmx5IHRoZSB0b3AgMTBweCBvZiB0aGUgcmVwbGljYS4K
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNl
LCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAxMCwgMTAwLCA5MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5n
U3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIHRydWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDAp
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNl
LCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDEwLCAxMDAsIDkwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJm
YWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgdHJ1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsK
ICAgICB9CiB9OwogCkBAIC0yMzQ0LDIzICsyMzQ0LDIzIEBAIHByb3RlY3RlZDoKICAgICAgICAg
dGhpcy0+dmlzaXRMYXllcihvdmVyUmVwbGljYSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihvdmVyU3VyZmFjZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgNTAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCA1MCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMjAwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5z
aXplKCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsK
IAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT5lbnRlckNv
bnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBTdXJm
YWNlIGFuZCByZXBsaWNhIGFyZSBvY2NsdWRlZCBkaWZmZXJlbnQgYW1vdW50cy4KLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDAsIDAsIDYwLCAxMDApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50
UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoNTAsIDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZh
Y2VDb250ZW50UmVjdChzdXJmYWNlLCB0cnVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDQwLCAwLCA2MCwgMTAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2Us
IEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoNTAsIDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZh
Y2VDb250ZW50UmVjdChzdXJmYWNlLCB0cnVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwog
ICAgIH0KIH07CiAKQEAgLTIzODQsMTggKzIzODQsMTggQEAgcHJvdGVjdGVkOgogICAgICAgICAv
LyB8dG9wbW9zdHwgb2NjbHVkZXMgZXZlcnl0aGluZyBwYXJ0aWFsbHkgc28gd2Uga25vdyBvY2Ns
dXNpb24gaXMgaGFwcGVuaW5nIGF0IGFsbC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Bt
b3N0LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDUwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgNTApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAg
dGhpcy0+dmlzaXRMYXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8g
c3VyZmFjZUNoaWxkIGluY3JlYXNlcyB0aGUgb2NjbHVzaW9uIGluIHRoZSBzY3JlZW4gYnkgYSBu
YXJyb3cgc2xpdmVyLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAx
MDAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCA2MCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAg
ICAgICAvLyBJbiBpdHMgb3duIHN1cmZhY2UsIHN1cmZhY2VDaGlsZCBpcyBhdCAwLDAgYXMgaXMg
aXRzIG9jY2x1c2lvbi4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MTAwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCA1MCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKIAogICAgICAgICAvLyBUaGUgcm9vdCBsYXllciBhbHdheXMgaGFzIGEgY2xpcFJlY3QuIFNv
IHRoZSBwYXJlbnQgb2YgfHN1cmZhY2V8IGhhcyBhIGNsaXBSZWN0LiBIb3dldmVyLCB0aGUgb3du
aW5nIGxheWVyIGZvciB8c3VyZmFjZXwgZG9lcyBub3QKQEAgLTI0MDUsMjAgKzI0MDUsMjAgQEAg
cHJvdGVjdGVkOgogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFj
ZUNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUgc3VyZmFjZUNoaWxkJ3MgcGFyZW50
IGRvZXMgbm90IGhhdmUgYSBjbGlwUmVjdCBhcyBpdCBvd25zIGEgcmVuZGVyIHN1cmZhY2UuIE1h
a2Ugc3VyZSB0aGUgdW5vY2NsdWRlZCByZWN0CiAgICAgICAgIC8vIGRvZXMgbm90IGdldCBjbGlw
cGVkIGF3YXkgaW5hcHByb3ByaWF0ZWx5LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCA0MCwgMTAwLCAxMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3Vy
ZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2VDaGlsZCwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCA1
MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCA0MCwgMTAwLCAxMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2VD
aGlsZCwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCA1MCkpKTsKICAgICAgICAgdGhpcy0+bGVh
dmVDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKIAogICAgICAg
ICAvLyBXaGVuIHRoZSBzdXJmYWNlQ2hpbGQncyBvY2NsdXNpb24gaXMgdHJhbnNmb3JtZWQgdXAg
dG8gaXRzIHBhcmVudCwgbWFrZSBzdXJlIGl0IGlzIG5vdCBjbGlwcGVkIGF3YXkgaW5hcHByb3By
aWF0ZWx5IGFsc28uCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9u
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCA2MCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDEwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVy
KHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdT
dXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoZSBzdXJmYWNlJ3MgcGFy
ZW50IGRvZXMgaGF2ZSBhIGNsaXBSZWN0IGFzIGl0IGlzIHRoZSByb290IGxheWVyLgotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCA1MCwgMTAwLCA1MCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDAsIDUwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNl
Q29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CiAg
ICAgfQogfTsKIApAQCAtMjQ0NCw3ICsyNDQ0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAg
Ly8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlzIGhhcyBhIGNsaXBSZWN0LiBTbyB0aGUgcGFyZW50IG9m
IHxzdXJmYWNlfCBoYXMgYSBjbGlwUmVjdCBnaXZpbmcgdGhlIHN1cmZhY2UgaXRzZWxmIGEgY2xp
cFJlY3QuCiAgICAgICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFj
ZSwgb2NjbHVzaW9uKTsKICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGFyZW50J3MgY2xp
cFJlY3QgY2xpcHMgdGhlIHVub2NjbHVkZWQgcmVnaW9uIG9mIHRoZSBjaGlsZCBzdXJmYWNlLgot
ICAgICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNl
LCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDMwMCkpKTsKKyAgICAgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRy
aWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAx
MDAsIDMwMCkpKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLT5yZXNldExheWVySXRlcmF0b3Io
KTsKICAgICAgICAgewpAQCAtMjQ1Niw3ICsyNDU2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAg
ICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlzIGhhcyBhIGNsaXBSZWN0LiBTbyB0aGUgcGFyZW50
IG9mIHxzdXJmYWNlfCBoYXMgYSBjbGlwUmVjdCBnaXZpbmcgdGhlIHN1cmZhY2UgaXRzZWxmIGEg
Y2xpcFJlY3QuCiAgICAgICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3Vy
ZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmlld3BvcnQg
cmVjdCBjbGlwcyB0aGUgdW5vY2NsdWRlZCByZWdpb24gb2YgdGhlIGNoaWxkIHN1cmZhY2UuCi0g
ICAgICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2Us
IGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSkpOworICAgICAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJp
YnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEw
MCwgMzAwKSkpOwogICAgICAgICB9CiAgICAgfQogfTsKQEAgLTI0ODMsMTcgKzI0ODMsMTcgQEAg
cHJvdGVjdGVkOgogICAgICAgICAvLyB8dG9wbW9zdHwgb2NjbHVkZXMgZXZlcnl0aGluZyBwYXJ0
aWFsbHkgc28gd2Uga25vdyBvY2NsdXNpb24gaXMgaGFwcGVuaW5nIGF0IGFsbC4KICAgICAgICAg
dGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDgwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDgwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCA4MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDgwLCA1MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVD
VF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKIAogICAgICAgICAvLyBzdXJmYWNlQ2hpbGQgaXMgbm90IG9wYXF1ZSBhbmQgZG9lcyBu
b3Qgb2NjbHVkZSwgc28gd2UgaGF2ZSBhIG5vbi1lbXB0eSB1bm9jY2x1ZGVkIGFyZWEgb24gc3Vy
ZmFjZS4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1c2lvbik7
CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgODAsIDUwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgODAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDAsIDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlz
IGhhcyBhIGNsaXBSZWN0LiBTbyB0aGUgcGFyZW50IG9mIHxzdXJmYWNlfCBoYXMgYSBjbGlwUmVj
dC4gSG93ZXZlciwgdGhlIG93bmluZyBsYXllciBmb3IgfHN1cmZhY2V8IGRvZXMgbm90CkBAIC0y
NTAyLDEzICsyNTAyLDEzIEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5lbnRlckNvbnRy
aWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUg
c3VyZmFjZUNoaWxkJ3MgcGFyZW50IGRvZXMgbm90IGhhdmUgYSBjbGlwUmVjdCBhcyBpdCBvd25z
IGEgcmVuZGVyIHN1cmZhY2UuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDUwLCA4MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250
ZW50UmVjdChzdXJmYWNlQ2hpbGQsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDUwLCA4MCwgNTApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIGZh
bHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRy
aWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24pOwogCiAgICAgICAgIHRoaXMt
PnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250
cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoZSBzdXJm
YWNlJ3MgcGFyZW50IGRvZXMgaGF2ZSBhIGNsaXBSZWN0IGFzIGl0IGlzIHRoZSByb290IGxheWVy
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCA1MCwgODAsIDUwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwg
ZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMCwgNTAsIDgwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5n
U3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSkpOwogICAgIH0KIH07CiAKQEAgLTI1NTYsMjggKzI1NTYsMjggQEAgcHJvdGVjdGVkOgogICAg
ICAgICB0aGlzLT52aXNpdExheWVyKG9jY2x1ZGluZ0xheWVyMiwgb2NjbHVzaW9uKTsKICAgICAg
ICAgdGhpcy0+dmlzaXRMYXllcihvY2NsdWRpbmdMYXllcjEsIG9jY2x1c2lvbik7CiAKLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gRXZlcnl0aGluZyBvdXRzaWRl
IHRoZSBzdXJmYWNlL3JlcGxpY2EgaXMgb2NjbHVkZWQgYnV0IHRoZSBzdXJmYWNlL3JlcGxpY2Eg
aXRzZWxmIGlzIG5vdC4KICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihmaWx0ZXJlZFN1cmZhY2Us
IG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEsIDAsIDk5
LCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgxLCAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMSwgMTAwLCA5OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmls
dGVyZWRTdXJmYWNlLCBJbnRSZWN0KDAsIDEsIDEwMCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoLTEsIDAsIDEwMCwgMTAwKSkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDk5KSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwgLTEs
IDEwMCwgMTAwKSkpOwotCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwMCAr
IDEsIDAsIDk5LCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVk
U3VyZmFjZSwgSW50UmVjdCgzMDAgKyAxLCAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMzAwICsgMCwgMSwgMTAwLCA5OSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDMwMCArIDAsIDEsIDEw
MCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAwLCAw
LCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZh
Y2UsIEludFJlY3QoMzAwIC0gMSwgMCwgMTAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDMwMCArIDAsIDAsIDEwMCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgzMDAgKyAwLCAtMSwgMTAwLCAx
MDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMSwgMCwgOTksIDEwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDEs
IDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEsIDEw
MCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgwLCAxLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJl
ZFN1cmZhY2UsIEludFJlY3QoLTEsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAtMSwgMTAwLCAxMDApKSk7CisKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAxLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMzAwICsgMSwg
MCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAwICsgMCwg
MSwgMTAwLCA5OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJm
YWNlLCBJbnRSZWN0KDMwMCArIDAsIDEsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDMwMCArIDAsIDAsIDk5LCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgzMDAgLSAxLCAwLCAxMDAsIDEwMCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAwLCAwLCAxMDAsIDk5KSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3Qo
MzAwICsgMCwgLTEsIDEwMCwgMTAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKGZpbHRl
cmVkU3VyZmFjZSwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBUaGUgZmlsdGVyZWQgbGF5ZXIv
cmVwbGljYSBkb2VzIG5vdCBvY2NsdWRlLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMTUw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSg1dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDAp
LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAg
ICAgLy8gVGhlIHN1cmZhY2UgaGFzIGEgYmFja2dyb3VuZCBibHVyLCBzbyBpdCBuZWVkcyBwaXhl
bHMgdGhhdCBhcmUgY3VycmVudGx5IGNvbnNpZGVyZWQgb2NjbHVkZWQgaW4gb3JkZXIgdG8gYmUg
ZHJhd24uIFNvIHRoZSBwaXhlbHMKQEAgLTI1ODUsOSArMjU4NSw5IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKGZpbHRlcmVkU3VyZmFjZSwgb2Nj
bHVzaW9uKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgSW50UmVjdCBvdXRzZXRS
ZWN0OwpAQCAtMjU5Niw0NCArMjU5Niw0NCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIE5vdGhp
bmcgaW4gdGhlIGJsdXIgb3V0c2V0cyBmb3IgdGhlIGZpbHRlcmVkU3VyZmFjZSBpcyBvY2NsdWRl
ZC4KICAgICAgICAgb3V0c2V0UmVjdCA9IEludFJlY3QoNTAgLSBvdXRzZXRMZWZ0LCA1MCAtIG91
dHNldFRvcCwgNTAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIDUwICsgb3V0c2V0VG9wICsg
b3V0c2V0Qm90dG9tKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKG91dHNldFJl
Y3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOwog
CiAgICAgICAgIC8vIFN0dWZmIG91dHNpZGUgdGhlIGJsdXIgb3V0c2V0cyBpcyBzdGlsbCBvY2Ns
dWRlZCB0aG91Z2guCiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVz
dFJlY3QuZXhwYW5kKDEsIDApOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVj
dCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJl
Y3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVz
dFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5tb3ZlKC0xLCAwKTsKICAgICAg
ICAgdGVzdFJlY3QuZXhwYW5kKDEsIDApOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0
c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91
dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0Lm1vdmUoMCwgLTEpOwogICAgICAgICB0ZXN0UmVj
dC5leHBhbmQoMCwgMSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShvdXRzZXRSZWN0LCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CiAKICAgICAgICAgLy8gTm90aGluZyBpbiB0aGUgYmx1
ciBvdXRzZXRzIGZvciB0aGUgZmlsdGVyZWRTdXJmYWNlJ3MgcmVwbGljYSBpcyBvY2NsdWRlZC4K
ICAgICAgICAgb3V0c2V0UmVjdCA9IEludFJlY3QoMjAwIC0gb3V0c2V0TGVmdCwgNTAgLSBvdXRz
ZXRUb3AsIDUwICsgb3V0c2V0TGVmdCArIG91dHNldFJpZ2h0LCA1MCArIG91dHNldFRvcCArIG91
dHNldEJvdHRvbSk7CiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKIAog
ICAgICAgICAvLyBTdHVmZiBvdXRzaWRlIHRoZSBibHVyIG91dHNldHMgaXMgc3RpbGwgb2NjbHVk
ZWQgdGhvdWdoLgogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RS
ZWN0LmV4cGFuZCgxLCAwKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3Qs
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0
OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMCwgMSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
dGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CiAgICAgICAgIHRlc3RS
ZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJlY3QubW92ZSgtMSwgMCk7CiAgICAgICAg
IHRlc3RSZWN0LmV4cGFuZCgxLCAwKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNl
dFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRz
ZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5tb3ZlKDAsIC0xKTsKICAgICAgICAgdGVzdFJlY3Qu
ZXhwYW5kKDAsIDEpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCB0ZXN0UmVjdCkpOwogICAgIH0KIH07CiAKQEAgLTI2NzEsOSArMjY3MSw5IEBA
IHByb3RlY3RlZDoKICAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvY2NsdWRpbmdM
YXllckFib3ZlLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCgxMDAgLyAyLCAxMDAgLyAyLCA1MCAvIDIsIDUwIC8gMiksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDEwMCAvIDIsIDEwMCAvIDIsIDUwIC8gMiwgNTAgLyAyKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgMTAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDEwMCwgMTAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgdGhpcy0+dmlz
aXRMYXllcihmaWx0ZXJlZFN1cmZhY2UyLCBvY2NsdXNpb24pOwpAQCAtMjY4Niw3ICsyNjg2LDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgICAgIC8vIFRlc3QgZXhwZWN0YXRpb25zIGluIHRoZSB0YXJn
ZXQuCiAgICAgICAgIEludFJlY3QgZXhwZWN0ZWRPY2NsdXNpb24gPSBJbnRSZWN0KDEwMCArIG91
dHNldFJpZ2h0ICogMiwgMTAwICsgb3V0c2V0Qm90dG9tICogMiwgNTAgLSAob3V0c2V0TGVmdCAr
IG91dHNldFJpZ2h0KSAqIDIsIDUwIC0gKG91dHNldFRvcCArIG91dHNldEJvdHRvbSkgKiAyKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkT2NjbHVzaW9uLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKVswXSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKGV4cGVjdGVkT2NjbHVzaW9uLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkucmVjdHMoKVswXSk7CiAKICAgICAgICAgLy8gVGVzdCBleHBlY3RhdGlvbnMgaW4gdGhl
IHNjcmVlbi4gVGFrZSB0aGUgY2VpbGluZyBvZiBoYWxmIG9mIHRoZSBvdXRzZXRzLgogICAgICAg
ICBvdXRzZXRUb3AgPSAob3V0c2V0VG9wICsgMSkgLyAyOwpAQCAtMjY5NSw3ICsyNjk1LDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICBvdXRzZXRMZWZ0ID0gKG91dHNldExlZnQgKyAxKSAvIDI7CiAg
ICAgICAgIGV4cGVjdGVkT2NjbHVzaW9uID0gSW50UmVjdCgxMDAgLyAyICsgb3V0c2V0UmlnaHQg
KiAyLCAxMDAgLyAyICsgb3V0c2V0Qm90dG9tICogMiwgNTAgLyAyIC0gKG91dHNldExlZnQgKyBv
dXRzZXRSaWdodCkgKiAyLCA1MCAvMiAtIChvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pICogMik7
CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkT2NjbHVzaW9uLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKClbMF0pOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShleHBlY3RlZE9jY2x1c2lvbiwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpWzBdKTsKICAgICB9CiB9OwogCkBAIC0yNzQyLDI4ICsyNzQyLDI4IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvY2NsdWRpbmdMYXllcjIsIG9jY2x1
c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIob2NjbHVkaW5nTGF5ZXIxLCBvY2NsdXNp
b24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMTUw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1LCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3Vy
ZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1LCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIEV2ZXJ5
dGhpbmcgb3V0c2lkZSB0aGUgc3VyZmFjZS9yZXBsaWNhIGlzIG9jY2x1ZGVkIGJ1dCB0aGUgc3Vy
ZmFjZS9yZXBsaWNhIGl0c2VsZiBpcyBub3QuCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoZmls
dGVyZWRTdXJmYWNlLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgxLCAwLCA0OSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRl
cmVkU3VyZmFjZSwgSW50UmVjdCgxLCAwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDAsIDEsIDUwLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDAsIDEsIDUwLCA1MCkpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoLTEsIDAsIDUwLCA1MCkp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDQ5KSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwg
LTEsIDUwLCA1MCkpKTsKLQotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxNTAg
KyAxLCAwLCA0OSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVk
U3VyZmFjZSwgSW50UmVjdCgxNTAgKyAxLCAwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDE1MCArIDAsIDEsIDUwLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCArIDAsIDEsIDUwLCA1
MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTUwICsgMCwgMCwgNDks
IDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIElu
dFJlY3QoMTUwIC0gMSwgMCwgNTAsIDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgxNTAgKyAwLCAwLCA1MCwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgxNTAgKyAwLCAtMSwgNTAsIDUwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEsIDAsIDQ5LCA1MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDEsIDAsIDUwLCA1MCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxLCA1MCwgNDkpLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAxLCA1
MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNDksIDUwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3Qo
LTEsIDAsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1
MCwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgwLCAtMSwgNTAsIDUwKSkpOworCisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMTUwICsgMSwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChm
aWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMTUwICsgMSwgMCwgNTAsIDUwKSkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDE1MCArIDAsIDEsIDUwLCA0OSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCArIDAsIDEsIDUw
LCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxNTAgKyAwLCAwLCA0OSwg
NTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50
UmVjdCgxNTAgLSAxLCAwLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMTUwICsgMCwgMCwgNTAsIDQ5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChm
aWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMTUwICsgMCwgLTEsIDUwLCA1MCkpKTsKICAgICAgICAg
dGhpcy0+bGVhdmVMYXllcihmaWx0ZXJlZFN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAg
Ly8gVGhlIGZpbHRlcmVkIGxheWVyL3JlcGxpY2EgZG9lcyBub3Qgb2NjbHVkZS4KLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2Nj
bHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDB1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVj
dHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIFRoZSBzdXJmYWNlIGhhcyBhIGJhY2tncm91bmQg
Ymx1ciwgc28gaXQgbmVlZHMgcGl4ZWxzIHRoYXQgYXJlIGN1cnJlbnRseSBjb25zaWRlcmVkIG9j
Y2x1ZGVkIGluIG9yZGVyIHRvIGJlIGRyYXduLiBTbyB0aGUgcGl4ZWxzCkBAIC0yNzcxLDcgKzI3
NzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFj
ZShmaWx0ZXJlZFN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250
cmlidXRpbmdTdXJmYWNlKGNsaXBwaW5nU3VyZmFjZSwgb2NjbHVzaW9uKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEludFJlY3Qgb3V0c2V0UmVj
dDsKQEAgLTI3ODIsNDUgKzI3ODIsNDUgQEAgcHJvdGVjdGVkOgogICAgICAgICBvdXRzZXRSZWN0
ID0gSW50UmVjdCg1MCAtIG91dHNldExlZnQsIDUwIC0gb3V0c2V0VG9wLCA1MCArIG91dHNldExl
ZnQgKyBvdXRzZXRSaWdodCwgNTAgKyBvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pOwogICAgICAg
ICBjbGlwcGVkT3V0c2V0UmVjdCA9IGludGVyc2VjdGlvbihvdXRzZXRSZWN0LCBJbnRSZWN0KDAg
LSBvdXRzZXRMZWZ0LCAwIC0gb3V0c2V0VG9wLCAzMDAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0Umln
aHQsIDcwICsgb3V0c2V0VG9wICsgb3V0c2V0Qm90dG9tKSk7CiAgICAgICAgIHRlc3RSZWN0ID0g
b3V0c2V0UmVjdDsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJl
Y3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogCiAg
ICAgICAgIC8vIFN0dWZmIG91dHNpZGUgdGhlIChjbGlwcGVkKSBibHVyIG91dHNldHMgaXMgc3Rp
bGwgb2NjbHVkZWQgdGhvdWdoLgogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAg
ICAgIHRlc3RSZWN0LmV4cGFuZCgxLCAwKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNs
aXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5n
U3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNl
dFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0
ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RS
ZWN0LmV4cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRz
ZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwg
dGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkp
OwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0Lm1vdmUo
LTEsIDApOwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBw
aW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0Owog
ICAgICAgICB0ZXN0UmVjdC5tb3ZlKDAsIC0xKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAs
IDEpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CiAKICAgICAgICAg
Ly8gTm90aGluZyBpbiB0aGUgKGNsaXBwZWQpIGJsdXIgb3V0c2V0cyBmb3IgdGhlIGZpbHRlcmVk
U3VyZmFjZSdzIHJlcGxpY2EgaXMgb2NjbHVkZWQuCiAgICAgICAgIG91dHNldFJlY3QgPSBJbnRS
ZWN0KDIwMCAtIG91dHNldExlZnQsIDUwIC0gb3V0c2V0VG9wLCA1MCArIG91dHNldExlZnQgKyBv
dXRzZXRSaWdodCwgNTAgKyBvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pOwogICAgICAgICBjbGlw
cGVkT3V0c2V0UmVjdCA9IGludGVyc2VjdGlvbihvdXRzZXRSZWN0LCBJbnRSZWN0KDAgLSBvdXRz
ZXRMZWZ0LCAwIC0gb3V0c2V0VG9wLCAzMDAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIDcw
ICsgb3V0c2V0VG9wICsgb3V0c2V0Qm90dG9tKSk7CiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0
UmVjdDsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogCiAgICAgICAg
IC8vIFN0dWZmIG91dHNpZGUgdGhlIChjbGlwcGVkKSBibHVyIG91dHNldHMgaXMgc3RpbGwgb2Nj
bHVkZWQgdGhvdWdoLgogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRl
c3RSZWN0LmV4cGFuZCgxLCAwKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRP
dXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFj
ZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3Qs
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVj
dCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4
cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJl
Y3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogICAg
ICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0Lm1vdmUoLTEsIDAp
OwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChj
bGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGNsaXBw
ZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3Vy
ZmFjZSwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAg
ICB0ZXN0UmVjdC5tb3ZlKDAsIC0xKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAsIDEpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CiAgICAgfQogfTsKIApAQCAt
Mjg2Niw5ICsyODY2LDkgQEAgcHJvdGVjdGVkOgogICAgICAgICBJbnRSZWN0IG9jY2x1c2lvbkJl
aGluZFJlcGxpY2EgPSBJbnRSZWN0KDIxMCwgNjAsIDMwLCAzMCk7CiAKICAgICAgICAgSW50UmVj
dCBleHBlY3RlZE9wYXF1ZUJvdW5kcyA9IHVuaW9uUmVjdChvY2NsdXNpb25CZWhpbmRTdXJmYWNl
LCBvY2NsdXNpb25CZWhpbmRSZXBsaWNhKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4
cGVjdGVkT3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRPcGFxdWVCb3VuZHMsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWRPcGFxdWVCb3VuZHMsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKGV4cGVjdGVkT3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAgICAgfQogfTsK
QEAgLTI5MTQsOSArMjkxNCw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgSW50UmVjdCBvY2NsdXNp
b25BYm92ZVJlcGxpY2EgPSBJbnRSZWN0KDIwMCwgNTAsIDUwLCA1MCk7CiAKICAgICAgICAgSW50
UmVjdCBleHBlY3RlZE9wYXF1ZUJvdW5kcyA9IHVuaW9uUmVjdChvY2NsdXNpb25BYm92ZVN1cmZh
Y2UsIG9jY2x1c2lvbkFib3ZlUmVwbGljYSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShl
eHBlY3RlZE9wYXF1ZUJvdW5kcywgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkT3BhcXVlQm91bmRzLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkT3BhcXVlQm91bmRzLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShleHBlY3RlZE9wYXF1ZUJvdW5kcywgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07
CkBAIC0zMDE1LDE3ICszMDE1LDE3IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gVGhlIHNtYWxs
IGxheWVyIGlzIG5vdCB0cmFja2VkIGJlY2F1c2UgaXQgaXMgdG9vIHNtYWxsLgogICAgICAgICB0
aGlzLT52aXNpdExheWVyKHNtYWxsLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgwdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBUaGUgbGFyZ2UgbGF5ZXIgaXMgdHJhY2tlZCBhcyBp
dCBpcyBsYXJnZSBlbm91Z2guCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGFyZ2UsIG9jY2x1
c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoKSwg
dHJhY2tpbmdTaXplKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoKSwgdHJhY2tpbmdT
aXplKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0
cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KEludFBvaW50
KCksIHRyYWNraW5nU2l6ZSksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5i
b3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoKSwgdHJh
Y2tpbmdTaXplKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NvbnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NvbnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXgg
ZmQzNWUyMjI0NWRlY2U4NDE5YmNjZjZjMDQwZGQ1NzMzMmM0YTk5Yi4uNmU2MTNjY2MxNjVjMzdk
OWY1MDBlODhiNTBlY2MwYzkzM2JhZGEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9Db250ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ29udGVudExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMTA1LDcg
KzEwNSw3IEBAIFRFU1QoQ29udGVudExheWVyQ2hyb21pdW1UZXN0LCBDb250ZW50TGF5ZXJQYWlu
dGVyV2l0aERldmljZVNjYWxlKQogICAgIENDUmVuZGVyaW5nU3RhdHMgc3RhdHM7CiAgICAgdXBk
YXRlci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRSZWN0LCBJbnRTaXplKDI1NiwgMjU2KSwgY29u
dGVudHNTY2FsZSwgY29udGVudHNTY2FsZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCwgc3RhdHMpOwog
Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKG9wYXF1ZVJlY3RJbkNvbnRlbnRTcGFjZSwgcmVzdWx0
aW5nT3BhcXVlUmVjdCk7CisgICAgRVhQRUNUX1JFQ1RfRVEob3BhcXVlUmVjdEluQ29udGVudFNw
YWNlLCByZXN1bHRpbmdPcGFxdWVSZWN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwCmluZGV4IDAwZWUyOGE2ODhlYTZkMjg1NTY3YTM3YTAwNzBkMzVhYTExYmY3MDUuLmY5NjFi
OTY4ODZjNGQwMDNiOWI5ZDAxYTg4ZjExOGZiYzQxNjY4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oIgogI2luY2x1ZGUgIkNDQW5pbWF0aW9uVGVzdENvbW1vbi5oIgorI2luY2x1ZGUgIkNDR2Vv
bWV0cnlUZXN0VXRpbHMuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZVRlc3RDb21tb24uaCIKICNp
bmNsdWRlICJDQ092ZXJkcmF3TWV0cmljcy5oIgogI2luY2x1ZGUgIkNDUmVuZGVyaW5nU3RhdHMu
aCIKQEAgLTQ2LDEyICs0Nyw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXRUZXN0czsKIHVzaW5n
IG5hbWVzcGFjZSBXVEY7CiB1c2luZyBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4Owog
Ci0jZGVmaW5lIEVYUEVDVF9FUV9SRUNUKGEsIGIpIFwKLSAgICBFWFBFQ1RfRVEoYS54KCksIGIu
eCgpKTsgXAotICAgIEVYUEVDVF9FUShhLnkoKSwgYi55KCkpOyBcCi0gICAgRVhQRUNUX0VRKGEu
d2lkdGgoKSwgYi53aWR0aCgpKTsgXAotICAgIEVYUEVDVF9FUShhLmhlaWdodCgpLCBiLmhlaWdo
dCgpKTsKLQogbmFtZXNwYWNlIHsKIAogY2xhc3MgVGVzdENDT2NjbHVzaW9uVHJhY2tlciA6IHB1
YmxpYyBDQ09jY2x1c2lvblRyYWNrZXIgewpAQCAtMTIxNSw3ICsxMjEwLDcgQEAgVEVTVF9GKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxh
eWVyLT51cGRhdGUobV9xdWV1ZSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0
dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVl
UmVnaW9uKCk7Ci0gICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVj
dCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1Rf
UkVDVF9FUShpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3Bh
cXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMu
cmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIsIDEpOwpAQCAtMTIyOCw3ICsxMjIzLDcg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVn
aW9uKQogICAgIGxheWVyLT51cGRhdGUobV9xdWV1ZSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAg
ICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVD
b250ZW50T3BhcXVlUmVnaW9uKCk7Ci0gICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9w
YXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsK
KyAgICBFWFBFQ1RfUkVDVF9FUShpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxl
Qm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3Bh
cXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIsIDEpOwpAQCAtMTI0
Myw3ICsxMjM4LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250
ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVyLT51cGRhdGUobV9xdWV1ZSwgJm9jY2x1ZGVkLCBt
X3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5
ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7Ci0gICAgRVhQRUNUX0VRX1JFQ1QoaW50
ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRz
LmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRS
ZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVD
VF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIg
KyAxLCAxKTsKQEAgLTEyNTgsNyArMTI1Myw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKICAgICBsYXllci0+dXBkYXRlKG1fcXVl
dWUsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBvcGFx
dWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpOwotICAgIEVY
UEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihJbnRSZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNp
YmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOworICAgIEVYUEVDVF9SRUNUX0VR
KGludGVyc2VjdGlvbihJbnRSZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwg
b3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVu
dHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIgKyAxICArIDEsIDEpOwpAQCAtMTU0
MCw3ICsxNTM1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJD
b250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJpbmdQYWludCkKICAgICBsYXllci0+dXBkYXRl
KG1fcXVldWUsIDAsIG1fc3RhdHMpOwogICAgIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigp
LT5yZXNldFBhaW50ZWRSZWN0KCk7CiAKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgp
LCBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CisgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFp
bnRlZFJlY3QoKSk7CiAKICAgICB7CiAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBp
bXBsVGhyZWFkOwpAQCAtMTU1MSw3ICsxNTQ2LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJpbmdQYWludCkK
ICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNvbnRlbnRSZWN0KTsKICAgICBsYXll
ci0+dXBkYXRlKG1fcXVldWUsIDAsIG1fc3RhdHMpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VR
KGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWlu
dGVyKCktPnBhaW50ZWRSZWN0KCkpOwogfQogCiBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVz
dCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJc05vdERpc3RvcnRlZER1cmluZ0ludmFsaWRhdGlv
bikKQEAgLTE1NzQsNyArMTU2OSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBu
b25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90RGlzdG9ydGVkRHVyaW5nSW52YWxpCiAgICAgbGF5
ZXItPnVwZGF0ZShtX3F1ZXVlLCAwLCBtX3N0YXRzKTsKICAgICBsYXllci0+dHJhY2tpbmdMYXll
clBhaW50ZXIoKS0+cmVzZXRQYWludGVkUmVjdCgpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoKSwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWlu
dGVyKCktPnBhaW50ZWRSZWN0KCkpOwogCiAgICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNldElt
cGxUaHJlYWQgaW1wbFRocmVhZDsKQEAgLTE1ODUsNyArMTU4MCw3IEBAIFRFU1RfRihUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90RGlzdG9ydGVkRHVy
aW5nSW52YWxpCiAgICAgbGF5ZXItPnNldE5lZWRzRGlzcGxheVJlY3QobGF5ZXJSZWN0KTsKICAg
ICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAsIG1fc3RhdHMpOwogCi0gICAgRVhQRUNUX0lOVF9S
RUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRS
ZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5
ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161776</attachid>
            <date>2012-08-31 14:36:55 -0700</date>
            <delta_ts>2012-08-31 17:17:14 -0700</delta_ts>
            <desc>fix includes</desc>
            <filename>bug-95526-20120831143643.patch</filename>
            <type>text/plain</type>
            <size>151136</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDY0MWUwNTlhZDI5NzYxNjdhY2NkMDM0M2JhNTY2NzM2NGI0YWFiMGIuLjZhZWU1MjczOTE4ZDg3
NzhlMzdkMjY0NmE1NWY2Yjc5MjEwNzI4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjkgQEAKIDIwMTItMDgtMzAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIENvbnNvbGlkYXRlIGdlb21ldHJ5IHVuaXQg
dGVzdGluZyBmdW5jdGlvbnMgZm9yIGNjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTUyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgY29uc29saWRhdGVzIGdlb21ldHJ5IGVxdWFsaXR5IChyZWN0
cywgbWF0cmljZXMpIGluIENDR2VvbWV0cnlVdGlscyBhbmQgcmVtb3ZlcyBhIGZldyBkdXBsaWNh
dGUgbWFjcm9zIGZvcgorICAgICAgICB0ZXN0aW5nIHJlY3QgZXF1YWxpdHkuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiB0ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcDoK
KyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDR2VvbWV0
cnlUZXN0VXRpbHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdFRlc3RzKToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKToKKyAgICAgICAgKiB0
ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlVGVzdENvbW1vbi5oLgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdFRlc3RzKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
OgorCisyMDEyLTA4LTMwICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgW2Nocm9taXVtXSBSZXZlcnQgV2ViQ29tcG9zaXRvclN1cHBvcnQgdG8gcmF3IHB0
cnMsIG1ha2UgZHRvciBwcm90ZWN0ZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk1NTIwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4
IGMxMTAwY2U4ZmVhYzNiOGJmNWUyZDczMGMzM2QxZWJjZmZhYmI2YzAuLjU0ZjBkYjhlNWMyYzU1
NGNjY2E3ZTE2MDhhN2U2Zjc4ODcxMTc3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aQpAQCAtMTIwLDYgKzEyMCw4IEBACiAgICAgICAgICAgICAndGVzdHMvQ0NEYW1hZ2VUcmFja2Vy
VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2VUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NGcmFtZVJhdGVDb250cm9sbGVyVGVzdC5jcHAn
LAorICAgICAgICAgICAgJ3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMuY3BwJywKKyAgICAgICAg
ICAgICd0ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0ND
SGVhZHNVcERpc3BsYXlUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NLZXlmcmFtZWRB
bmltYXRpb25DdXJ2ZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlclRlc3QuY3BwJywKQEAgLTEzMiw3ICsxMzQsNiBAQAogICAgICAgICAgICAg
J3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwJywKLSAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZVRlc3RD
b21tb24uaCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NNYXRoVXRpbFRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdENvbW1vbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwCmluZGV4IGY5ZWVj
ZGI3NTk3ZTUzOTE5MDM3OWI0NDc3ZWU4Njk3NDFjMjVlOTcuLmU1MGExZjcwYWJmMDU5Y2I2NjQ1
MzMyYmZkZDc3Y2EzNmI4Nzg5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcApAQCAtMjYsMTAgKzI2LDEwIEBACiAKICNp
bmNsdWRlICJDQ0RhbWFnZVRyYWNrZXIuaCIKIAorI2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRp
bHMuaCIKICNpbmNsdWRlICJDQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgIkNDTGF5ZXJTb3J0ZXIu
aCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RDb21tb24uaCIKLSNpbmNsdWRlICJDQ0xheWVy
VHJlZVRlc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ01hdGhVdGlsLmgiCiAjaW5jbHVkZSAiQ0NT
aW5nbGVUaHJlYWRQcm94eS5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDR2VvbWV0cnlUZXN0VXRpbHMuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMTdmYzY0M2ZmNjFmMTRhOTNjMjFkMDA5OWY0M2UxNjljMzllNWEzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0
aWxzLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpbmNsdWRlICJDQ0dlb21ldHJ5VGVzdFV0aWxzLmgiCisKKyNpbmNsdWRlIDxndGVz
dC9ndGVzdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgor
CituYW1lc3BhY2UgV2ViS2l0VGVzdHMgeworCit2b2lkIEV4cGVjdFRyYW5zZm9ybWF0aW9uTWF0
cml4RXEoY29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZXhwZWN0ZWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgYWN0dWFsKQoreworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQp
Lm0xMSgpLCAoYWN0dWFsKS5tMTEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCku
bTEyKCksIChhY3R1YWwpLm0xMigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5t
MTMoKSwgKGFjdHVhbCkubTEzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0x
NCgpLCAoYWN0dWFsKS5tMTQoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTIx
KCksIChhY3R1YWwpLm0yMSgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMjIo
KSwgKGFjdHVhbCkubTIyKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0yMygp
LCAoYWN0dWFsKS5tMjMoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTI0KCks
IChhY3R1YWwpLm0yNCgpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzEoKSwg
KGFjdHVhbCkubTMxKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm0zMigpLCAo
YWN0dWFsKS5tMzIoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTMzKCksIChh
Y3R1YWwpLm0zMygpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tMzQoKSwgKGFj
dHVhbCkubTM0KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00MSgpLCAoYWN0
dWFsKS5tNDEoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBlY3RlZCkubTQyKCksIChhY3R1
YWwpLm00MigpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5tNDMoKSwgKGFjdHVh
bCkubTQzKCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLm00NCgpLCAoYWN0dWFs
KS5tNDQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdFRlc3RzCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NHZW9tZXRyeVRlc3RVdGlscy5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0dlb21ldHJ5VGVzdFV0aWxzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmRlYTcwOTE4YjNkZjBkNWY3ZWE0ZTgzNjJhNmRlZTJlMmRkMTRhYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NHZW9tZXRyeVRlc3RVdGlscy5o
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0NHZW9tZXRyeVRlc3RV
dGlsc19oCisjZGVmaW5lIENDR2VvbWV0cnlUZXN0VXRpbHNfaAorCituYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OworfQorCituYW1lc3BhY2UgV2ViS2l0
VGVzdHMgeworCisvLyBUaGVzZSBhcmUgbWFjcm9zIGluc3RlYWQgb2YgZnVuY3Rpb25zIHNvIHRo
YXQgd2UgZ2V0IHVzZWZ1bCBsaW5lIG51bWJlcnMgd2hlcmUgYSB0ZXN0IGZhaWxlZC4KKyNkZWZp
bmUgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5sb2NhdGlvbigpLngo
KSwgKGFjdHVhbCkubG9jYXRpb24oKS54KCkpOyBcCisgICAgRVhQRUNUX0ZMT0FUX0VRKChleHBl
Y3RlZCkubG9jYXRpb24oKS55KCksIChhY3R1YWwpLmxvY2F0aW9uKCkueSgpKTsgXAorICAgIEVY
UEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLnNpemUoKS53aWR0aCgpLCAoYWN0dWFsKS5zaXplKCku
d2lkdGgoKSk7IFwKKyAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5zaXplKCkuaGVpZ2h0
KCksIChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKKworI2RlZmluZSBFWFBFQ1RfUkVDVF9FUShl
eHBlY3RlZCwgYWN0dWFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRVhQRUNU
X0VRKChleHBlY3RlZCkubG9jYXRpb24oKS54KCksIChhY3R1YWwpLmxvY2F0aW9uKCkueCgpKTsg
ICAgICBcCisgICAgRVhQRUNUX0VRKChleHBlY3RlZCkubG9jYXRpb24oKS55KCksIChhY3R1YWwp
LmxvY2F0aW9uKCkueSgpKTsgICAgICBcCisgICAgRVhQRUNUX0VRKChleHBlY3RlZCkuc2l6ZSgp
LndpZHRoKCksIChhY3R1YWwpLnNpemUoKS53aWR0aCgpKTsgICAgICBcCisgICAgRVhQRUNUX0VR
KChleHBlY3RlZCkuc2l6ZSgpLmhlaWdodCgpLCAoYWN0dWFsKS5zaXplKCkuaGVpZ2h0KCkpCisK
Ky8vIFRoaXMgaXMgYSBmdW5jdGlvbiByYXRoZXIgdGhhbiBhIG1hY3JvIGJlY2F1c2Ugd2hlbiB0
aGlzIGlzIGluY2x1ZGVkIGFzIGEgbWFjcm8KKy8vIGluIGJ1bGssIGl0IGNhdXNlcyBhIHNpZ25p
ZmljYW50IHNsb3ctZG93biBpbiBjb21waWxhdGlvbiB0aW1lLiBUaGlzIHByb2JsZW0KKy8vIGV4
aXN0cyB3aXRoIGJvdGggZ2NjIGFuZCBjbGFuZywgYW5kIGJ1Z3MgaGF2ZSBiZWVuIGZpbGVkIGF0
CisvLyBodHRwOi8vbGx2bS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTEgYW5kIGh0dHA6
Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTQzMzcKK3ZvaWQgRXhwZWN0
VHJhbnNmb3JtYXRpb25NYXRyaXhFcShjb25zdCBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0
cml4JiBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4JiBhY3R1YWwpOworCisjZGVmaW5lIEVYUEVD
VF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgICAgICAgICAgICBc
CisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIFNDT1BFRF9UUkFDRSgiIik7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFdlYktpdFRlc3RzOjpFeHBl
Y3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkLCBhY3R1YWwpOyBcCisgICAgfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXRUZXN0cworCisjZW5kaWYgLy8gQ0NHZW9tZXRyeVRlc3RVdGls
c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RDb21tb25UZXN0LmNwcAppbmRleCBkYmYyOGU0OTU5NTg0MDcwYzlhZmRiMjFlZjI2
YTY2ZmM3ZGU5OGEyLi5mMjI3NTVjZDhmMDVlZDIwZjFiMWVlYmU3OTg2Njc2YWRlNzlkOTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdC5jcHAKQEAgLTI3LDE3ICsyNywxNiBAQAogI2luY2x1ZGUgIkNDTGF5
ZXJUcmVlSG9zdENvbW1vbi5oIgogCiAjaW5jbHVkZSAiQ0NBbmltYXRpb25UZXN0Q29tbW9uLmgi
CisjaW5jbHVkZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgIkNDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ0NMYXllckltcGwuaCIKICNpbmNsdWRlICJD
Q0xheWVyU29ydGVyLmgiCi0jaW5jbHVkZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCiAjaW5j
bHVkZSAiQ0NNYXRoVXRpbC5oIgogI2luY2x1ZGUgIkNDUHJveHkuaCIKICNpbmNsdWRlICJDQ1Np
bmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiQ0NUaHJlYWQuaCIKICNpbmNsdWRlICJDb250
ZW50TGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKLQogI2luY2x1
ZGUgPGdtb2NrL2dtb2NrLmg+CiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDxw
dWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KQEAgLTE0NzgsOSArMTQ3Nyw5IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVDb250ZW50UmVjdEZv
ckxheWVycykKICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZURyYXdUcmFuc2Zv
cm1zKHBhcmVudC5nZXQoKSwgcGFyZW50LT5ib3VuZHMoKSwgMSwgZHVtbXlNYXhUZXh0dXJlU2l6
ZSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpj
YWxjdWxhdGVWaXNpYmxlUmVjdHMocmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7CiAKLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdChJbnRQb2ludCg1LCA1KSwgSW50U2l6ZSgxMCwgMTApKSwg
Z3JhbmRDaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoSW50UG9pbnQoMTUsIDE1KSwgSW50U2l6ZSg1LCA1KSksIGdyYW5kQ2hpbGQz
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KEludFBvaW50KDE1LCAxNSksIEludFNpemUoNSwgNSkpLCBncmFuZENoaWxkMy0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KDUsIDUp
LCBJbnRTaXplKDEwLCAxMCkpLCBncmFuZENoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsK
KyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KDE1LCAxNSksIEludFNpemUoNSwg
NSkpLCBncmFuZENoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KEludFBvaW50KDE1LCAxNSksIEludFNpemUoNSwgNSkpLCBncmFuZENoaWxk
My0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKICAgICBFWFBFQ1RfVFJVRShncmFuZENoaWxkNC0+
ZHJhd2FibGVDb250ZW50UmVjdCgpLmlzRW1wdHkoKSk7CiB9CiAKQEAgLTE1NTAsOSArMTU0OSw5
IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5Q2xpcFJlY3RJc1Byb3Bh
Z2F0ZWRDb3JyZWN0bHlUb1N1cmZhY2VzKQogICAgIEVYUEVDVF9GQUxTRShncmFuZENoaWxkNC0+
cmVuZGVyU3VyZmFjZSgpKTsgLy8gQmVjYXVzZSBncmFuZENoaWxkNCBpcyBlbnRpcmVseSBjbGlw
cGVkLCBpdCBpcyBleHBlY3RlZCB0byBub3QgaGF2ZSBhIHJlbmRlclN1cmZhY2UuCiAKICAgICAv
LyBTdXJmYWNlcyBhcmUgY2xpcHBlZCBieSB0aGVpciBwYXJlbnQsIGJ1dCB1bi1hZmZlY3RlZCBi
eSB0aGUgb3duaW5nIGxheWVyJ3MgbWFza3NUb0JvdW5kcy4KLSAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMCwgMjApKSwgZ3JhbmRDaGlsZDEt
PnJlbmRlclN1cmZhY2UoKS0+Y2xpcFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMjAsIDIwKSksIGdyYW5kQ2hpbGQyLT5yZW5k
ZXJTdXJmYWNlKCktPmNsaXBSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KEludFBvaW50KDAsIDApLCBJbnRTaXplKDIwLCAyMCkpLCBncmFuZENoaWxkMy0+cmVuZGVyU3Vy
ZmFjZSgpLT5jbGlwUmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KEludFBvaW50
KDAsIDApLCBJbnRTaXplKDIwLCAyMCkpLCBncmFuZENoaWxkMS0+cmVuZGVyU3VyZmFjZSgpLT5j
bGlwUmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KDAsIDApLCBJ
bnRTaXplKDIwLCAyMCkpLCBncmFuZENoaWxkMi0+cmVuZGVyU3VyZmFjZSgpLT5jbGlwUmVjdCgp
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKDIw
LCAyMCkpLCBncmFuZENoaWxkMy0+cmVuZGVyU3VyZmFjZSgpLT5jbGlwUmVjdCgpKTsKIH0KIAog
VEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVy
U3VyZmFjZUhpZXJhcmNoeSkKQEAgLTE3MDcsNyArMTcwNiw3IEBAIFRFU1QoQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3JJZGVudGl0eVRyYW5zZm9ybSkKICAg
ICBJbnRSZWN0IGxheWVyQ29udGVudFJlY3QgPSBJbnRSZWN0KEludFBvaW50KDEwLCAxMCksIElu
dFNpemUoMzAsIDMwKSk7CiAgICAgSW50UmVjdCBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQo
MTAsIDEwKSwgSW50U2l6ZSgzMCwgMzApKTsKICAgICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5ZXJU
cmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxh
eWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQs
IGFjdHVhbCk7CiAKICAgICAvLyBDYXNlIDI6IExheWVyIGlzIG91dHNpZGUgdGhlIHN1cmZhY2Ug
cmVjdC4KICAgICBsYXllckNvbnRlbnRSZWN0ID0gSW50UmVjdChJbnRQb2ludCgxMjAsIDEyMCks
IEludFNpemUoMzAsIDMwKSk7CkBAIC0xNzE4LDcgKzE3MTcsNyBAQCBURVNUKENDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9ySWRlbnRpdHlUcmFuc2Zvcm0pCiAg
ICAgbGF5ZXJDb250ZW50UmVjdCA9IEludFJlY3QoSW50UG9pbnQoODAsIDgwKSwgSW50U2l6ZSgz
MCwgMzApKTsKICAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoODAsIDgwKSwgSW50U2l6
ZSgyMCwgMjApKTsKICAgICBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0
ZVZpc2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRv
U3VyZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1
YWwpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogfQogCiBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yVHJhbnNsYXRpb25z
KQpAQCAtMTczNCw3ICsxNzMzLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2
ZXJpZnlWaXNpYmxlUmVjdEZvclRyYW5zbGF0aW9ucykKICAgICBsYXllclRvU3VyZmFjZVRyYW5z
Zm9ybS50cmFuc2xhdGUoMTAsIDEwKTsKICAgICBJbnRSZWN0IGV4cGVjdGVkID0gSW50UmVjdChJ
bnRQb2ludCgwLCAwKSwgSW50U2l6ZSgzMCwgMzApKTsKICAgICBJbnRSZWN0IGFjdHVhbCA9IEND
TGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJl
Y3QsIGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhw
ZWN0ZWQsIGFjdHVhbCk7CiAKICAgICAvLyBDYXNlIDI6IExheWVyIGlzIG91dHNpZGUgdGhlIHN1
cmZhY2UgcmVjdC4KICAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsK
QEAgLTE3NDcsNyArMTc0Niw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5VmlzaWJsZVJlY3RGb3JUcmFuc2xhdGlvbnMpCiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zv
cm0udHJhbnNsYXRlKDgwLCA4MCk7CiAgICAgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAs
IDApLCBJbnRTaXplKDIwLCAyMCkpOwogICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJl
Y3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhw
ZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiB9
CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3Iy
RFJvdGF0aW9ucykKQEAgLTE3NjUsNyArMTc2NCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IyRFJvdGF0aW9ucykKICAgICBsYXllclRvU3Vy
ZmFjZVRyYW5zZm9ybS5yb3RhdGUoNDUpOwogICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0
KEludFBvaW50KDAsIDApLCBJbnRTaXplKDMwLCAzMCkpOwogICAgIEludFJlY3QgYWN0dWFsID0g
Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNl
UmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShl
eHBlY3RlZCwgYWN0dWFsKTsKIAogICAgIC8vIENhc2UgMjogTGF5ZXIgaXMgb3V0c2lkZSB0aGUg
c3VyZmFjZSByZWN0LgogICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgp
OwpAQCAtMTc4Myw3ICsxNzgyLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2
ZXJpZnlWaXNpYmxlUmVjdEZvcjJEUm90YXRpb25zKQogICAgIGxheWVyVG9TdXJmYWNlVHJhbnNm
b3JtLnJvdGF0ZSg0NSk7CiAgICAgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJ
bnRTaXplKDMwLCAzMCkpOwogICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2Fs
Y3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3QsIGxh
eWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQs
IGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CiAKICAgICAv
LyBDYXNlIDQ6IFRoZSBsYXllciBpcyByb3RhdGVkIGFib3V0IGl0cyB0b3AtbGVmdCBjb3JuZXIs
IGFuZCB0cmFuc2xhdGVkIHVwd2FyZHMuIEluCiAgICAgLy8gICAgICAgICBzdXJmYWNlIHNwYWNl
LCB0aGUgbGF5ZXIgaXMgb3JpZW50ZWQgZGlhZ29uYWxseSwgd2l0aCBvbmx5IHRoZSB0b3AgY29y
bmVyCkBAIC0xNzk1LDcgKzE3OTQsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeVZpc2libGVSZWN0Rm9yMkRSb3RhdGlvbnMpCiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFu
c2Zvcm0ucm90YXRlKDQ1KTsKICAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMTUsIDAp
LCBJbnRTaXplKDE1LCAzMCkpOyAvLyByaWdodCBoYWxmIG9mIGxheWVyIGJvdW5kcy4KICAgICBh
Y3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdl
dFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7
Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAgIEVYUEVDVF9S
RUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RPcnRob2dyYXBoaWNUcmFuc2Zvcm0pCkBAIC0x
ODExLDcgKzE4MTAsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZp
c2libGVSZWN0Rm9yM2RPcnRob2dyYXBoaWNUcmFuc2Zvcm0pCiAgICAgbGF5ZXJUb1N1cmZhY2VU
cmFuc2Zvcm0ucm90YXRlM2QoMCwgNDUsIDApOwogICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRS
ZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgSW50UmVjdCBhY3R1
YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1
cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7Ci0g
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAgIEVYUEVDVF9SRUNU
X0VRKGV4cGVjdGVkLCBhY3R1YWwpOwogCiAgICAgLy8gQ2FzZSAyOiBPcnRob2dyYXBoaWMgcHJv
amVjdGlvbiBvZiBhIGxheWVyIHJvdGF0ZWQgYWJvdXQgeS1heGlzIGJ5IDQ1IGRlZ3JlZXMsIGJ1
dAogICAgIC8vICAgICAgICAgc2hpZnRlZCB0byB0aGUgc2lkZSBzbyBvbmx5IHRoZSByaWdodC1o
YWxmIHRoZSBsYXllciB3b3VsZCBiZSB2aXNpYmxlIG9uCkBAIC0xODIyLDcgKzE4MjEsNyBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RPcnRo
b2dyYXBoaWNUcmFuc2Zvcm0pCiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ucm90YXRlM2Qo
MCwgNDUsIDApOyAvLyByb3RhdGVzIGFib3V0IHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIGxheWVyCiAg
ICAgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDUwLCAwKSwgSW50U2l6ZSg1MCwgMTAwKSk7
IC8vIHJpZ2h0IGhhbGYgb2YgdGhlIGxheWVyLgogICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9z
dENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29u
dGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVh
bCk7CiB9CiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJl
Y3RGb3IzZFBlcnNwZWN0aXZlVHJhbnNmb3JtKQpAQCAtMTg0OSw3ICsxODQ4LDcgQEAgVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNkUGVyc3BlY3Rp
dmVUcmFuc2Zvcm0pCiAKICAgICBJbnRSZWN0IGV4cGVjdGVkID0gSW50UmVjdChJbnRQb2ludCgt
NTAsIC01MCksIEludFNpemUoMjAwLCAyMDApKTsKICAgICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5
ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3Qs
IGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoZXhwZWN0ZWQsIGFjdHVhbCk7CisgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0
ZWQsIGFjdHVhbCk7CiAKICAgICAvLyBDYXNlIDI6IHNhbWUgcHJvamVjdGlvbiBhcyBiZWZvcmUs
IGV4Y2VwdCB0aGF0IHRoZSBsYXllciBpcyBhbHNvIHRyYW5zbGF0ZWQgdG8gdGhlCiAgICAgLy8g
ICAgICAgICBzaWRlLCBzbyB0aGF0IG9ubHkgdGhlIHJpZ2h0IGhhbGYgb2YgdGhlIGxheWVyIHNo
b3VsZCBiZSB2aXNpYmxlLgpAQCAtMTg2Miw3ICsxODYxLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNkUGVyc3BlY3RpdmVUcmFuc2Zvcm0p
CiAgICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0udHJhbnNsYXRlM2QoLTIwMCwgMCwgMCk7CiAg
ICAgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDUwLCAtNTApLCBJbnRTaXplKDEwMCwgMjAw
KSk7IC8vIFRoZSByaWdodCBoYWxmIG9mIHRoZSBsYXllcidzIGJvdW5kaW5nIHJlY3QuCiAgICAg
YWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJn
ZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0p
OwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1Rf
UkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNkT3J0aG9ncmFwaGljSXNOb3RDbGlwcGVkQmVo
aW5kU3VyZmFjZSkKQEAgLTE4ODUsNyArMTg4NCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3IzZE9ydGhvZ3JhcGhpY0lzTm90Q2xpcHBlZEJl
CiAKICAgICBJbnRSZWN0IGV4cGVjdGVkID0gSW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6
ZSgxMDAsIDEwMCkpOwogICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9u
OjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVj
dCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBl
Y3RlZCwgYWN0dWFsKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKIH0K
IAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvcjNk
UGVyc3BlY3RpdmVXaGVuQ2xpcHBlZEJ5VykKQEAgLTE5NTEsNyArMTk1MCw3IEBAIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3JQZXJzcGVjdGl2ZVVu
cHJvamVjdGlvbikKICAgICAvLyB0aGF0IHRoZSBlbnRpcmUgbGF5ZXIgc2hvdWxkIHN0aWxsIGJl
IGNvbnNpZGVyZWQgdmlzaWJsZS4KICAgICBJbnRSZWN0IGV4cGVjdGVkID0gSW50UmVjdChJbnRQ
b2ludCgtMTAsIC0xMCksIEludFNpemUoMjAsIDIwKSk7CiAgICAgSW50UmVjdCBhY3R1YWwgPSBD
Q0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1cmZhY2VS
ZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4
cGVjdGVkLCBhY3R1YWwpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZl
cmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvclNpbXBsZUxheWVycykKQEAgLTE5
NzIsMjEgKzE5NzEsMjEgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlE
cmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNGb3JTaW1wbGVMYXkKIAogICAgIGV4ZWN1dGVD
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdC5nZXQoKSk7CiAKLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Cisg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIAogICAg
IC8vIExheWVycyB0aGF0IGRvIG5vdCBkcmF3IGNvbnRlbnQgc2hvdWxkIGhhdmUgZW1wdHkgdmlz
aWJsZUNvbnRlbnRSZWN0cy4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAw
LCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8v
IGxheWVyIHZpc2libGVDb250ZW50UmVjdHMgYXJlIGNsaXBwZWQgYnkgdGhlaXIgdGFyZ2V0U3Vy
ZmFjZQotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxk
MS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDI1LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVudFJl
Y3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNSwgMjUpLCBjaGlsZDIt
PnZpc2libGVDb250ZW50UmVjdCgpKTsKICAgICBFWFBFQ1RfVFJVRShjaGlsZDMtPnZpc2libGVD
b250ZW50UmVjdCgpLmlzRW1wdHkoKSk7CiAKICAgICAvLyBsYXllciBkcmF3YWJsZUNvbnRlbnRS
ZWN0cyBhcmUgbm90IGNsaXBwZWQuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgNTAsIDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwgY2hpbGQyLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEyNSwgMTI1LCA1MCwg
NTApLCBjaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Cisg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDUwLCA1MCksIGNoaWxkMi0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEyNSwgMTI1LCA1
MCwgNTApLCBjaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiB9CiAKIFRFU1QoQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJlY3Rz
Rm9yTGF5ZXJzQ2xpcHBlZEJ5TGF5ZXIpCkBAIC0yMDEzLDIxICsyMDEyLDIxIEBAIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJl
Y3RzRm9yTGF5ZXJzQ2xpCiAKICAgICBBU1NFUlRfRkFMU0UoY2hpbGQtPnJlbmRlclN1cmZhY2Uo
KSk7CiAKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJv
b3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVu
dFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJv
b3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVj
dCgpKTsKIAogICAgIC8vIExheWVycyB0aGF0IGRvIG5vdCBkcmF3IGNvbnRlbnQgc2hvdWxkIGhh
dmUgZW1wdHkgdmlzaWJsZUNvbnRlbnRSZWN0cy4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBjaGlsZC0+dmlzaWJsZUNvbnRlbnRS
ZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJvb3QtPnZp
c2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAs
IDApLCBjaGlsZC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQWxsIGdyYW5kY2hp
bGQgdmlzaWJsZUNvbnRlbnRSZWN0cyBzaG91bGQgYmUgY2xpcHBlZCBieSBjaGlsZC4KLSAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBncmFuZENoaWxkMS0+dmlz
aWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDI1LCAyNSksIGdyYW5kQ2hpbGQyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBncmFuZENoaWxkMS0+dmlzaWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUsIDI1KSwgZ3Jh
bmRDaGlsZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKICAgICBFWFBFQ1RfVFJVRShncmFuZENo
aWxkMy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaXNFbXB0eSgpKTsKIAogICAgIC8vIEFsbCBncmFu
ZGNoaWxkIGRyYXdhYmxlQ29udGVudFJlY3RzIHNob3VsZCBhbHNvIGJlIGNsaXBwZWQgYnkgY2hp
bGQuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgNTAsIDUwKSwgZ3JhbmRD
aGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoNzUsIDc1LCAyNSwgMjUpLCBncmFuZENoaWxkMi0+ZHJhd2FibGVDb250ZW50UmVjdCgp
KTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUwLCA1MCksIGdyYW5kQ2hpbGQx
LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNzUs
IDc1LCAyNSwgMjUpLCBncmFuZENoaWxkMi0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKICAgICBF
WFBFQ1RfVFJVRShncmFuZENoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpLmlzRW1wdHkoKSk7
CiB9CiAKQEAgLTIwNTUsMjQgKzIwNTQsMjQgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNGb3JMYXllcnNJblUKIAog
ICAgIEFTU0VSVF9UUlVFKHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCkpOwogCi0gICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5yZW5kZXJT
dXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwor
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5yZW5kZXJT
dXJmYWNlKCktPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiAKICAg
ICAvLyBMYXllcnMgdGhhdCBkbyBub3QgZHJhdyBjb250ZW50IHNob3VsZCBoYXZlIGVtcHR5IHZp
c2libGVDb250ZW50UmVjdHMuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcmVuZGVyU3VyZmFjZTEtPnZpc2libGVDb250ZW50UmVj
dCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNp
YmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAw
KSwgcmVuZGVyU3VyZmFjZTEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8vIEFuIHVu
Y2xpcHBlZCBzdXJmYWNlIGdyb3dzIGl0cyBkcmF3YWJsZUNvbnRlbnRSZWN0IHRvIGluY2x1ZGUg
YWxsIGRyYXdhYmxlIHJlZ2lvbnMgb2YgdGhlIHN1YnRyZWUuCi0gICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoNSwgNSwgMTcwLCAxNzApLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFj
ZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
NSwgNSwgMTcwLCAxNzApLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJs
ZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQWxsIGxheWVycyB0aGF0IGRyYXcgY29udGVudCBp
bnRvIHRoZSB1bmNsaXBwZWQgc3VyZmFjZSBhcmUgYWxzbyB1bmNsaXBwZWQuCi0gICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVu
dFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwg
Y2hpbGQyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQzLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDEtPnZpc2libGVDb250
ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNo
aWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgNTAsIDUwKSwgY2hpbGQzLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA1MCwgNTApLCBjaGlsZDEtPmRyYXdhYmxlQ29u
dGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNzUsIDc1LCA1MCwg
NTApLCBjaGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVj
dCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUsIDUsIDUwLCA1MCksIGNoaWxkMS0+
ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDc1LCA3
NSwgNTAsIDUwKSwgY2hpbGQyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNoaWxkMy0+ZHJhd2FibGVDb250ZW50
UmVjdCgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3
YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNGb3JMYXllcnNJbkNsaXBwZWRSZW5kZXJTdXJmYWNl
KQpAQCAtMjEwMCwyNiArMjA5OSwyNiBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c0ZvckxheWVyc0luQwogCiAgICAg
QVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSk7CiAKLSAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1cmZh
Y2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPnJlbmRlclN1cmZh
Y2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8v
IExheWVycyB0aGF0IGRvIG5vdCBkcmF3IGNvbnRlbnQgc2hvdWxkIGhhdmUgZW1wdHkgdmlzaWJs
ZUNvbnRlbnRSZWN0cy4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAw
KSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJvb3QtPnZpc2libGVD
b250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBy
ZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gQSBjbGlwcGVk
IHN1cmZhY2UgZ3Jvd3MgaXRzIGRyYXdhYmxlQ29udGVudFJlY3QgdG8gaW5jbHVkZSBhbGwgZHJh
d2FibGUgcmVnaW9ucyBvZiB0aGUgc3VidHJlZSwKICAgICAvLyBidXQgYWxzbyBnZXRzIGNsYW1w
ZWQgYnkgdGhlIGFuY2VzdG9yJ3MgY2xpcC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg1LCA1LCA5NSwgOTUpLCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJs
ZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgOTUsIDk1
KSwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgp
KTsKIAogICAgIC8vIEFsbCBsYXllcnMgdGhhdCBkcmF3IGNvbnRlbnQgaW50byB0aGUgc3VyZmFj
ZSBoYXZlIHRoZWlyIHZpc2libGVDb250ZW50UmVjdCBjbGlwcGVkIGJ5IHRoZSBzdXJmYWNlIGNs
aXBSZWN0LgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNo
aWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDI1LCAyNSksIGNoaWxkMi0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQxLT52aXNpYmxlQ29udGVu
dFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNSwgMjUpLCBjaGls
ZDItPnZpc2libGVDb250ZW50UmVjdCgpKTsKICAgICBFWFBFQ1RfVFJVRShjaGlsZDMtPnZpc2li
bGVDb250ZW50UmVjdCgpLmlzRW1wdHkoKSk7CiAKICAgICAvLyBCdXQgdGhlIGRyYXdhYmxlQ29u
dGVudFJlY3RzIGFyZSB1bmNsaXBwZWQuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
NSwgNSwgNTAsIDUwKSwgY2hpbGQxLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwgY2hpbGQyLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEyNSwgMTI1LCA1
MCwgNTApLCBjaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCg1LCA1LCA1MCwgNTApLCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg3NSwgNzUsIDUwLCA1MCksIGNoaWxkMi0+ZHJh
d2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEyNSwgMTI1
LCA1MCwgNTApLCBjaGlsZDMtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CiB9CiAKIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5RHJhd2FibGVBbmRWaXNpYmxlQ29udGVudFJl
Y3RzRm9yU3VyZmFjZUhpZXJhcmNoeSkKQEAgLTIxNTMsMzIgKzIxNTIsMzIgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVj
dHNGb3JTdXJmYWNlSGkKICAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3Vy
ZmFjZSgpKTsKICAgICBBU1NFUlRfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgp
KTsKIAotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9v
dC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwotICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVDb250ZW50
UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9v
dC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCByb290LT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOwogCiAgICAgLy8gTGF5ZXJzIHRoYXQgZG8gbm90IGRyYXcgY29udGVudCBzaG91bGQgaGF2
ZSBlbXB0eSB2aXNpYmxlQ29udGVudFJlY3RzLgotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDAsIDApLCByb290LT52aXNpYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52aXNpYmxl
Q29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwg
MCksIHJlbmRlclN1cmZhY2UyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwor
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIHJlbmRlclN1cmZhY2UxLT52
aXNpYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAw
LCAwKSwgcmVuZGVyU3VyZmFjZTItPnZpc2libGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8vIEEg
Y2xpcHBlZCBzdXJmYWNlIGdyb3dzIGl0cyBkcmF3YWJsZUNvbnRlbnRSZWN0IHRvIGluY2x1ZGUg
YWxsIGRyYXdhYmxlIHJlZ2lvbnMgb2YgdGhlIHN1YnRyZWUsCiAgICAgLy8gYnV0IGFsc28gZ2V0
cyBjbGFtcGVkIGJ5IHRoZSBhbmNlc3RvcidzIGNsaXAuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoNSwgNSwgOTUsIDk1KSwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+
ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUsIDUs
IDk1LCA5NSksIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdhYmxlQ29udGVu
dFJlY3QoKSk7CiAKICAgICAvLyByZW5kZXJTdXJmYWNlMSBsaXZlcyBpbiB0aGUgInVuY2xpcHBl
ZCB1bml2ZXJzZSIgb2YgcmVuZGVyU3VyZmFjZTEsIGFuZCBpcyBvbmx5CiAgICAgLy8gaW1wbGlj
aXRseSBjbGlwcGVkIGJ5IHJlbmRlclN1cmZhY2UxJ3MgY29udGVudFJlY3QuIFNvLCByZW5kZXJT
dXJmYWNlMiBncm93cyB0bwogICAgIC8vIGVuY2xvc2UgYWxsIGRyYXdhYmxlIGNvbnRlbnQgb2Yg
aXRzIHN1YnRyZWUuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgMTcwLCAx
NzApLCByZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNSwgNSwgMTcwLCAxNzApLCByZW5kZXJT
dXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAg
Ly8gQWxsIGxheWVycyB0aGF0IGRyYXcgY29udGVudCBpbnRvIHJlbmRlclN1cmZhY2UyIHRoaW5r
IHRoZXkgYXJlIHVuY2xpcHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCA1MCwgNTApLCBjaGlsZDEtPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDItPnZpc2libGVDb250ZW50UmVj
dCgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGls
ZDMtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDUwLCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgY2hpbGQyLT52aXNpYmxlQ29udGVudFJlY3Qo
KSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNTApLCBjaGlsZDMtPnZp
c2libGVDb250ZW50UmVjdCgpKTsKIAogICAgIC8vIGRyYXdhYmxlQ29udGVudFJlY3RzIGFyZSBh
bHNvIHVuY2xpcHBlZC4KLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1LCA1LCA1MCwg
NTApLCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoNzUsIDc1LCA1MCwgNTApLCBjaGlsZDItPmRyYXdhYmxlQ29udGVudFJlY3Qo
KSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCksIGNo
aWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDUsIDUsIDUwLCA1MCksIGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDc1LCA3NSwgNTAsIDUwKSwgY2hpbGQyLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTI1LCAxMjUsIDUwLCA1MCks
IGNoaWxkMy0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LCB2ZXJpZnlEcmF3YWJsZUFuZFZpc2libGVDb250ZW50UmVjdHNXaXRoVHJh
bnNmb3JtT25VbmNsaXBwZWRTdXJmYWNlKQpAQCAtMjIwNCwyMSArMjIwMywyMSBAQCBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRS
ZWN0c1dpdGhUcmFuc2ZvcgogCiAgICAgQVNTRVJUX1RSVUUocmVuZGVyU3VyZmFjZTEtPnJlbmRl
clN1cmZhY2UoKSk7CiAKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAs
IDEwMCksIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIHJvb3QtPmRyYXdh
YmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAs
IDEwMCksIHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgcm9vdC0+ZHJhd2FibGVD
b250ZW50UmVjdCgpKTsKIAogICAgIC8vIExheWVycyB0aGF0IGRvIG5vdCBkcmF3IGNvbnRlbnQg
c2hvdWxkIGhhdmUgZW1wdHkgdmlzaWJsZUNvbnRlbnRSZWN0cy4KLSAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgcm9vdC0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwot
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNl
MS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgMCwgMCksIHJvb3QtPnZpc2libGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDAsIDApLCByZW5kZXJTdXJmYWNlMS0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwogCiAgICAgLy8gVGhlIHVuY2xpcHBlZCBzdXJmYWNlIGdyb3dzIGl0cyBkcmF3YWJsZUNv
bnRlbnRSZWN0IHRvIGluY2x1ZGUgYWxsIGRyYXdhYmxlIHJlZ2lvbnMgb2YgdGhlIHN1YnRyZWUu
CiAgICAgaW50IGRpYWdvbmFsUmFkaXVzID0gY2VpbChzcXJ0KDIuMCkgKiAyNSk7CiAgICAgSW50
UmVjdCBleHBlY3RlZFN1cmZhY2VEcmF3YWJsZUNvbnRlbnQgPSBJbnRSZWN0KDUwIC0gZGlhZ29u
YWxSYWRpdXMsIDUwIC0gZGlhZ29uYWxSYWRpdXMsIGRpYWdvbmFsUmFkaXVzICogMiwgZGlhZ29u
YWxSYWRpdXMgKiAyKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWRTdXJmYWNlRHJh
d2FibGVDb250ZW50LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkU3VyZmFjZURyYXdhYmxl
Q29udGVudCwgcmVuZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50
UmVjdCgpKTsKIAogICAgIC8vIEFsbCBsYXllcnMgdGhhdCBkcmF3IGNvbnRlbnQgaW50byB0aGUg
dW5jbGlwcGVkIHN1cmZhY2UgYXJlIGFsc28gdW5jbGlwcGVkLgotICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkp
OwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZFN1cmZhY2VEcmF3YWJsZUNvbnRlbnQs
IGNoaWxkMS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDUwLCA1MCksIGNoaWxkMS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIEVY
UEVDVF9SRUNUX0VRKGV4cGVjdGVkU3VyZmFjZURyYXdhYmxlQ29udGVudCwgY2hpbGQxLT5kcmF3
YWJsZUNvbnRlbnRSZWN0KCkpOwogfQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhUcmFuc2Zvcm1PbkNsaXBw
ZWRTdXJmYWNlKQpAQCAtMjI0OSwxNSArMjI0OCwxNSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeURyYXdhYmxlQW5kVmlzaWJsZUNvbnRlbnRSZWN0c1dpdGhUcmFuc2Zv
cgogICAgIGludCBkaWFnb25hbFJhZGl1cyA9IGNlaWwoc3FydCgyLjApICogMjUpOwogICAgIElu
dFJlY3QgdW5jbGlwcGVkU3VyZmFjZUNvbnRlbnQgPSBJbnRSZWN0KDUwIC0gZGlhZ29uYWxSYWRp
dXMsIDUwIC0gZGlhZ29uYWxSYWRpdXMsIGRpYWdvbmFsUmFkaXVzICogMiwgZGlhZ29uYWxSYWRp
dXMgKiAyKTsKICAgICBJbnRSZWN0IGV4cGVjdGVkU3VyZmFjZURyYXdhYmxlQ29udGVudCA9IGlu
dGVyc2VjdGlvbih1bmNsaXBwZWRTdXJmYWNlQ29udGVudCwgSW50UmVjdCgwLCAwLCA1MCwgNTAp
KTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWRTdXJmYWNlRHJhd2FibGVDb250ZW50
LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkp
OworICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkU3VyZmFjZURyYXdhYmxlQ29udGVudCwgcmVu
ZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKIAog
ICAgIC8vIE9uIHRoZSBjbGlwcGVkIHN1cmZhY2UsIG9ubHkgYSBxdWFydGVyICBvZiB0aGUgY2hp
bGQxIGlzIHZpc2libGUsIGJ1dCB3aGVuIHJvdGF0aW5nCiAgICAgLy8gaXQgYmFjayB0byAgY2hp
bGQxJ3MgY29udGVudCBzcGFjZSwgdGhlIGFjdHVhbCBlbmNsb3NpbmcgcmVjdCBlbmRzIHVwIGNv
dmVyaW5nIHRoZQogICAgIC8vIGZ1bGwgbGVmdCBoYWxmIG9mIGNoaWxkMS4KLSAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNiwgNTApLCBjaGlsZDEtPnZpc2libGVDb250ZW50
UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDI2LCA1MCksIGNoaWxk
MS0+dmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogCiAgICAgLy8gVGhlIGNoaWxkJ3MgZHJhd2FibGVD
b250ZW50UmVjdCBpcyB1bmNsaXBwZWQuCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKHVuY2xpcHBl
ZFN1cmZhY2VDb250ZW50LCBjaGlsZDEtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CisgICAgRVhQ
RUNUX1JFQ1RfRVEodW5jbGlwcGVkU3VyZmFjZUNvbnRlbnQsIGNoaWxkMS0+ZHJhd2FibGVDb250
ZW50UmVjdCgpKTsKIH0KIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlC
YWNrRmFjZUN1bGxpbmdXaXRob3V0UHJlc2VydmVzM2QpCkBAIC0yOTAwLDcgKzI4OTksNyBAQCBU
RVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUhpdFRlc3RpbmdGb3JTaW5nbGVM
YXllcldpdGhTY2FsZWRDb250ZW50cwogICAgIC8vIFNhbml0eSBjaGVjayB0aGUgc2NlbmFyaW8g
d2UganVzdCBjcmVhdGVkLgogICAgIC8vIFRoZSB2aXNpYmxlQ29udGVudFJlY3QgZm9yIHRlc3RM
YXllciBpcyBhY3R1YWxseSAxMDB4MTAwLCBldmVuIHRob3VnaCBpdHMgbGF5b3V0IHNpemUgaXMg
NTB4NTAsIHBvc2l0aW9uZWQgYXQgMjV4MjUuCiAgICAgQ0NMYXllckltcGwqIHRlc3RMYXllciA9
IHJvb3QtPmNoaWxkcmVuKClbMF0uZ2V0KCk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoSW50UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMDAsIDEwMCkpLCB0ZXN0TGF5ZXItPnZpc2li
bGVDb250ZW50UmVjdCgpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KEludFBvaW50Ojp6
ZXJvKCksIEludFNpemUoMTAwLCAxMDApKSwgdGVzdExheWVyLT52aXNpYmxlQ29udGVudFJlY3Qo
KSk7CiAgICAgQVNTRVJUX0VRKDF1LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LnNpemUoKSk7CiAg
ICAgQVNTRVJUX0VRKDF1LCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUo
KSk7CiAKQEAgLTM1MjEsNyArMzUyMCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVz
dCwgdmVyaWZ5UmVuZGVyU3VyZmFjZVRyYW5zZm9ybXNJbkhpZ2hEUEkpCiAgICAgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXggZXhwZWN0ZWREdXBsaWNhdGVDaGlsZERyYXdUcmFuc2Zvcm0gPSBjaGls
ZC0+ZHJhd1RyYW5zZm9ybSgpOwogICAgIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEo
Y2hpbGQtPmRyYXdUcmFuc2Zvcm0oKSwgZHVwbGljYXRlQ2hpbGROb25Pd25lci0+ZHJhd1RyYW5z
Zm9ybSgpKTsKICAgICBFWFBFQ1RfVFJBTlNGT1JNQVRJT05fTUFUUklYX0VRKGNoaWxkLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSgpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5zY3JlZW5TcGFjZVRy
YW5zZm9ybSgpKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2hpbGQtPmRyYXdhYmxlQ29udGVu
dFJlY3QoKSwgZHVwbGljYXRlQ2hpbGROb25Pd25lci0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsK
KyAgICBFWFBFQ1RfUkVDVF9FUShjaGlsZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpLCBkdXBsaWNh
dGVDaGlsZE5vbk93bmVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIEVYUEVDVF9FUShj
aGlsZC0+Y29udGVudEJvdW5kcygpLCBkdXBsaWNhdGVDaGlsZE5vbk93bmVyLT5jb250ZW50Qm91
bmRzKCkpOwogCiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWRSZW5kZXJTdXJm
YWNlRHJhd1RyYW5zZm9ybTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKaW5kZXggNTYyYzA4Njc3MWZhZjI2ZGZk
MGM1Y2NkZWFmODA1MjM4NmFjOGU2Ni4uZDA5YmMzNjQ5ZWFlYmVjNDNkODlkZDYyMzc0MzM2ZWJm
MjU2MWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAgLTI3LDEyICsyNywxMiBAQAogI2luY2x1ZGUg
IkNDTGF5ZXJUcmVlSG9zdEltcGwuaCIKIAogI2luY2x1ZGUgIkNDQW5pbWF0aW9uVGVzdENvbW1v
bi5oIgorI2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRpbHMuaCIKICNpbmNsdWRlICJDQ0hlYWRz
VXBEaXNwbGF5TGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiQ0NJT1N1cmZhY2VMYXllckltcGwuaCIK
ICNpbmNsdWRlICJDQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgIkNDTGF5ZXJUZXN0Q29tbW9uLmgi
CiAjaW5jbHVkZSAiQ0NMYXllclRpbGluZ0RhdGEuaCIKLSNpbmNsdWRlICJDQ0xheWVyVHJlZVRl
c3RDb21tb24uaCIKICNpbmNsdWRlICJDQ1F1YWRTaW5rLmgiCiAjaW5jbHVkZSAiQ0NSZW5kZXJQ
YXNzRHJhd1F1YWQuaCIKICNpbmNsdWRlICJDQ1JlbmRlcmVyR0wuaCIKQEAgLTI4MjAsNyArMjgy
MCw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgdGV4dHVyZUNhY2hpbmdXaXRo
Q2xpcHBpbmcpCiAgICAgICAgIEVYUEVDVF9MVChxdWFkVmlzaWJsZVJlY3Qud2lkdGgoKSwgMTAw
KTsKIAogICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcmVuZGVyIHN1cmZhY2UgdGV4dHVyZSBp
cyAqbm90KiBjbGlwcGVkLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDEwMCksIGZyYW1lLnJlbmRlclBhc3Nlc1swXS0+b3V0cHV0UmVjdCgpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIGZyYW1lLnJlbmRlclBh
c3Nlc1swXS0+b3V0cHV0UmVjdCgpKTsKIAogICAgICAgICBFWFBFQ1RfRVEoQ0NEcmF3UXVhZDo6
UmVuZGVyUGFzcywgZnJhbWUucmVuZGVyUGFzc2VzWzFdLT5xdWFkTGlzdCgpWzBdLT5tYXRlcmlh
bCgpKTsKICAgICAgICAgQ0NSZW5kZXJQYXNzRHJhd1F1YWQqIHF1YWQgPSBzdGF0aWNfY2FzdDxD
Q1JlbmRlclBhc3NEcmF3UXVhZCo+KGZyYW1lLnJlbmRlclBhc3Nlc1sxXS0+cXVhZExpc3QoKVsw
XS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RUZXN0LmNwcAppbmRleCA3NzdkNjBmYzAyYmMxNWUyZjQxMDgzMmVlMzkxNmQ2MDYz
YWJmZjYxLi4wZTNjZWI4MDcxMDhiMDA4MTYyZTA2NWM4MGNjNGVkN2I2MjA0MjBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNDTGF5ZXJUcmVlSG9zdC5oIgogCisj
aW5jbHVkZSAiQ0NHZW9tdHJ5VGVzdFV0aWxzLmgiCiAjaW5jbHVkZSAiQ0NHcmFwaGljc0NvbnRl
eHQuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAjaW5jbHVkZSAiQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdENvbW1vbi5oIgpAQCAtNDYsMTIgKzQ3LDYgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdFRlc3RzOwogCi0jZGVmaW5lIEVYUEVDVF9FUV9SRUNUKGEsIGIpIFwKLSAgICBFWFBFQ1Rf
RVEoYS54KCksIGIueCgpKTsgXAotICAgIEVYUEVDVF9FUShhLnkoKSwgYi55KCkpOyBcCi0gICAg
RVhQRUNUX0VRKGEud2lkdGgoKSwgYi53aWR0aCgpKTsgXAotICAgIEVYUEVDVF9FUShhLmhlaWdo
dCgpLCBiLmhlaWdodCgpKTsKLQogbmFtZXNwYWNlIHsKIAogY2xhc3MgQ0NMYXllclRyZWVIb3N0
VGVzdCA6IHB1YmxpYyBDQ1RocmVhZGVkVGVzdCB7IH07CkBAIC0xMzQ1LDcgKzEzNDAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVF9FUSgydSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXll
ckxpc3QoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIFRoZSByb290IHJlbmRlciBzdXJmYWNlIGlz
IHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC4KLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVj
dCgwLCAwLCA2MCwgNjApLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmNvbnRlbnRSZWN0KCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDYwLCA2MCksIHJvb3QtPnJlbmRl
clN1cmZhY2UoKS0+Y29udGVudFJlY3QoKSk7CiAKICAgICAgICAgV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXggc2NhbGVUcmFuc2Zvcm07CiAgICAgICAgIHNjYWxlVHJhbnNmb3JtLnNjYWxlKGltcGwt
PmRldmljZVNjYWxlRmFjdG9yKCkpOwpAQCAtMTY4NSwxMSArMTY4MCwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRD
b21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMzAsIDQw
LCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+b2Nj
bHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBjaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMw
LCA0MCwgMTcwLCAxNjApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBsYXllciBpcyBv
cGFxdWUsIHRoZW4gaXQgYWRkcyB0byB0aGUgb2NjbHVzaW9uIHNlZW4gYnkgdGhlIHJvb3RMYXll
ci4KQEAgLTE3MDIsMTEgKzE2OTcsMTEgQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAotICAgICAg
ICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgZ3JhbmRD
aGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDB1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMzAs
IDMwLCAxNzAsIDE3MCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDE3MCwgMTcwKSwgcm9v
dExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoMXUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
IAogICAgICAgICAvLyBBZGQgYSBzZWNvbmQgY2hpbGQgdG8gdGhlIHJvb3QgbGF5ZXIgYW5kIHRo
ZSByZWdpb25zIHNob3VsZCBtZXJnZQpAQCAtMTcyMCwxMyArMTcxNSwxMyBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRD
b21wbGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMzAsIDQw
LCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+b2Nj
bHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBjaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0VRX1JFQ1QoSW50UmVjdCgzMCwgMzAsIDE3MCwgMTcwKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAz
MCwgMTcwLCAxNzApLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAg
ICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCAyMCwgMTcwLCAx
ODApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDIwLCAxNzAsIDE4MCksIHJvb3RMYXllci0+b2Nj
bHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCByb290
TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAg
Ly8gTW92ZSB0aGUgc2Vjb25kIGNoaWxkIHRvIGJlIHN1cmUuCkBAIC0xNzQwLDEzICsxNzM1LDEz
IEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUs
IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVj
dCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgZ3JhbmRDaGlsZC0+b2NjbHVk
ZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1Qo
SW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCAxNzAsIDE2
MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCAzMCwgMTcwLCAxNzApLCBjaGlsZDIt
Pm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMzAsIDMwLCAxNzAsIDE3MCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3Qo
MTAsIDMwLCAxOTAsIDE3MCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgMzAsIDE5MCwgMTcwKSwg
cm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMnUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKIAogICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbGF5ZXIgaGFzIGEgbWFzayBvbiBpdCwgdGhl
biBpdCBzaG91bGRuJ3QgY29udHJpYnV0ZSB0byBvY2NsdXNpb24gb24gc3R1ZmYgYmVsb3cgaXQK
QEAgLTE3NjIsMTMgKzE3NTcsMTMgQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAotICAgICAgICBF
WFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgZ3JhbmRDaGls
ZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1
LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAg
ICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+b2Nj
bHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgY2hp
bGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDB1LCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0
cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDcwLCAxOTAs
IDEzMCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5v
Y2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIHJv
b3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAg
ICAvLyBJZiB0aGUgY2hpbGQgbGF5ZXIgd2l0aCBhIG1hc2sgaXMgYmVsb3cgY2hpbGQyLCB0aGVu
IGNoaWxkMiBzaG91bGQgY29udHJpYnV0ZSB0byBvY2NsdXNpb24gb24gZXZlcnl0aGluZywgYW5k
IGNoaWxkIHNob3VsZG4ndCBjb250cmlidXRlIHRvIHRoZSByb290TGF5ZXIKQEAgLTE3ODQsMTMg
KzE3NzksMTMgQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVy
cyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAotICAgICAgICBFWFBFQ1RfRVFfUkVD
VChJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2NsdWRlZFNj
cmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRS
ZWN0KDEwLCA3MCwgMTkwLCAxMzApLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAx
MzApLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoMXUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygp
LnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDQwLCAxOTAsIDE2
MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDEwLCA0MCwgMTkwLCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBjaGlsZC0+b2NjbHVk
ZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1Qo
SW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkw
LCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBsYXllciBoYXMgYSBub24tb3Bh
cXVlIGRyYXdPcGFjaXR5LCB0aGVuIGl0IHNob3VsZG4ndCBjb250cmlidXRlIHRvIG9jY2x1c2lv
biBvbiBzdHVmZiBiZWxvdyBpdApAQCAtMTgwNywxMyArMTgwMiwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21w
bGV0ZSgpOwogCi0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwog
ICAgICAgICBFWFBFQ1RfRVEoMHUsIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5y
ZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoMzAsIDQwLCAx
NzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgMTcwLCAxNjApLCBjaGlsZC0+b2NjbHVk
ZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBjaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VR
X1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGNoaWxkMi0+b2NjbHVk
ZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1Qo
SW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkw
LCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgxdSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBjaGlsZCBsYXllciB3aXRoIG5vbi1vcGFx
dWUgZHJhd09wYWNpdHkgaXMgYmVsb3cgY2hpbGQyLCB0aGVuIGNoaWxkMiBzaG91bGQgY29udHJp
YnV0ZSB0byBvY2NsdXNpb24gb24gZXZlcnl0aGluZywgYW5kIGNoaWxkIHNob3VsZG4ndCBjb250
cmlidXRlIHRvIHRoZSByb290TGF5ZXIKQEAgLTE4MzAsMTMgKzE4MjUsMTMgQEAgcHVibGljOgog
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmlj
X2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0
Q29tcGxldGUoKTsKIAotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGNoaWxkMi0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgwdSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5z
aXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzAp
LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCBncmFuZENoaWxkLT5vY2Ns
dWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGdyYW5k
Q2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVY
UEVDVF9FUV9SRUNUKEludFJlY3QoMTAsIDQwLCAxOTAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEw
LCA0MCwgMTkwLCAxNjApLCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDJ1LCBjaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgxMCwgNzAsIDE5MCwg
MTMwKSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA3MCwgMTkwLCAxMzApLCByb290TGF5ZXItPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgcm9v
dExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAg
IC8vIEtpbGwgdGhlIGxheWVyVHJlZUhvc3QgaW1tZWRpYXRlbHkuCkBAIC0xODkzLDEzICsxODg4
LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVl
dWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50
UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5T
cGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgx
MCwgNzAsIDE5MCwgMTMwKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMwKSwg
Z3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDF1LCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXpl
KCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA0MCwgMTkwLCAxNjApLCBj
aGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgxMCwgNDAsIDE5MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3Bh
Y2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgY2hpbGQtPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJl
Y3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNzAsIDE5MCwgMTMw
KSwgcm9vdExheWVyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoMXUsIHJvb3RMYXllci0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6
ZSgpKTsKIAogICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbGF5ZXIgaGFzIGEgZmlsdGVyIHRoYXQg
bW92ZXMgcGl4ZWxzL2NoYW5nZXMgYWxwaGEsIGFuZCBpcyBiZWxvdyBjaGlsZDIsIHRoZW4gY2hp
bGQgc2hvdWxkIG5vdCBpbmhlcml0IG9jY2x1c2lvbiBmcm9tIG91dHNpZGUgaXRzIHN1YnRyZWUs
CkBAIC0xOTIwLDEzICsxOTE1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoKSwgY2hpbGQyLT5vY2Ns
dWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIGNoaWxk
Mi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9j
Y2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgZ3Jh
bmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgzMCwgNDAsIDE3MCwgMTYwKSwgY2hpbGQtPm9jY2x1ZGVk
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MzAsIDQwLCAxNzAsIDE2MCksIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMXUsIGNoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KDEwLCA3MCwgMTkw
LCAxMzApLCByb290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDcwLCAxOTAsIDEzMCksIHJvb3RMYXllci0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBy
b290TGF5ZXItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAg
ICAgLy8gS2lsbCB0aGUgbGF5ZXJUcmVlSG9zdCBpbW1lZGlhdGVseS4KQEAgLTE5ODUsNyArMTk4
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1TdXJmYWNlcy0x
OyArK2kpIHsKICAgICAgICAgICAgIEludFJlY3QgZXhwZWN0ZWRPY2NsdXNpb24oaSsxLCBpKzEs
IDIwMC1pLTEsIDIwMC1pLTEpOwogCi0gICAgICAgICAgICBFWFBFQ1RfRVFfUkVDVChleHBlY3Rl
ZE9jY2x1c2lvbiwgbGF5ZXJzW2ldLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICAgICAgRVhQRUNUX1JFQ1RfRVEoZXhwZWN0ZWRPY2NsdXNpb24sIGxheWVyc1tpXS0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgICAgIEVYUEVDVF9FUSgx
dSwgbGF5ZXJzW2ldLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAg
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlVGVzdENvbW1vbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjdlMjAyNzk4
MzA5MmEyNGE1NWIwODljZGM3OTliZjk0Yzg1ZDY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVUZXN0Q29tbW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIENDTGF5ZXJUcmVlVGVzdENvbW1vbl9oCi0jZGVmaW5lIENDTGF5ZXJU
cmVlVGVzdENvbW1vbl9oCi0KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXguaD4KLQotbmFtZXNwYWNlIFdlYktpdFRlc3RzIHsKLQotLy8gVGhlc2UgYXJlIG1hY3JvcyBp
bnN0ZWFkIG9mIGZ1bmN0aW9ucyBzbyB0aGF0IHdlIGdldCB1c2VmdWwgbGluZSBudW1iZXJzIHdo
ZXJlIGEgdGVzdCBmYWlsZWQuCi0jZGVmaW5lIEVYUEVDVF9GTE9BVF9SRUNUX0VRKGV4cGVjdGVk
LCBhY3R1YWwpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRVhQRUNUX0ZMT0FUX0VR
KChleHBlY3RlZCkubG9jYXRpb24oKS54KCksIChhY3R1YWwpLmxvY2F0aW9uKCkueCgpKTsgXAot
ICAgIEVYUEVDVF9GTE9BVF9FUSgoZXhwZWN0ZWQpLmxvY2F0aW9uKCkueSgpLCAoYWN0dWFsKS5s
b2NhdGlvbigpLnkoKSk7IFwKLSAgICBFWFBFQ1RfRkxPQVRfRVEoKGV4cGVjdGVkKS5zaXplKCku
d2lkdGgoKSwgKGFjdHVhbCkuc2l6ZSgpLndpZHRoKCkpOyBcCi0gICAgRVhQRUNUX0ZMT0FUX0VR
KChleHBlY3RlZCkuc2l6ZSgpLmhlaWdodCgpLCAoYWN0dWFsKS5zaXplKCkuaGVpZ2h0KCkpCi0K
LSNkZWZpbmUgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5sb2NhdGlvbigpLngo
KSwgKGFjdHVhbCkubG9jYXRpb24oKS54KCkpOyAgICAgIFwKLSAgICBFWFBFQ1RfRVEoKGV4cGVj
dGVkKS5sb2NhdGlvbigpLnkoKSwgKGFjdHVhbCkubG9jYXRpb24oKS55KCkpOyAgICAgIFwKLSAg
ICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkud2lkdGgoKSwgKGFjdHVhbCkuc2l6ZSgpLndp
ZHRoKCkpOyAgICAgIFwKLSAgICBFWFBFQ1RfRVEoKGV4cGVjdGVkKS5zaXplKCkuaGVpZ2h0KCks
IChhY3R1YWwpLnNpemUoKS5oZWlnaHQoKSkKLQotLy8gVGhpcyBpcyBhIGZ1bmN0aW9uIHJhdGhl
ciB0aGFuIGEgbWFjcm8gYmVjYXVzZSB3aGVuIHRoaXMgaXMgaW5jbHVkZWQgYXMgYSBtYWNybwot
Ly8gaW4gYnVsaywgaXQgY2F1c2VzIGEgc2lnbmlmaWNhbnQgc2xvdy1kb3duIGluIGNvbXBpbGF0
aW9uIHRpbWUuIFRoaXMgcHJvYmxlbQotLy8gZXhpc3RzIHdpdGggYm90aCBnY2MgYW5kIGNsYW5n
LCBhbmQgYnVncyBoYXZlIGJlZW4gZmlsZWQgYXQKLS8vIGh0dHA6Ly9sbHZtLm9yZy9idWdzL3No
b3dfYnVnLmNnaT9pZD0xMzY1MSBhbmQgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3df
YnVnLmNnaT9pZD01NDMzNwotdm9pZCBFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKFdlYktp
dDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXggZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhY3R1YWwpOwot
Ci0jZGVmaW5lIEVYUEVDVF9UUkFOU0ZPUk1BVElPTl9NQVRSSVhfRVEoZXhwZWN0ZWQsIGFjdHVh
bCkgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFNDT1BFRF9UUkFDRSgiIik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFdl
YktpdFRlc3RzOjpFeHBlY3RUcmFuc2Zvcm1hdGlvbk1hdHJpeEVxKGV4cGVjdGVkLCBhY3R1YWwp
OyBcCi0gICAgfQotCi19IC8vIG5hbWVzcGFjZQotCi0jZW5kaWYgLy8gQ0NMYXllclRyZWVUZXN0
Q29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NNYXRo
VXRpbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ01hdGhVdGlsVGVz
dC5jcHAKaW5kZXggNDE2ZTFiNTZkODgwODE0NzRkNmY3ZGU2ZGI3YTFmMGIyMGM4OTMzYi4uNTUz
ZjdhNjQ3NmY2YmJiYTAwOGZhYWNjM2VlYzViODQyNTgwNzRlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ01hdGhVdGlsVGVzdC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAK
IAogI2luY2x1ZGUgIkNDTWF0aFV0aWwuaCIKIAotI2luY2x1ZGUgIkNDTGF5ZXJUcmVlVGVzdENv
bW1vbi5oIgorI2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRpbHMuaCIKICNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9u
VHJhY2tlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lv
blRyYWNrZXJUZXN0LmNwcAppbmRleCAxNzE2NzZmNDVkNDQ2MGI2ZjBiYTAzY2FhODZkZjBmZDkz
ZDY1YjY3Li41NjA3ODRiYTNlOGExZjZiMmY1YWRiOTM3ZTBkY2NjZWJmNTQ5NTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdC5jcHAKQEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgIkNDT2NjbHVzaW9uVHJhY2tl
ci5oIgogCiAjaW5jbHVkZSAiQ0NBbmltYXRpb25UZXN0Q29tbW9uLmgiCisjaW5jbHVkZSAiQ0NH
ZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgIkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiQ0NMYXllckltcGwuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RD
b21tb24uaCIKLSNpbmNsdWRlICJDQ0xheWVyVHJlZVRlc3RDb21tb24uaCIKICNpbmNsdWRlICJD
Q01hdGhVdGlsLmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyVGVzdENvbW1vbi5oIgog
I2luY2x1ZGUgIkNDT3ZlcmRyYXdNZXRyaWNzLmgiCkBAIC00NDYsOSArNDQ2LDkgQEAgcHJvdGVj
dGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyLCBvY2NsdXNpb24pOwogICAgICAg
ICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVu
U3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJl
Y3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQo
cGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkpOwpAQCAtNDY2LDE0ICs0NjYsMTQgQEAg
cHJvdGVjdGVkOgogICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzAsIDcwLCA3MCkpLmlzRW1wdHko
KSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCAzMCwgMSwgNzApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDcw
LCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjksIDI5LCA3MCwg
NzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwg
MjksIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDI5
LCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0
KDMwLCAyOSwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgz
MSwgMjksIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJ
bnRSZWN0KDMxLCAyOSwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgxMDAsIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFy
ZW50LCBJbnRSZWN0KDMxLCAzMCwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1Rf
RVEoSW50UmVjdCgzMSwgMzEsIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMSwgNzAsIDcwKSkpOwotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMSwgNzAsIDcwKSkpOwotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzEsIDcwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMSwgNzAsIDcwKSkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI5LCAzMCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDcwLCA3MCkpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMjksIDcwLCA3MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAyOSwgNzAsIDcwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAyOSwgNzAsIDEpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMjksIDcwLCA3MCkpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMSwgMjksIDcwLCA3MCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAyOSwgNzAsIDcwKSkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgMzAsIDEsIDcwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDMwLCA3MCwgNzApKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzEsIDMxLCA3MCwgNzApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMzEsIDcwLCA3MCkp
KTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9jY2x1
c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMSwgNzAsIDcw
KSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI5LCAzMSwgNzAsIDcwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDMxLCA3MCwg
NzApKSk7CiAgICAgfQogfTsKIApAQCAtNDk5LDkgKzQ5OSw5IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50
ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDcw
LCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAs
IDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUo
KSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50
UmVjdCgzMCwgMzAsIDcwLCA3MCkpKTsKQEAgLTUxOSwxNCArNTE5LDE0IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKS5pc0VtcHR5KCkpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzAsIDEsIDcwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDMwLCA3MCwgNzApKSk7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCAyOSwgNzAsIDcwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDI5LCA3MCwgNzAp
KSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAyOSwgNzAsIDEpLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMjksIDcw
LCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzEsIDI5LCA3MCwg
NzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwg
MjksIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAwLCAz
MCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCgzMSwgMzAsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MzEsIDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
SW50UmVjdCgzMSwgMzEsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMjksIDMxLCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzEsIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgyOSwgMzAsIDEsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDMwLCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMjksIDI5LCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMjksIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgzMCwgMjksIDcwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDI5LCA3MCwgNzApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMzEsIDI5LCA3MCwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgMjksIDcwLCA3MCkpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNzAsIDcwKSkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMxLCAzMSwgNzAsIDcwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzEsIDMxLCA3MCwgNzApKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDEwMCwgNzAsIDEpLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyOSwgMzEsIDcwLCA3MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMSwgNzAsIDcwKSkpOwogICAg
IH0KIH07CiAKQEAgLTU1MCw5ICs1NTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZp
c2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFy
ZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUw
LCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTAsIDUwLCA1MCwgNTApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNU
X0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNTAsIDUwLCA1MCwgNTApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAg
ICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoNTAsIDUw
LCA1MCwgNTApKSk7CkBAIC01NzAsMjUgKzU3MCwyNSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG9j
Y2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAg
ICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOwotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA0OSwgNTAsIDUwKSkpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNDksIDUwLCAxKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTAsIDQ5LCA1MCwgNTApKSk7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUxLCA0OSwgNTAsIDUwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDQ5LCA1MCwgNTAp
KSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgNTAsIDEsIDUwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDUwLCA1
MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUxLCA1MSwgNTAs
IDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEs
IDUxLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCAx
MDAsIDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNTAsIDUxLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDQ5LCA1MSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNDksIDUxLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoNDksIDUwLCAxLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDQ5LCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJl
bnQsIEludFJlY3QoNDksIDQ5LCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKElu
dFJlY3QoNTAsIDQ5LCA1MCwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFy
ZW50LCBJbnRSZWN0KDUwLCA0OSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDUxLCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoNTEsIDQ5LCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMTAwLCA1MCwgMSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCg1MSwgNTAsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCg1MSwgNTEsIDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDUwLCAxMDAsIDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChwYXJlbnQsIEludFJlY3QoNTAsIDUxLCA1MCwgNTApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoNDksIDUxLCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTEsIDUwLCA1MCkpKTsKIAogICAgICAgICBvY2Ns
dXNpb24udXNlRGVmYXVsdExheWVyQ2xpcFJlY3QoKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTAsIDUwLCA1MCwg
NTApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwg
NTAsIDEsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNDksIDUwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDQ5LCA0OSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNDksIDQ5LCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDUwLCA0OSwgNTAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCg1MCwgNDksIDUwLCA1MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoNTEsIDQ5LCA0OSwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDUxLCA0OSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDQ5LCA1MCwgMSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTAsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCg0OSwgNDksIDUwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA0OSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDUwLCA0OSwgNTAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNDksIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCg1MSwgNDksIDQ5LCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDQ5LCA1MCwgNTApKSk7CiAgICAgICAgIEVYUEVD
VF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUx
LCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDUxLCA1MCwgNTApKS5p
c0VtcHR5KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1MCkpLmlzRW1wdHkoKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA1MSwgMSwgNDkpLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTEsIDUwLCA1MCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg0OSwgNTEsIDEsIDQ5KSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDUxLCA1MCwgNTApKSk7
CiAgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOwogICAgIH0KIH07CkBAIC02MTgsMTcgKzYxOCwxNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVu
dGVyQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDEwLCA0MzAsIDYwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZh
Y2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwg
NjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3Vy
ZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQs
IG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDQw
LCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMzAsIDQwLCA3MCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAg
RVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgNDAsIDcw
LCA2MCkpKTsKQEAgLTcwMCwzNiArNzAwLDM2IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlz
LT52aXNpdExheWVyKGNoaWxkMiwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgzMCwgMzAsIDYwLCAyMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAz
MCwgNjAsIDIwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMw
LCAzMCwgNjAsIDIwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzAsIDYwLCAyMCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVY
UEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCku
c2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyLCBvY2NsdXNpb24pOwog
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgxMCwgNDMwLCA2MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJD
b250cmlidXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMTAsIDQzMCwgNjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgxMCwgNDMwLCA2MCwg
NzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5y
ZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gT2NjbHVzaW9uIGluIHxjaGlsZDJ8IHNob3Vs
ZCBnZXQgbWVyZ2VkIHdpdGggdGhlIHxjaGlsZHwgc3VyZmFjZSB3ZSBhcmUgbGVhdmluZyBub3cu
CiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CiAKLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgzMCwgMzAsIDcwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAs
IDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lv
bi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKSk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDkwLCAzMCwgMTAsIDEwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoOTAsIDMwLCAxMCwgMTApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzAsIDcwLCA3MCkpKTsKIAog
ICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMw
LCAzMCwgNjAsIDEwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVk
KHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDYwLCAxMCkpKTsKQEAgLTc0MiwyMSArNzQyLDIxIEBA
IHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJl
bnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA2MCwg
MTApKS5pc0VtcHR5KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwg
MzAsIDEsIDEwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoMjksIDMwLCA2MCwgMTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDMwLCAyOSwgNjAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
SW50UmVjdCgzMCwgMjksIDYwLCAxMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoOTAsIDMwLCAxLCAxMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFy
ZW50LCBJbnRSZWN0KDMxLCAzMCwgNjAsIDEwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDI5LCAzMCwgMSwgMTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgyOSwgMzAsIDYwLCAxMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCgzMCwgMjksIDYwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChw
YXJlbnQsIEludFJlY3QoMzAsIDI5LCA2MCwgMTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoOTAsIDMwLCAxLCAxMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNjAsIDEwKSkpOwogICAgICAgICBFWFBFQ1RfVFJVRShv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDYw
LCAxMCkpLmlzRW1wdHkoKSk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDQwLCA3MCwgNjApKS5pc0VtcHR5
KCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyOSwgNDAsIDEsIDYwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjksIDQwLCA3
MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjksIDQwLCAxLCA2MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCA0MCwg
NzAsIDYwKSkpOwogICAgICAgICAvLyBUaGlzIHJlY3QgaXMgbW9zdGx5IG9jY2x1ZGVkIGJ5IHxj
aGlsZDJ8LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg5MCwgMzksIDEwLCAx
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDM5
LCA3MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoOTAsIDM5LCAxMCwg
MSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAz
OSwgNzAsIDYwKSkpOwogICAgICAgICAvLyBUaGlzIHJlY3QgZXh0ZW5kcyBwYXN0IHRvcC9yaWdo
dCBlbmRzIG9mIHxjaGlsZDJ8LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgz
MCwgMjksIDcwLCAxMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJ
bnRSZWN0KDMwLCAyOSwgNzAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDMwLCAyOSwgNzAsIDExKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoMzAsIDI5LCA3MCwgNzApKSk7CiAgICAgICAgIC8vIFRoaXMgcmVjdCBleHRlbmRz
IHBhc3QgbGVmdC9yaWdodCBlbmRzIG9mIHxjaGlsZDJ8LgotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgyMCwgMzksIDgwLCA2MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDIwLCAzOSwgODAsIDYwKSkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDQwLCAxLCA2MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCA0MCwgNzAsIDYwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCA0MSwgNzAsIDYwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwLCAzOSwgODAsIDYwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMjAsIDM5LCA4MCwgNjApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCA0MCwgMSwgNjApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgNDAsIDcwLCA2MCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCA0MSwgNzAsIDYwKSkp
OwogCiAgICAgICAgIC8qIEp1c3RpZmljYXRpb24gZm9yIHRoZSBhYm92ZSBvY2NsdXNpb24gZnJv
bSB8bGF5ZXJ8OgogICAgICAgICAgICAgICAgICAgIDEwMApAQCAtODE0LDkgKzgxNCw5IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAg
ICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24pOwog
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNp
b25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoY2xpcHBlZExheWVySW5D
aGlsZCwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZExheWVySW5DaGlsZCwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAg
ICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZCwgY2xpcHBlZExheWVy
SW5DaGlsZCkpOwpAQCAtODQxLDEzICs4NDEsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlz
LT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgwdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBh
cmVudCwgSW50UmVjdCg3NSwgNTUsIDEsIDEpKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDc1LCA1NSwgMSwgMSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
cGFyZW50LCBJbnRSZWN0KDc1LCA1NSwgMSwgMSkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCg3NSwgNTUsIDEsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCg3NSwgNTUsIDEsIDEpKSk7CiAgICAgfQogfTsKIApAQCAtODc4LDkgKzg3
OCw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllcjEsIG9jY2x1
c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2Nj
bHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcw
LCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA0MzAsIDYwLCA3MCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVY
UEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZCwgSW50UmVjdCgxMCwgNDMwLCA2MCwg
NzApKSk7CkBAIC04OTAsMTcgKzg5MCwxNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9G
QUxTRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQsIEludFJlY3QoMTAsIDQzMSwgNjAsIDcwKSkp
OwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
Y2hpbGQsIEludFJlY3QoMTAsIDQzMCwgNjAsIDcwKSkuaXNFbXB0eSgpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoOSwgNDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoOSwgNDMwLCA2MCwgNzApKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA0MjksIDYwLCAxKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50UmVjdCgxMCwgNDI5LCA2MCwgNzApKSk7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDcwLCA0MzAsIDEsIDcwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50UmVjdCgxMSwgNDMwLCA2MCwgNzAp
KSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCA1MDAsIDYwLCAxKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50UmVjdCgxMCwgNDMxLCA2
MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoOSwgNDMwLCAxLCA3MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoOSwgNDMwLCA2
MCwgNzApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDQyOSwgNjAsIDEp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNoaWxkLCBJbnRSZWN0KDEwLCA0Mjks
IDYwLCA3MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg3MCwgNDMwLCAxLCA3
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2hpbGQsIEludFJlY3QoMTEsIDQz
MCwgNjAsIDcwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwLCA1MDAsIDYw
LCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjaGlsZCwgSW50UmVjdCgxMCwg
NDMxLCA2MCwgNzApKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNl
KGNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2Nj
bHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgNDAsIDcw
LCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgzMCwgNDAsIDcwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBF
Q1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCA0MCwgNzAsIDYw
KSkpOwpAQCAtOTA4LDEwICs5MDgsMTAgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFM
U0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzksIDcwLCA2MCkpKTsK
IAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCgzMCwgNDAsIDcwLCA2MCkpLmlzRW1wdHkoKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCA0MCwgMSwgNjApLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgNDAsIDcwLCA2MCkpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDM5LCA3MCwgMSksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzOSwgNzAsIDYwKSkpOwotICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDQwLCAxLCA2MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMxLCA0MCwgNzAsIDYwKSkp
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwgMSksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCA0MSwgNzAs
IDYwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDI5LCA0MCwgMSwgNjApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgNDAsIDcw
LCA2MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMzksIDcwLCAxKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMzAsIDM5LCA3
MCwgNjApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCA0MCwgMSwgNjAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMSwgNDAs
IDcwLCA2MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgzMCwgMTAwLCA3MCwg
MSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCA0
MSwgNzAsIDYwKSkpOwogCiAgICAgICAgIC8qIEp1c3RpZmljYXRpb24gZm9yIHRoZSBhYm92ZSBv
Y2NsdXNpb24gZnJvbSB8bGF5ZXIxfCBhbmQgfGxheWVyMnw6CiAKQEAgLTk2Niw5ICs5NjYsOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIyLCBvY2NsdXNpb24p
OwogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQyLCBvY2NsdXNp
b24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwLCAzMCwgODAsIDcw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAsIDMwLCA4MCwgNzApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBF
Q1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0xMCwgNDIwLCA3MCwg
ODApKSk7CkBAIC05ODYsMTUgKzk4NiwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG9jY2x1c2lv
bi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTIwLCAtMjAsIDEwMDAsIDEwMDApKTsKIAogICAg
ICAgICAvLyBUaGVyZSBpcyBub3RoaW5nIGFib3ZlIGNoaWxkMidzIHN1cmZhY2UgaW4gdGhlIHot
b3JkZXIuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KC0xMCwgNDIwLCA3MCwg
ODApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChj
aGlsZDIsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDIwLCA3MCwgODApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMiwgZmFsc2UsIEludFJlY3QoLTEw
LCA0MjAsIDcwLCA4MCkpKTsKIAogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZh
Y2UoY2hpbGQyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyMSwg
b2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxk
MSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMCwg
MjAsIDgwLCA4MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwLCAyMCwgODAsIDgwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KC0xMCwgNDMwLCA4MCwgNzApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KC0xMCwgNDMwLCA4MCwgNzApLCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAg
ICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGNoaWxkMSwgSW50UmVjdCgtMTAs
IDQzMCwgODAsIDcwKSkpOwpAQCAtMTAwNCwxNCArMTAwNCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQxLCBJbnRSZWN0KC0xMCwg
NDMwLCA4MCwgNzEpKSk7CiAKICAgICAgICAgLy8gY2hpbGQyJ3MgY29udGVudHMgd2lsbCBvY2Ns
dWRlIGNoaWxkMSBiZWxvdyBpdC4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
LTEwLCA0MzAsIDEwLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFj
ZUNvbnRlbnRSZWN0KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoLTEwLCA0MzAsIDgwLCA3MCkpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgtMTAsIDQzMCwgMTAsIDcwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hpbGQxLCBmYWxz
ZSwgSW50UmVjdCgtMTAsIDQzMCwgODAsIDcwKSkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlQ29u
dHJpYnV0aW5nU3VyZmFjZShjaGlsZDEsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVy
TGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDIwLCAyMCwgODAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAsIDIwLCA4MCwg
ODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAsIDIwLCA4
MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDIwLCAyMCwgODAsIDgwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogCiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRS
ZWN0KDIwLCAyMCwgODAsIDgwKSkpOwpAQCAtMTA4MSw5ICsxMDgxLDkgQEAgcHJvdGVjdGVkOgog
ICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyMiwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhp
cy0+ZW50ZXJMYXllcihjaGlsZDIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMjAsIDMwLCA4MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyMCwg
MzAsIDgwLCA3MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgt
MTAsIDQyMCwgNzAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVj
dHMoKS5zaXplKCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChj
aGlsZDIsIEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCkpKTsKQEAgLTEwOTYsMTUgKzEwOTYsMTUg
QEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2UoY2hp
bGQyLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFRoZXJlIGlzIG5vdGhpbmcgYWJvdmUgY2hp
bGQyJ3Mgc3VyZmFjZSBpbiB0aGUgei1vcmRlci4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0
aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNoaWxkMiwgZmFsc2UsIEludFJlY3QoLTEwLCA0MjAsIDcw
LCA4MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hp
bGQyLCBmYWxzZSwgSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSkpOwogCiAgICAgICAgIHRoaXMt
PmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZDIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPnZpc2l0TGF5ZXIobGF5ZXIxLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckNv
bnRyaWJ1dGluZ1N1cmZhY2UoY2hpbGQxLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MTAsIDIwLCA5MCwgODApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoNDIwLCAtMjAsIDgwLCA5MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNDIwLCAtMjAsIDgw
LCA5MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAg
ICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVk
ZWQoY2hpbGQxLCBJbnRSZWN0KDQyMCwgLTIwLCA4MCwgOTApKSk7CkBAIC0xMTE0LDE2ICsxMTE0
LDE2IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRl
ZChjaGlsZDEsIEludFJlY3QoNDIxLCAtMjAsIDgwLCA5MCkpKTsKIAogICAgICAgICAvLyBjaGls
ZDIncyBjb250ZW50cyB3aWxsIG9jY2x1ZGUgY2hpbGQxIGJlbG93IGl0LgotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0MjAsIC0yMCwgODAsIDkwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVj
dCg0MjAsIC0yMCwgODAsIDkwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVj
dCg0OTAsIC0xMCwgMTAsIDgwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJm
YWNlQ29udGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVjdCg0MjAsIC0xMCwgODAsIDkwKSkp
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0MjAsIC0yMCwgNzAsIDEwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hpbGQx
LCBmYWxzZSwgSW50UmVjdCg0MjAsIC0yMCwgNzAsIDkwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDQyMCwgLTIwLCA4MCwgOTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRy
aWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChjaGlsZDEsIGZhbHNlLCBJbnRSZWN0KDQyMCwgLTIw
LCA4MCwgOTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNDkwLCAtMTAsIDEw
LCA4MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0
KGNoaWxkMSwgZmFsc2UsIEludFJlY3QoNDIwLCAtMTAsIDgwLCA5MCkpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCg0MjAsIC0yMCwgNzAsIDEwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY2hpbGQxLCBmYWxzZSwgSW50UmVjdCg0
MjAsIC0yMCwgNzAsIDkwKSkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3Vy
ZmFjZShjaGlsZDEsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50
LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwLCAy
MCwgOTAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAsIDIwLCA5MCwgODApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMTAsIDIwLCA5MCwgODApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDEwLCAyMCwgOTAsIDgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
VGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAg
IEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMTAsIDIwLCA5
MCwgODApKSk7CkBAIC0xMjA5LDE2ICsxMjA5LDE2IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhp
cy0+dmlzaXRMYXllcihvcGFxdWVMYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50
ZXJDb250cmlidXRpbmdTdXJmYWNlKG9wYXF1ZUxheWVyLCBvY2NsdXNpb24pOwogCi0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMzAsIDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMCwgNDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDQz
MCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIEFuZCBpdCBnZXRzIHRyYW5zbGF0
ZWQgdG8gdGhlIHBhcmVudCBzdXJmYWNlLgogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGlu
Z1N1cmZhY2Uob3BhcXVlTGF5ZXIsIG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVD
VF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVu
U3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMw
LCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
ICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgp
LnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAs
IDMwLCA3MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5z
aXplKCkpOwogCiAgICAgICAgIC8vIFRoZSBibHVyIGxheWVyIG5lZWRzIHRvIHRocm93IGF3YXkg
YW55IG9jY2x1c2lvbiBmcm9tIG91dHNpZGUgaXRzIHN1YnRyZWUuCkBAIC0xMjM1LDkgKzEyMzUs
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIEJ1dCB0aGUgb3BhcXVlIGxheWVyJ3Mgb2NjbHVz
aW9uIGlzIHByZXNlcnZlZCBvbiB0aGUgcGFyZW50LiAKICAgICAgICAgdGhpcy0+bGVhdmVDb250
cmlidXRpbmdTdXJmYWNlKGJsdXJMYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50
ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3MCwg
NzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMzAsIDMwLCA3
MCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwor
ICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogICAgIH0KIH07CkBAIC0xMjU5LDE2ICsxMjU5LDE2IEBAIHByb3RlY3RlZDoKIAogICAgICAg
ICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgwLCAxMDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVl
blNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50
UmVjdCgwLCAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdENvbnRyaWJ1dGluZ1N1cmZhY2Uoc3Vy
ZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1
c2lvbik7CiAKICAgICAgICAgLy8gVGhlIHN1cmZhY2UgYW5kIHJlcGxpY2Egc2hvdWxkIGJvdGgg
YmUgb2NjbHVkaW5nIHRoZSBwYXJlbnQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KDAsIDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgMTAw
LCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwog
ICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5yZWN0cygpLnNpemUoKSk7CiAgICAgfQogfTsKQEAgLTEyOTEsMTYgKzEyOTEsMTYgQEAgcHJv
dGVjdGVkOgogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsK
IAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDUwLCA1MCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJp
YnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxh
eWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBUaGUgc3VyZmFjZSBhbmQgcmVw
bGljYSBzaG91bGQgYm90aCBiZSBvY2NsdWRpbmcgdGhlIHBhcmVudC4KLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCAxMDAsIDcwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgwLCAxMDAsIDEwMCwgNzApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAgICAgfQogfTsKQEAgLTEzMjMsMTYg
KzEzMjMsMTYgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFj
ZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAx
MDAsIDUwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwMCwgNTAsIDUwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7
Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCA1MCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRo
aXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogICAgICAg
ICB0aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBUaGUg
cmVwbGljYSBzaG91bGQgbm90IGJlIG9jY2x1ZGluZyB0aGUgcGFyZW50LCBzaW5jZSBpdCBoYXMg
YSBtYXNrIGFwcGxpZWQgdG8gaXQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDEwMCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAxMDAsIDUwLCA1MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKICAgICB9CiB9OwpAQCAtMTM3Nyw3ICsxMzc3LDcgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDEw
MCwgMjAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1
ZGVkKHBhcmVudCwgSW50UmVjdCgyMDAsIDIwMCwgMTAwLCAxMDApKSk7CiAKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDAp
KSk7CiAgICAgfQogfTsKIApAQCAtMTQyMSw3ICsxNDIxLDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDEwMCwgMjAw
LCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBh
cmVudCwgSW50UmVjdCgyMDAsIDIwMCwgMTAwLCAxMDApKSk7CiAKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAg
ICAgfQogfTsKIApAQCAtMTUzOCwxMSArMTUzOCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVY
UEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDEwMCwgMjAwLCAx
MDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJl
bnQsIEludFJlY3QoMjAwLCAyMDAsIDEwMCwgMTAwKSkpOwogCi0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCA1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAxMDApKSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwMCwgMTAwLCA1MCwgMTAwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMTAwLCAzMDAsIDEw
MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDUwLCAx
MDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyMDAs
IDEwMCwgMTAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEw
MCwgMjAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoMTAwLCAyMDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0
KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoSW50UmVjdCgyMDAsIDUwLCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgyMDAsIDEwMCwgNTAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDEwMCwgMzAwLCAxMDApKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAyMDAsIDEwMCwgNTApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgxMDAsIDIwMCwgMTAwLCAx
MDApKSk7CiAgICAgfQogfTsKIApAQCAtMTU4MSwxMSArMTU4MSwxMSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDEw
MCwgMjAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2Ns
dWRlZChwYXJlbnQsIEludFJlY3QoMjAwLCAyMDAsIDEwMCwgMTAwKSkpOwogCi0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCA1MCwgNTAsIDUwKSwgb2NjbHVz
aW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMCwgMzAwLCAxMDAp
KSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDIwMCwgMTAwLCA1MCwgMTAw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoMCwgMTAw
LCAzMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjAwLCAx
MDAsIDUwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDEwMCwgMjAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIEludFJlY3QoMTAwLCAyMDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDUwLCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDEwMCkpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDEwMCwgNTAsIDEwMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDEwMCwgMzAwLCAxMDApKSk7Cisg
ICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAxMDAsIDUwLCAxMDApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAx
MDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAyMDAsIDEwMCwgNTAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgxMDAsIDIw
MCwgMTAwLCAxMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTc1NCw3ICsxNzU0LDcgQEAgcHJvdGVj
dGVkOgogICAgICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAg
ICAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAg
ICAgICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVj
dCgwLCAxMDAsIDEwMCwgMTAwKSkpOwpAQCAtMTc3MCw3ICsxNzcwLDcgQEAgcHJvdGVjdGVkOgog
ICAgICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAg
ICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMjAsIDEyMCwgMTgwLCAxODApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMTIwLCAxMjAsIDE4MCwgMTgwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1
c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAg
ICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgwLCAx
MDAsIDEwMCwgMTAwKSkpOwpAQCAtMTc4Niw3ICsxNzg2LDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgICAgIHRo
aXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCi0gICAgICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgyNTAsIDI1MCwgNTAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDI1MCwgMjUwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKICAgICAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgICAgIEVYUEVD
VF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDAsIDEwMCwgMTAwLCAx
MDApKSk7CkBAIC0xODE1LDcgKzE4MTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmVu
dGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gVGhlIGxheWVyIGlzIHJv
dGF0ZWQgaW4gM2QgYnV0IHdpdGhvdXQgcHJlc2VydmluZyAzZCwgc28gaXQgb25seSBnZXRzIHJl
c2l6ZWQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDIwMCwgMjAw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAy
MDAsIDIwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyMDAsIDIw
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QobGF5ZXIsIEludFJlY3QoMCwgMCwg
MjAwLCAyMDApKSk7CiAgICAgfQogfTsKIApAQCAtMTg4MCw3ICsxODgwLDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6
OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24o
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5
ZXIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgMjAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGxheWVyLCBJbnRS
ZWN0KDAsIDAsIDIwMCwgMjAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50
UmVjdCgwLCAwLCAyMDAsIDIwMCkpKTsKICAgICB9CiB9OwogCkBAIC0xOTc0LDkgKzE5NzQsOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRob3NlIHBpeGVscyBkb24ndCBv
Y2NsdWRlIHRoaW5ncyBvdXRzaWRlIHRoZSBjbGlwUmVjdC4KICAgICAgICAgdGhpcy0+dmlzaXRM
YXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQs
IG9jY2x1c2lvbik7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEw
MCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CkBA
IC0yMDEwLDI3ICsyMDEwLDI3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXll
cih0b3Btb3N0LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudDIs
IG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoaXMgb2NjbHVzaW9uIHdpbGwgYWZmZWN0IGFsbCBz
dXJmYWNlcy4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAz
MDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudDIsIEludFJlY3QoMCwg
MCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUw
LCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudDIsIEludFJlY3Qo
MCwgMCwgMzAwLCAzMDApKSk7CiAgICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIocGFyZW50Miwgb2Nj
bHVzaW9uKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2VDaGlsZDIsIG9jY2x1
c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24p
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDAsIDEwMCwgMzAwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIEludFJlY3QoMCwg
MCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAwLCAx
MDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBJ
bnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZh
Y2VDaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihzdXJmYWNlLCBv
Y2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMDAsIDAsIDUw
LCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2UsIEludFJlY3Qo
MCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMjAwLCAw
LCA1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlLCBJbnRS
ZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2Us
IG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1
cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIE9jY2x1c2lvbiB3aXRoaW4gdGhlIHN1cmZh
Y2UgaXMgbG9zdCB3aGVuIGxlYXZpbmcgdGhlIGFuaW1hdGluZyBzdXJmYWNlLgotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRS
ZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29u
dGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAgICAg
ICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwog
CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIE9jY2x1c2lv
biBpcyBub3QgYWRkZWQgZm9yIHRoZSBhbmltYXRpbmcgfGxheWVyfC4KLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgIH0K
IH07CiAKQEAgLTIwNjIsMjcgKzIwNjIsMjcgQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52
aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIo
cGFyZW50Miwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhpcyBvY2NsdXNpb24gd2lsbCBhZmZl
Y3QgYWxsIHN1cmZhY2VzLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRS
ZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIElu
dFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CiAgICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIocGFyZW50
Miwgb2NjbHVzaW9uKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2VDaGlsZDIs
IG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZUNoaWxkLCBvY2Ns
dXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAsIDAsIDEwMCwg
MzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIEludFJl
Y3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAw
LCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNo
aWxkLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVy
KHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihzdXJm
YWNlLCBvY2NsdXNpb24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgyMDAs
IDAsIDUwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2UsIElu
dFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MjAwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNl
LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1
cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJm
YWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIE9jY2x1c2lvbiB3aXRoaW4gdGhl
IHN1cmZhY2UgaXMgbG9zdCB3aGVuIGxlYXZpbmcgdGhlIGFuaW1hdGluZyBzdXJmYWNlLgotICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNl
LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDI1MCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJm
YWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7
CiAgICAgICAgIHRoaXMtPmxlYXZlQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNp
b24pOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAg
ICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIE9j
Y2x1c2lvbiBpcyBub3QgYWRkZWQgZm9yIHRoZSBhbmltYXRpbmcgfGxheWVyfC4KLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMjUwLCAzMDApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lvbi51
bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwog
ICAgIH0KIH07CiAKQEAgLTIxMjAsNyArMjEyMCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhp
cy0+dmlzaXRMYXllcihzdXJmYWNlMiwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJD
b250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UyLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDUwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVj
dCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVu
U3BhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRp
bmdTdXJmYWNlKHN1cmZhY2UyLCBvY2NsdXNpb24pOwpAQCAtMjEyOCw1MyArMjEyOCw1MyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICAgICAgLy8gc3VyZmFjZUNoaWxkMiBpcyBtb3ZpbmcgaW4gc2NyZWVu
IHNwYWNlIGJ1dCBub3QgcmVsYXRpdmUgdG8gaXRzIHRhcmdldCwgc28gb2NjbHVzaW9uIHNob3Vs
ZCBoYXBwZW4gaW4gaXRzIHRhcmdldCBzcGFjZSBvbmx5LgogICAgICAgICAvLyBJdCBhbHNvIG1l
YW5zIHRoYXQgdGhpbmdzIG9jY2x1ZGluZyBpbiBzY3JlZW4gc3BhY2UgKGUuZy4gc3VyZmFjZTIp
IGNhbm5vdCBvY2NsdWRlIHRoaXMgbGF5ZXIuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJ
bnRSZWN0KDAsIDAsIDEwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChz
dXJmYWNlQ2hpbGQyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChzdXJmYWNlQ2hpbGQyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSkpOwogICAgICAg
ICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHN1cmZhY2VDaGlsZCwgSW50UmVjdCgw
LCAwLCA1MCwgMzAwKSkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIoc3VyZmFjZUNoaWxk
Miwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihzdXJmYWNlQ2hpbGQsIG9j
Y2x1c2lvbik7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQoc3VyZmFj
ZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVu
U3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
NTAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwog
ICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
cmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAxMDAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMo
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAzMDApLCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNp
emUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEwMCwgMCwgMjAwLCAz
MDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHN1cmZhY2UsIEludFJlY3QoMCwg
MCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTAwLCAwLCAy
MDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZSwgSW50UmVj
dCgwLCAwLCAzMDAsIDMwMCkpKTsKIAogICAgICAgICAvLyBUaGUgc3VyZmFjZUNoaWxkIGlzIG9j
Y2x1ZGVkIGJ5IHRoZSBzdXJmYWNlQ2hpbGQyLCBidXQgaXMgbW92aW5nIHJlbGF0aXZlIGl0cyB0
YXJnZXQgYW5kIHRoZSBzY3JlZW4sIHNvIGl0CiAgICAgICAgIC8vIGNhbid0IGJlIG9jY2x1ZGVk
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyMDAsIDMwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAs
IDIwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDIwMCwg
MzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIEludFJl
Y3QoMCwgMCwgMjAwLCAzMDApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2Nj
bHVkZWQoc3VyZmFjZUNoaWxkLCBJbnRSZWN0KDAsIDAsIDUwLCAzMDApKSk7CiAKICAgICAgICAg
dGhpcy0+bGVhdmVMYXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMt
PmVudGVyTGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhlIHN1cmZhY2VD
aGlsZCBpcyBtb3ZpbmcgaW4gc2NyZWVuIHNwYWNlIGJ1dCBub3QgcmVsYXRpdmUgdG8gaXRzIHRh
cmdldCwgc28gb2NjbHVzaW9uIHNob3VsZCBoYXBwZW4gaW4gaXRzIHRhcmdldCBzcGFjZSBvbmx5
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMTAwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDEwMCwgMCwgMjAwLCAzMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHN1cmZhY2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMTAwLCAwLCAyMDAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKIAogICAgICAgICB0
aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoZSBzdXJm
YWNlJ3Mgb3duaW5nIGxheWVyIGlzIG1vdmluZyBpbiBzY3JlZW4gc3BhY2UgYnV0IG5vdCByZWxh
dGl2ZSB0byBpdHMgdGFyZ2V0LCBzbyBvY2NsdXNpb24gc2hvdWxkIGhhcHBlbiBpbiBpdHMgdGFy
Z2V0IHNwYWNlIG9ubHkuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDUwLCAzMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMzAwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgx
dSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDMwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3Qoc3VyZmFjZSwgSW50UmVjdCgwLCAwLCAzMDAsIDMwMCkpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChzdXJmYWNlLCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogCiAgICAgICAg
IHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogICAg
ICAgICAvLyBUaGUgY29udHJpYnV0aW5nIHxzdXJmYWNlfCBpcyBhbmltYXRpbmcgc28gaXQgY2Fu
J3QgYmUgb2NjbHVkZWQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAs
IDMwMCwgMzAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVu
dFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMzAwLCAzMDApKSk7CisgICAgICAg
IEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAzMDApLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVj
dCgwLCAwLCAzMDAsIDMwMCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJm
YWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXll
ciwgb2NjbHVzaW9uKTsKICAgICAgICAgLy8gVGhlIHxzdXJmYWNlfCBpcyBtb3ZpbmcgaW4gdGhl
IHNjcmVlbiBhbmQgaW4gaXRzIHRhcmdldCwgc28gYWxsIG9jY2x1c2lvbiB3aXRoaW4gdGhlIHN1
cmZhY2UgaXMgbG9zdCB3aGVuIGxlYXZpbmcgaXQuCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KDUwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShJbnRSZWN0KDUwLCAwLCAyNTAsIDMwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QocGFyZW50LCBJbnRSZWN0KDAsIDAsIDMwMCwgMzAwKSkpOwogICAgICAgICB0aGlzLT5s
ZWF2ZUxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIo
cGFyZW50LCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUgfGxheWVyfCBpcyBhbmltYXRpbmcg
aW4gdGhlIHNjcmVlbiBhbmQgaW4gaXRzIHRhcmdldCwgc28gbm8gb2NjbHVzaW9uIGlzIGFkZGVk
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgMCwgMjUwLCAzMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAzMDAs
IDMwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCg1MCwgMCwgMjUwLCAzMDAp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgwLCAwLCAz
MDAsIDMwMCkpKTsKICAgICB9CiB9OwogCkBAIC0yMjAyLDkgKzIyMDIsOSBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZTIsIG9jY2x1c2lvbik7CiAgICAgICAg
IHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlMiwgb2NjbHVzaW9uKTsKIAot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoNTAsIDUwLCAyMDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBF
Q1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEo
SW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3Vy
ZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIENsZWFy
IGFueSBzdG9yZWQgb2NjbHVzaW9uLgpAQCAtMjIxNCw5ICsyMjE0LDkgQEAgcHJvdGVjdGVkOgog
ICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwogCi0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDQwMCwgNDAwKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgNDAwLCA0MDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVz
aW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgNDAwLCA0MDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDQwMCwgNDAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CkBAIC0yMjM5LDkgKzIyMzksOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1
c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAy
MDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDIwMCksIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDIwMCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMzAwLCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2Ns
dXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAgICAgfQogfTsKQEAgLTIy
NjUsMjIgKzIyNjUsMjIgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyB8dG9wbW9zdHwgb2NjbHVk
ZXMgdGhlIHJlcGxpY2EsIGJ1dCBub3QgdGhlIHN1cmZhY2UgaXRzZWxmLgogICAgICAgICB0aGlz
LT52aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDEwMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMTAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2Uo
KS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMTAwLCAxMDAs
IDEwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAg
ICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgp
LnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9j
Y2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAw
LCAyMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUs
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgdGhp
cy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAg
ICAgLy8gU3VyZmFjZSBpcyBub3Qgb2NjbHVkZWQgc28gaXQgc2hvdWxkbid0IHRoaW5rIGl0IGlz
LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2Us
IGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRp
bmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAx
MDApKSk7CiAgICAgfQogfTsKIApAQCAtMjMwMywyMyArMjMwMywyMyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIC8vIHx0b3Btb3N0fCBvY2NsdWRlcyB0aGUgc3VyZmFjZSwgYnV0IG5vdCB0aGUgZW50
aXJlIHN1cmZhY2UncyByZXBsaWNhLgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1vc3Qs
IG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDExMCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDExMCksIG9jY2x1
c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lv
bi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAg
dGhpcy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTEwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3Qo
MCwgMCwgMTAwLCAxMTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMTAwLCAxMDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAg
ICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVj
dHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShz
dXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFN1cmZhY2UgaXMgb2NjbHVkZWQsIGJ1
dCBvbmx5IHRoZSB0b3AgMTBweCBvZiB0aGUgcmVwbGljYS4KLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0
aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwg
MTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAxMCwgMTAwLCA5
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1
cmZhY2UsIHRydWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMCwgMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0
aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwg
MTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwLCAxMDAsIDkwKSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFj
ZSwgdHJ1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKICAgICB9CiB9OwogCkBAIC0yMzQ0
LDIzICsyMzQ0LDIzIEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvdmVy
UmVwbGljYSwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvdmVyU3VyZmFj
ZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCA1MCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDIwMCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMjAwKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFy
Z2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIHRo
aXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIAotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDEwMCwgMjAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgydSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAg
IEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3Rz
KCkuc2l6ZSgpKTsKIAogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3Vy
ZmFjZSwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBTdXJmYWNlIGFuZCByZXBsaWNhIGFyZSBv
Y2NsdWRlZCBkaWZmZXJlbnQgYW1vdW50cy4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoNDAsIDAsIDYwLCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1
cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkp
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNTAsIDAsIDUwLCAxMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNl
LCB0cnVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDQwLCAwLCA2MCwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRp
bmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAx
MDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoNTAsIDAsIDUwLCAxMDApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNl
LCB0cnVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwogICAgIH0KIH07CiAKQEAgLTIzODQs
MTggKzIzODQsMTggQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyB8dG9wbW9zdHwgb2NjbHVkZXMg
ZXZlcnl0aGluZyBwYXJ0aWFsbHkgc28gd2Uga25vdyBvY2NsdXNpb24gaXMgaGFwcGVuaW5nIGF0
IGFsbC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwogCi0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgNTApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVu
U3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJn
ZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJm
YWNlQ2hpbGQsIG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gc3VyZmFjZUNoaWxkIGluY3JlYXNl
cyB0aGUgb2NjbHVzaW9uIGluIHRoZSBzY3JlZW4gYnkgYSBuYXJyb3cgc2xpdmVyLgotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDYwKSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMTAwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25J
blNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgICAgICAvLyBJbiBpdHMgb3duIHN1
cmZhY2UsIHN1cmZhY2VDaGlsZCBpcyBhdCAwLDAgYXMgaXMgaXRzIG9jY2x1c2lvbi4KLSAgICAg
ICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCA1MCksIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNU
X0VRKEludFJlY3QoMCwgMCwgMTAwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBUaGUg
cm9vdCBsYXllciBhbHdheXMgaGFzIGEgY2xpcFJlY3QuIFNvIHRoZSBwYXJlbnQgb2YgfHN1cmZh
Y2V8IGhhcyBhIGNsaXBSZWN0LiBIb3dldmVyLCB0aGUgb3duaW5nIGxheWVyIGZvciB8c3VyZmFj
ZXwgZG9lcyBub3QKQEAgLTI0MDUsMjAgKzI0MDUsMjAgQEAgcHJvdGVjdGVkOgogICAgICAgICB0
aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZUNoaWxkLCBvY2NsdXNpb24pOwog
ICAgICAgICAvLyBUaGUgc3VyZmFjZUNoaWxkJ3MgcGFyZW50IGRvZXMgbm90IGhhdmUgYSBjbGlw
UmVjdCBhcyBpdCBvd25zIGEgcmVuZGVyIHN1cmZhY2UuIE1ha2Ugc3VyZSB0aGUgdW5vY2NsdWRl
ZCByZWN0CiAgICAgICAgIC8vIGRvZXMgbm90IGdldCBjbGlwcGVkIGF3YXkgaW5hcHByb3ByaWF0
ZWx5LgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCA0MCwgMTAwLCAxMCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZh
Y2VDaGlsZCwgZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoSW50UmVjdCgwLCA0MCwgMTAwLCAxMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2VDaGlsZCwgZmFsc2UsIEludFJlY3Qo
MCwgMCwgMTAwLCA1MCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVDb250cmlidXRpbmdTdXJmYWNl
KHN1cmZhY2VDaGlsZCwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBXaGVuIHRoZSBzdXJmYWNl
Q2hpbGQncyBvY2NsdXNpb24gaXMgdHJhbnNmb3JtZWQgdXAgdG8gaXRzIHBhcmVudCwgbWFrZSBz
dXJlIGl0IGlzIG5vdCBjbGlwcGVkIGF3YXkgaW5hcHByb3ByaWF0ZWx5IGFsc28uCiAgICAgICAg
IHRoaXMtPmVudGVyTGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCA2MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDEwMCwgNjApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKICAgICAgICAgRVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MCwgMTAsIDEwMCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEwLCAxMDAsIDUwKSwg
b2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAg
RVhQRUNUX0VRKDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMo
KS5zaXplKCkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7
CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1
c2lvbik7CiAgICAgICAgIC8vIFRoZSBzdXJmYWNlJ3MgcGFyZW50IGRvZXMgaGF2ZSBhIGNsaXBS
ZWN0IGFzIGl0IGlzIHRoZSByb290IGxheWVyLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgwLCA1MCwgMTAwLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5n
U3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDUwLCAxMDAsIDUwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwg
ZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CiAgICAgfQogfTsKIApAQCAtMjQ0NCw3
ICsyNDQ0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3
YXlzIGhhcyBhIGNsaXBSZWN0LiBTbyB0aGUgcGFyZW50IG9mIHxzdXJmYWNlfCBoYXMgYSBjbGlw
UmVjdCBnaXZpbmcgdGhlIHN1cmZhY2UgaXRzZWxmIGEgY2xpcFJlY3QuCiAgICAgICAgICAgICB0
aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAgICAg
ICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGFyZW50J3MgY2xpcFJlY3QgY2xpcHMgdGhlIHVub2Nj
bHVkZWQgcmVnaW9uIG9mIHRoZSBjaGlsZCBzdXJmYWNlLgotICAgICAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAw
LCAxMDAsIDMwMCkpKTsKKyAgICAgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwg
MTAwLCAyMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50
UmVjdChzdXJmYWNlLCBmYWxzZSwgSW50UmVjdCgwLCAwLCAxMDAsIDMwMCkpKTsKICAgICAgICAg
fQogICAgICAgICB0aGlzLT5yZXNldExheWVySXRlcmF0b3IoKTsKICAgICAgICAgewpAQCAtMjQ1
Niw3ICsyNDU2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLy8gVGhlIHJvb3QgbGF5ZXIg
YWx3YXlzIGhhcyBhIGNsaXBSZWN0LiBTbyB0aGUgcGFyZW50IG9mIHxzdXJmYWNlfCBoYXMgYSBj
bGlwUmVjdCBnaXZpbmcgdGhlIHN1cmZhY2UgaXRzZWxmIGEgY2xpcFJlY3QuCiAgICAgICAgICAg
ICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKICAg
ICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmlld3BvcnQgcmVjdCBjbGlwcyB0aGUgdW5vY2Ns
dWRlZCByZWdpb24gb2YgdGhlIGNoaWxkIHN1cmZhY2UuCi0gICAgICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAs
IDEwMCwgMzAwKSkpOworICAgICAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAx
MDAsIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRS
ZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMzAwKSkpOwogICAgICAgICB9
CiAgICAgfQogfTsKQEAgLTI0ODMsMTcgKzI0ODMsMTcgQEAgcHJvdGVjdGVkOgogICAgICAgICAv
LyB8dG9wbW9zdHwgb2NjbHVkZXMgZXZlcnl0aGluZyBwYXJ0aWFsbHkgc28gd2Uga25vdyBvY2Ns
dXNpb24gaXMgaGFwcGVuaW5nIGF0IGFsbC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Bt
b3N0LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDgwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDgwLCA1MCksIG9jY2x1c2lv
bi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA4MCwgNTApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1Rf
UkVDVF9FUShJbnRSZWN0KDAsIDAsIDgwLCA1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9j
Y2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAgICAvLyBz
dXJmYWNlQ2hpbGQgaXMgbm90IG9wYXF1ZSBhbmQgZG9lcyBub3Qgb2NjbHVkZSwgc28gd2UgaGF2
ZSBhIG5vbi1lbXB0eSB1bm9jY2x1ZGVkIGFyZWEgb24gc3VyZmFjZS4KICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihzdXJmYWNlQ2hpbGQsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgODAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwg
MCwgODAsIDUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2Uo
KS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAs
IDAsIDAsIDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEo
MHUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7
CiAKICAgICAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlzIGhhcyBhIGNsaXBSZWN0LiBTbyB0
aGUgcGFyZW50IG9mIHxzdXJmYWNlfCBoYXMgYSBjbGlwUmVjdC4gSG93ZXZlciwgdGhlIG93bmlu
ZyBsYXllciBmb3IgfHN1cmZhY2V8IGRvZXMgbm90CkBAIC0yNTAyLDEzICsyNTAyLDEzIEBAIHBy
b3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFj
ZUNoaWxkLCBvY2NsdXNpb24pOwogICAgICAgICAvLyBUaGUgc3VyZmFjZUNoaWxkJ3MgcGFyZW50
IGRvZXMgbm90IGhhdmUgYSBjbGlwUmVjdCBhcyBpdCBvd25zIGEgcmVuZGVyIHN1cmZhY2UuCi0g
ICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDUwLCA4MCwgNTApLCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQs
IGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShJbnRSZWN0KDAsIDUwLCA4MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGlu
Z1N1cmZhY2VDb250ZW50UmVjdChzdXJmYWNlQ2hpbGQsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEw
MCwgMTAwKSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFj
ZUNoaWxkLCBvY2NsdXNpb24pOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwg
b2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZh
Y2UsIG9jY2x1c2lvbik7CiAgICAgICAgIC8vIFRoZSBzdXJmYWNlJ3MgcGFyZW50IGRvZXMgaGF2
ZSBhIGNsaXBSZWN0IGFzIGl0IGlzIHRoZSByb290IGxheWVyLgotICAgICAgICBFWFBFQ1RfSU5U
X1JFQ1RfRVEoSW50UmVjdCgwLCA1MCwgODAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIEludFJlY3QoMCwgMCwg
MTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgNTAsIDgwLCA1
MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1
cmZhY2UsIGZhbHNlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSkpOwogICAgIH0KIH07CiAKQEAg
LTI1NTYsMjggKzI1NTYsMjggQEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT52aXNpdExheWVy
KG9jY2x1ZGluZ0xheWVyMiwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihv
Y2NsdWRpbmdMYXllcjEsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFj
ZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAs
IDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVj
dHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAz
MDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7
CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNp
b24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1Rf
RVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygpLnNpemUo
KSk7CiAKICAgICAgICAgLy8gRXZlcnl0aGluZyBvdXRzaWRlIHRoZSBzdXJmYWNlL3JlcGxpY2Eg
aXMgb2NjbHVkZWQgYnV0IHRoZSBzdXJmYWNlL3JlcGxpY2EgaXRzZWxmIGlzIG5vdC4KICAgICAg
ICAgdGhpcy0+ZW50ZXJMYXllcihmaWx0ZXJlZFN1cmZhY2UsIG9jY2x1c2lvbik7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDEsIDAsIDk5LCAxMDApLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgxLCAwLCAxMDAsIDEw
MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMCwgMSwgMTAwLCA5OSks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0
KDAsIDEsIDEwMCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1
cmZhY2UsIEludFJlY3QoLTEsIDAsIDEwMCwgMTAwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDk5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50
UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwgLTEsIDEwMCwgMTAwKSkpOwotCi0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwMCArIDEsIDAsIDk5LCAxMDApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgzMDAg
KyAxLCAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3Qo
MzAwICsgMCwgMSwgMTAwLCA5OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmls
dGVyZWRTdXJmYWNlLCBJbnRSZWN0KDMwMCArIDAsIDEsIDEwMCwgMTAwKSkpOwotICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgzMDAgKyAwLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9u
LnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMzAwIC0gMSwg
MCwgMTAwLCAxMDApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDMwMCAr
IDAsIDAsIDEwMCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVk
U3VyZmFjZSwgSW50UmVjdCgzMDAgKyAwLCAtMSwgMTAwLCAxMDApKSk7CisgICAgICAgIEVYUEVD
VF9SRUNUX0VRKEludFJlY3QoMSwgMCwgOTksIDEwMCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDEsIDAsIDEwMCwgMTAwKSkpOworICAg
ICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDEsIDEwMCwgOTkpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAxLCAxMDAsIDEw
MCkpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA5OSwgMTAwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoLTEs
IDAsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEw
MCwgOTkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgwLCAtMSwgMTAwLCAxMDApKSk7CisKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50
UmVjdCgzMDAgKyAxLCAwLCA5OSwgMTAwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMzAwICsgMSwgMCwgMTAwLCAxMDApKSk7CisgICAg
ICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMzAwICsgMCwgMSwgMTAwLCA5OSksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNlLCBJbnRSZWN0KDMwMCArIDAs
IDEsIDEwMCwgMTAwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDMwMCArIDAs
IDAsIDk5LCAxMDApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3Vy
ZmFjZSwgSW50UmVjdCgzMDAgLSAxLCAwLCAxMDAsIDEwMCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgzMDAgKyAwLCAwLCAxMDAsIDk5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMzAwICsgMCwgLTEsIDEwMCwgMTAw
KSkpOwogICAgICAgICB0aGlzLT5sZWF2ZUxheWVyKGZpbHRlcmVkU3VyZmFjZSwgb2NjbHVzaW9u
KTsKIAogICAgICAgICAvLyBUaGUgZmlsdGVyZWQgbGF5ZXIvcmVwbGljYSBkb2VzIG5vdCBvY2Ns
dWRlLgotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBF
WFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSg1dSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDAsIDApLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRS
ZWN0KDAsIDAsIDAsIDApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91
bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdl
dFN1cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgLy8gVGhlIHN1cmZhY2UgaGFz
IGEgYmFja2dyb3VuZCBibHVyLCBzbyBpdCBuZWVkcyBwaXhlbHMgdGhhdCBhcmUgY3VycmVudGx5
IGNvbnNpZGVyZWQgb2NjbHVkZWQgaW4gb3JkZXIgdG8gYmUgZHJhd24uIFNvIHRoZSBwaXhlbHMK
QEAgLTI1ODUsOSArMjU4NSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dmlzaXRDb250
cmlidXRpbmdTdXJmYWNlKGZpbHRlcmVkU3VyZmFjZSwgb2NjbHVzaW9uKTsKIAogICAgICAgICB0
aGlzLT5lbnRlckxheWVyKHBhcmVudCwgb2NjbHVzaW9uKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAw
LCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkp
OwogICAgICAgICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNl
KCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgw
LCAwLCAzMDAsIDE1MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3Vu
ZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgMzAwLCAxNTApLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5yZWN0cygp
LnNpemUoKSk7CiAKICAgICAgICAgSW50UmVjdCBvdXRzZXRSZWN0OwpAQCAtMjU5Niw0NCArMjU5
Niw0NCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIE5vdGhpbmcgaW4gdGhlIGJsdXIgb3V0c2V0
cyBmb3IgdGhlIGZpbHRlcmVkU3VyZmFjZSBpcyBvY2NsdWRlZC4KICAgICAgICAgb3V0c2V0UmVj
dCA9IEludFJlY3QoNTAgLSBvdXRzZXRMZWZ0LCA1MCAtIG91dHNldFRvcCwgNTAgKyBvdXRzZXRM
ZWZ0ICsgb3V0c2V0UmlnaHQsIDUwICsgb3V0c2V0VG9wICsgb3V0c2V0Qm90dG9tKTsKICAgICAg
ICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0
c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0
KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1
ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOwogCiAgICAgICAgIC8vIFN0dWZmIG91
dHNpZGUgdGhlIGJsdXIgb3V0c2V0cyBpcyBzdGlsbCBvY2NsdWRlZCB0aG91Z2guCiAgICAgICAg
IHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDEsIDApOwot
ICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVk
ZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VR
KG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0
UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0
LmV4cGFuZCgwLCAxKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAg
ICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0Owog
ICAgICAgICB0ZXN0UmVjdC5tb3ZlKC0xLCAwKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDEs
IDApOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCB0ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRl
c3RSZWN0Lm1vdmUoMCwgLTEpOwogICAgICAgICB0ZXN0UmVjdC5leHBhbmQoMCwgMSk7Ci0gICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENv
bnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEob3V0
c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0
KSk7CiAKICAgICAgICAgLy8gTm90aGluZyBpbiB0aGUgYmx1ciBvdXRzZXRzIGZvciB0aGUgZmls
dGVyZWRTdXJmYWNlJ3MgcmVwbGljYSBpcyBvY2NsdWRlZC4KICAgICAgICAgb3V0c2V0UmVjdCA9
IEludFJlY3QoMjAwIC0gb3V0c2V0TGVmdCwgNTAgLSBvdXRzZXRUb3AsIDUwICsgb3V0c2V0TGVm
dCArIG91dHNldFJpZ2h0LCA1MCArIG91dHNldFRvcCArIG91dHNldEJvdHRvbSk7CiAgICAgICAg
IHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNl
dFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKIAogICAgICAgICAvLyBTdHVmZiBvdXRz
aWRlIHRoZSBibHVyIG91dHNldHMgaXMgc3RpbGwgb2NjbHVkZWQgdGhvdWdoLgogICAgICAgICB0
ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgxLCAwKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShv
dXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJl
Y3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5l
eHBhbmQoMCwgMSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShvdXRzZXRSZWN0LCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgdGVzdFJlY3QpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVj
dChwYXJlbnQsIHRlc3RSZWN0KSk7CiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKICAg
ICAgICAgdGVzdFJlY3QubW92ZSgtMSwgMCk7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgxLCAw
KTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKG91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVD
VF9FUShvdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
dGVzdFJlY3QpKTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0
UmVjdC5tb3ZlKDAsIC0xKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAsIDEpOwotICAgICAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEob3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChwYXJlbnQsIHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKG91dHNl
dFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCB0ZXN0UmVjdCkp
OwogICAgIH0KIH07CiAKQEAgLTI2NzEsOSArMjY3MSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAK
ICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvY2NsdWRpbmdMYXllckFib3ZlLCBvY2NsdXNpb24p
OwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxMDAgLyAyLCAxMDAgLyAyLCA1
MCAvIDIsIDUwIC8gMiksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCAvIDIsIDEwMCAvIDIsIDUw
IC8gMiwgNTAgLyAyKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMo
KSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3Bh
Y2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDEwMCwgMTAwLCA1MCwgNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
Ym91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDEwMCwgMTAwLCA1MCwg
NTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOwogICAg
ICAgICBFWFBFQ1RfRVEoMXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5y
ZWN0cygpLnNpemUoKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihmaWx0ZXJlZFN1cmZh
Y2UyLCBvY2NsdXNpb24pOwpAQCAtMjY4Niw3ICsyNjg2LDcgQEAgcHJvdGVjdGVkOgogCiAgICAg
ICAgIC8vIFRlc3QgZXhwZWN0YXRpb25zIGluIHRoZSB0YXJnZXQuCiAgICAgICAgIEludFJlY3Qg
ZXhwZWN0ZWRPY2NsdXNpb24gPSBJbnRSZWN0KDEwMCArIG91dHNldFJpZ2h0ICogMiwgMTAwICsg
b3V0c2V0Qm90dG9tICogMiwgNTAgLSAob3V0c2V0TGVmdCArIG91dHNldFJpZ2h0KSAqIDIsIDUw
IC0gKG91dHNldFRvcCArIG91dHNldEJvdHRvbSkgKiAyKTsKLSAgICAgICAgRVhQRUNUX0lOVF9S
RUNUX0VRKGV4cGVjdGVkT2NjbHVzaW9uLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkucmVjdHMoKVswXSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVkT2NjbHVz
aW9uLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKVswXSk7CiAK
ICAgICAgICAgLy8gVGVzdCBleHBlY3RhdGlvbnMgaW4gdGhlIHNjcmVlbi4gVGFrZSB0aGUgY2Vp
bGluZyBvZiBoYWxmIG9mIHRoZSBvdXRzZXRzLgogICAgICAgICBvdXRzZXRUb3AgPSAob3V0c2V0
VG9wICsgMSkgLyAyOwpAQCAtMjY5NSw3ICsyNjk1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBv
dXRzZXRMZWZ0ID0gKG91dHNldExlZnQgKyAxKSAvIDI7CiAgICAgICAgIGV4cGVjdGVkT2NjbHVz
aW9uID0gSW50UmVjdCgxMDAgLyAyICsgb3V0c2V0UmlnaHQgKiAyLCAxMDAgLyAyICsgb3V0c2V0
Qm90dG9tICogMiwgNTAgLyAyIC0gKG91dHNldExlZnQgKyBvdXRzZXRSaWdodCkgKiAyLCA1MCAv
MiAtIChvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pICogMik7CiAKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKGV4cGVjdGVkT2NjbHVzaW9uLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5T
cGFjZSgpLnJlY3RzKClbMF0pOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3RlZE9jY2x1
c2lvbiwgb2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpWzBdKTsKICAg
ICB9CiB9OwogCkBAIC0yNzQyLDI4ICsyNzQyLDI4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhp
cy0+dmlzaXRMYXllcihvY2NsdWRpbmdMYXllcjIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMt
PnZpc2l0TGF5ZXIob2NjbHVkaW5nTGF5ZXIxLCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVD
VF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwgMTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDV1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3Jl
ZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNl
KCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDMwMCwg
MTUwKSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAg
ICAgICAgRVhQRUNUX0VRKDV1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCku
cmVjdHMoKS5zaXplKCkpOwogCiAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgb3V0c2lkZSB0aGUgc3Vy
ZmFjZS9yZXBsaWNhIGlzIG9jY2x1ZGVkIGJ1dCB0aGUgc3VyZmFjZS9yZXBsaWNhIGl0c2VsZiBp
cyBub3QuCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoZmlsdGVyZWRTdXJmYWNlLCBvY2NsdXNp
b24pOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxLCAwLCA0OSwgNTApLCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgx
LCAwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDEs
IDUwLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVyZWRTdXJmYWNl
LCBJbnRSZWN0KDAsIDEsIDUwLCA1MCkpKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0
ZXJlZFN1cmZhY2UsIEludFJlY3QoLTEsIDAsIDUwLCA1MCkpKTsKLSAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNTAsIDQ5KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250
ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMCwgLTEsIDUwLCA1MCkpKTsKLQotICAg
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxNTAgKyAxLCAwLCA0OSwgNTApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgxNTAg
KyAxLCAwLCA1MCwgNTApKSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDE1
MCArIDAsIDEsIDUwLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmlsdGVy
ZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCArIDAsIDEsIDUwLCA1MCkpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKEludFJlY3QoMTUwICsgMCwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoMTUwIC0gMSwgMCwgNTAs
IDUwKSkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgxNTAgKyAwLCAwLCA1
MCwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwg
SW50UmVjdCgxNTAgKyAwLCAtMSwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJ
bnRSZWN0KDEsIDAsIDQ5LCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmls
dGVyZWRTdXJmYWNlLCBJbnRSZWN0KDEsIDAsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQRUNUX1JF
Q1RfRVEoSW50UmVjdCgwLCAxLCA1MCwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAxLCA1MCwgNTApKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoMCwgMCwgNDksIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRD
b250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJlY3QoLTEsIDAsIDUwLCA1MCkpKTsKKyAg
ICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCA1MCwgNDkpLCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgwLCAtMSwgNTAsIDUw
KSkpOworCisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTUwICsgMSwgMCwgNDksIDUw
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJl
Y3QoMTUwICsgMSwgMCwgNTAsIDUwKSkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0
KDE1MCArIDAsIDEsIDUwLCA0OSksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoZmls
dGVyZWRTdXJmYWNlLCBJbnRSZWN0KDE1MCArIDAsIDEsIDUwLCA1MCkpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoSW50UmVjdCgxNTAgKyAwLCAwLCA0OSwgNTApLCBvY2NsdXNpb24udW5vY2Ns
dWRlZENvbnRlbnRSZWN0KGZpbHRlcmVkU3VyZmFjZSwgSW50UmVjdCgxNTAgLSAxLCAwLCA1MCwg
NTApKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKEludFJlY3QoMTUwICsgMCwgMCwgNTAsIDQ5
KSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChmaWx0ZXJlZFN1cmZhY2UsIEludFJl
Y3QoMTUwICsgMCwgLTEsIDUwLCA1MCkpKTsKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihmaWx0
ZXJlZFN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAgICAgLy8gVGhlIGZpbHRlcmVkIGxheWVy
L3JlcGxpY2EgZG9lcyBub3Qgb2NjbHVkZS4KLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1
MCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAg
ICBFWFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMo
KS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAw
KSwgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAwLCAwKSwgb2NjbHVzaW9uLm9jY2x1c2lv
bkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDB1LCBvY2Ns
dXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogCiAgICAg
ICAgIC8vIFRoZSBzdXJmYWNlIGhhcyBhIGJhY2tncm91bmQgYmx1ciwgc28gaXQgbmVlZHMgcGl4
ZWxzIHRoYXQgYXJlIGN1cnJlbnRseSBjb25zaWRlcmVkIG9jY2x1ZGVkIGluIG9yZGVyIHRvIGJl
IGRyYXduLiBTbyB0aGUgcGl4ZWxzCkBAIC0yNzcxLDcgKzI3NzEsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShmaWx0ZXJlZFN1cmZhY2UsIG9j
Y2x1c2lvbik7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNsaXBw
aW5nU3VyZmFjZSwgb2NjbHVzaW9uKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMCwgMCwgMzAwLCAxNTApLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJv
dW5kcygpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAzMDAsIDE1MCks
IG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBF
WFBFQ1RfRVEoNXUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5z
aXplKCkpOwogCiAgICAgICAgIEludFJlY3Qgb3V0c2V0UmVjdDsKQEAgLTI3ODIsNDUgKzI3ODIs
NDUgQEAgcHJvdGVjdGVkOgogICAgICAgICBvdXRzZXRSZWN0ID0gSW50UmVjdCg1MCAtIG91dHNl
dExlZnQsIDUwIC0gb3V0c2V0VG9wLCA1MCArIG91dHNldExlZnQgKyBvdXRzZXRSaWdodCwgNTAg
KyBvdXRzZXRUb3AgKyBvdXRzZXRCb3R0b20pOwogICAgICAgICBjbGlwcGVkT3V0c2V0UmVjdCA9
IGludGVyc2VjdGlvbihvdXRzZXRSZWN0LCBJbnRSZWN0KDAgLSBvdXRzZXRMZWZ0LCAwIC0gb3V0
c2V0VG9wLCAzMDAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIDcwICsgb3V0c2V0VG9wICsg
b3V0c2V0Qm90dG9tKSk7CiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogCiAgICAgICAgIC8vIFN0dWZmIG91dHNp
ZGUgdGhlIChjbGlwcGVkKSBibHVyIG91dHNldHMgaXMgc3RpbGwgb2NjbHVkZWQgdGhvdWdoLgog
ICAgICAgICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgx
LCAwKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsK
KyAgICAgICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogICAgICAgICB0
ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgwLCAxKTsKLSAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAgICAg
RVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9
IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0Lm1vdmUoLTEsIDApOwogICAgICAgICB0ZXN0
UmVjdC5leHBhbmQoMSwgMCk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShjbGlwcGVkT3V0
c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2Us
IHRlc3RSZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBv
Y2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3Qp
KTsKICAgICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5tb3Zl
KDAsIC0xKTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAsIDEpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVu
dFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9F
UShjbGlwcGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjbGlw
cGluZ1N1cmZhY2UsIHRlc3RSZWN0KSk7CiAKICAgICAgICAgLy8gTm90aGluZyBpbiB0aGUgKGNs
aXBwZWQpIGJsdXIgb3V0c2V0cyBmb3IgdGhlIGZpbHRlcmVkU3VyZmFjZSdzIHJlcGxpY2EgaXMg
b2NjbHVkZWQuCiAgICAgICAgIG91dHNldFJlY3QgPSBJbnRSZWN0KDIwMCAtIG91dHNldExlZnQs
IDUwIC0gb3V0c2V0VG9wLCA1MCArIG91dHNldExlZnQgKyBvdXRzZXRSaWdodCwgNTAgKyBvdXRz
ZXRUb3AgKyBvdXRzZXRCb3R0b20pOwogICAgICAgICBjbGlwcGVkT3V0c2V0UmVjdCA9IGludGVy
c2VjdGlvbihvdXRzZXRSZWN0LCBJbnRSZWN0KDAgLSBvdXRzZXRMZWZ0LCAwIC0gb3V0c2V0VG9w
LCAzMDAgKyBvdXRzZXRMZWZ0ICsgb3V0c2V0UmlnaHQsIDcwICsgb3V0c2V0VG9wICsgb3V0c2V0
Qm90dG9tKSk7CiAgICAgICAgIHRlc3RSZWN0ID0gb3V0c2V0UmVjdDsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNUX1JFQ1Rf
RVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QoY2xp
cHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogCiAgICAgICAgIC8vIFN0dWZmIG91dHNpZGUgdGhl
IChjbGlwcGVkKSBibHVyIG91dHNldHMgaXMgc3RpbGwgb2NjbHVkZWQgdGhvdWdoLgogICAgICAg
ICB0ZXN0UmVjdCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgxLCAwKTsK
LSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAg
ICAgRVhQRUNUX1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVk
Q29udGVudFJlY3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVj
dCA9IG91dHNldFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0LmV4cGFuZCgwLCAxKTsKLSAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNpb24udW5vY2NsdWRl
ZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKKyAgICAgICAgRVhQRUNU
X1JFQ1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QoY2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOwogICAgICAgICB0ZXN0UmVjdCA9IG91dHNl
dFJlY3Q7CiAgICAgICAgIHRlc3RSZWN0Lm1vdmUoLTEsIDApOwogICAgICAgICB0ZXN0UmVjdC5l
eHBhbmQoMSwgMCk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShjbGlwcGVkT3V0c2V0UmVj
dCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjbGlwcGluZ1N1cmZhY2UsIHRlc3RS
ZWN0KSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGNsaXBwZWRPdXRzZXRSZWN0LCBvY2NsdXNp
b24udW5vY2NsdWRlZENvbnRlbnRSZWN0KGNsaXBwaW5nU3VyZmFjZSwgdGVzdFJlY3QpKTsKICAg
ICAgICAgdGVzdFJlY3QgPSBvdXRzZXRSZWN0OwogICAgICAgICB0ZXN0UmVjdC5tb3ZlKDAsIC0x
KTsKICAgICAgICAgdGVzdFJlY3QuZXhwYW5kKDAsIDEpOwotICAgICAgICBFWFBFQ1RfSU5UX1JF
Q1RfRVEoY2xpcHBlZE91dHNldFJlY3QsIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3Qo
Y2xpcHBpbmdTdXJmYWNlLCB0ZXN0UmVjdCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShjbGlw
cGVkT3V0c2V0UmVjdCwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChjbGlwcGluZ1N1
cmZhY2UsIHRlc3RSZWN0KSk7CiAgICAgfQogfTsKIApAQCAtMjg2Niw5ICsyODY2LDkgQEAgcHJv
dGVjdGVkOgogICAgICAgICBJbnRSZWN0IG9jY2x1c2lvbkJlaGluZFJlcGxpY2EgPSBJbnRSZWN0
KDIxMCwgNjAsIDMwLCAzMCk7CiAKICAgICAgICAgSW50UmVjdCBleHBlY3RlZE9wYXF1ZUJvdW5k
cyA9IHVuaW9uUmVjdChvY2NsdXNpb25CZWhpbmRTdXJmYWNlLCBvY2NsdXNpb25CZWhpbmRSZXBs
aWNhKTsKLSAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkT3BhcXVlQm91bmRzLCBv
Y2NsdXNpb24ub2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKKyAgICAgICAgRVhQ
RUNUX1JFQ1RfRVEoZXhwZWN0ZWRPcGFxdWVCb3VuZHMsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5v
Y2NsdXNpb25JblNjcmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1Rf
SU5UX1JFQ1RfRVEoZXhwZWN0ZWRPcGFxdWVCb3VuZHMsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRh
cmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9SRUNUX0VRKGV4cGVjdGVk
T3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRz
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMnUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1
cmZhY2UoKS5yZWN0cygpLnNpemUoKSk7CiAgICAgfQogfTsKQEAgLTI5MTQsOSArMjkxNCw5IEBA
IHByb3RlY3RlZDoKICAgICAgICAgSW50UmVjdCBvY2NsdXNpb25BYm92ZVJlcGxpY2EgPSBJbnRS
ZWN0KDIwMCwgNTAsIDUwLCA1MCk7CiAKICAgICAgICAgSW50UmVjdCBleHBlY3RlZE9wYXF1ZUJv
dW5kcyA9IHVuaW9uUmVjdChvY2NsdXNpb25BYm92ZVN1cmZhY2UsIG9jY2x1c2lvbkFib3ZlUmVw
bGljYSk7Ci0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZE9wYXF1ZUJvdW5kcywg
b2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKGV4cGVjdGVkT3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5T
Y3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKLSAgICAgICAgRVhQRUNU
X0lOVF9SRUNUX0VRKGV4cGVjdGVkT3BhcXVlQm91bmRzLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5U
YXJnZXRTdXJmYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBFQ1RfUkVDVF9FUShleHBlY3Rl
ZE9wYXF1ZUJvdW5kcywgb2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5k
cygpKTsKICAgICAgICAgRVhQRUNUX0VRKDJ1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRT
dXJmYWNlKCkucmVjdHMoKS5zaXplKCkpOwogICAgIH0KIH07CkBAIC0zMDE1LDE3ICszMDE1LDE3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gVGhlIHNtYWxsIGxheWVyIGlzIG5vdCB0cmFja2Vk
IGJlY2F1c2UgaXQgaXMgdG9vIHNtYWxsLgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHNtYWxs
LCBvY2NsdXNpb24pOwogCi0gICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KCksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuYm91bmRzKCkpOworICAgICAgICBFWFBF
Q1RfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwogICAgICAgICBFWFBFQ1RfRVEoMHUsIG9jY2x1c2lvbi5vY2NsdXNpb25JblNj
cmVlblNwYWNlKCkucmVjdHMoKS5zaXplKCkpOwotICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEo
SW50UmVjdCgpLCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuYm91bmRzKCkp
OworICAgICAgICBFWFBFQ1RfUkVDVF9FUShJbnRSZWN0KCksIG9jY2x1c2lvbi5vY2NsdXNpb25J
blRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwdSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgICAg
ICAvLyBUaGUgbGFyZ2UgbGF5ZXIgaXMgdHJhY2tlZCBhcyBpdCBpcyBsYXJnZSBlbm91Z2guCiAg
ICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGFyZ2UsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgRVhQ
RUNUX0lOVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoKSwgdHJhY2tpbmdTaXplKSwgb2NjbHVz
aW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVYUEVDVF9S
RUNUX0VRKEludFJlY3QoSW50UG9pbnQoKSwgdHJhY2tpbmdTaXplKSwgb2NjbHVzaW9uLm9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgxdSwgb2Nj
bHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5yZWN0cygpLnNpemUoKSk7Ci0gICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KEludFBvaW50KCksIHRyYWNraW5nU2l6ZSksIG9j
Y2x1c2lvbi5vY2NsdXNpb25JblRhcmdldFN1cmZhY2UoKS5ib3VuZHMoKSk7CisgICAgICAgIEVY
UEVDVF9SRUNUX0VRKEludFJlY3QoSW50UG9pbnQoKSwgdHJhY2tpbmdTaXplKSwgb2NjbHVzaW9u
Lm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmJvdW5kcygpKTsKICAgICAgICAgRVhQRUNUX0VR
KDF1LCBvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkucmVjdHMoKS5zaXplKCkp
OwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nv
bnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NvbnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggZmQzNWUyMjI0NWRlY2U4NDE5YmNj
ZjZjMDQwZGQ1NzMzMmM0YTk5Yi4uZDJlNzRmZmM5OTJlOGE3NTNkOTkyNDIxOWY5N2JkZGIxOTlk
OTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Db250ZW50TGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ29u
dGVudExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkNv
bnRlbnRMYXllckNocm9taXVtLmgiCiAKICNpbmNsdWRlICJCaXRtYXBDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyLmgiCi0jaW5jbHVkZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCisjaW5jbHVk
ZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgIkNDUmVuZGVyaW5nU3RhdHMuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJPcGFxdWVSZWN0VHJhY2tp
bmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5oIgpAQCAtMTA1LDcgKzEwNSw3IEBAIFRFU1QoQ29udGVu
dExheWVyQ2hyb21pdW1UZXN0LCBDb250ZW50TGF5ZXJQYWludGVyV2l0aERldmljZVNjYWxlKQog
ICAgIENDUmVuZGVyaW5nU3RhdHMgc3RhdHM7CiAgICAgdXBkYXRlci0+cHJlcGFyZVRvVXBkYXRl
KGNvbnRlbnRSZWN0LCBJbnRTaXplKDI1NiwgMjU2KSwgY29udGVudHNTY2FsZSwgY29udGVudHNT
Y2FsZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCwgc3RhdHMpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNU
X0VRKG9wYXF1ZVJlY3RJbkNvbnRlbnRTcGFjZSwgcmVzdWx0aW5nT3BhcXVlUmVjdCk7CisgICAg
RVhQRUNUX1JFQ1RfRVEob3BhcXVlUmVjdEluQ29udGVudFNwYWNlLCByZXN1bHRpbmdPcGFxdWVS
ZWN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMGU2ZWIwZWI0MWIwMmJkYWQ1MWM2
N2RiNmQ4NTA5MzczMzk2ZGQ5MS4uMTI4M2M3OTg5ZmQ3MmIzNzJiNDhmODQ4MWM5MmU4MTFiY2Y1
YThlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9t
aXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9t
aXVtVGVzdC5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKIAogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0u
aCIKIAorI2luY2x1ZGUgIkNDR2VvbWV0cnlUZXN0VXRpbHMuaCIKICNpbmNsdWRlICJDQ0xheWVy
SW1wbC5oIgogI2luY2x1ZGUgIkNDTGF5ZXJUcmVlSG9zdC5oIgotI2luY2x1ZGUgIkNDTGF5ZXJU
cmVlVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkNDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNpbmNs
dWRlICJGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVy
Q2hyb21pdW0uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGls
ZWRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Rp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDAwZWUyOGE2ODhlYTZkMjg1NTY3YTM3YTAw
NzBkMzVhYTExYmY3MDUuLjRmMTEwMWNlNTI1MWIxMGUxMjM1YzZiNjk5MDJlMzQ2YWI0ZjAyYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9t
aXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVy
Q2hyb21pdW1UZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQml0bWFwQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIgogI2luY2x1ZGUgIkNDQW5pbWF0aW9uVGVzdENvbW1v
bi5oIgotI2luY2x1ZGUgIkNDTGF5ZXJUcmVlVGVzdENvbW1vbi5oIgorI2luY2x1ZGUgIkNDR2Vv
bWV0cnlUZXN0VXRpbHMuaCIKICNpbmNsdWRlICJDQ092ZXJkcmF3TWV0cmljcy5oIgogI2luY2x1
ZGUgIkNDUmVuZGVyaW5nU3RhdHMuaCIKICNpbmNsdWRlICJDQ1NpbmdsZVRocmVhZFByb3h5Lmgi
IC8vIEZvciBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQKQEAgLTQ2LDEyICs0Niw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXRUZXN0czsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBXZWJL
aXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OwogCi0jZGVmaW5lIEVYUEVDVF9FUV9SRUNUKGEs
IGIpIFwKLSAgICBFWFBFQ1RfRVEoYS54KCksIGIueCgpKTsgXAotICAgIEVYUEVDVF9FUShhLnko
KSwgYi55KCkpOyBcCi0gICAgRVhQRUNUX0VRKGEud2lkdGgoKSwgYi53aWR0aCgpKTsgXAotICAg
IEVYUEVDVF9FUShhLmhlaWdodCgpLCBiLmhlaWdodCgpKTsKLQogbmFtZXNwYWNlIHsKIAogY2xh
c3MgVGVzdENDT2NjbHVzaW9uVHJhY2tlciA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXIgewpA
QCAtMTIxNSw3ICsxMjA5LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2li
bGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVyLT51cGRhdGUobV9xdWV1ZSwgJm9jY2x1
ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRz
ID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7Ci0gICAgRVhQRUNUX0VRX1JF
Q1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNv
bnRlbnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShpbnRlcnNlY3Rpb24ob3BhcXVl
UGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAg
IEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAw
MCAqIDIsIDEpOwpAQCAtMTIyOCw3ICsxMjIyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVyLT51cGRhdGUobV9x
dWV1ZSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9w
YXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7Ci0gICAg
RVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5k
cyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVDVF9FUShpbnRlcnNl
Y3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91
bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkp
OwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFp
bnRlZCgpLCAyMDAwMCAqIDIsIDEpOwpAQCAtMTI0Myw3ICsxMjM3LDcgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIGxheWVy
LT51cGRhdGUobV9xdWV1ZSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJl
cygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVn
aW9uKCk7Ci0gICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwg
dmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKKyAgICBFWFBFQ1RfUkVD
VF9FUShpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVl
Q29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVj
dHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIgKyAxLCAxKTsKQEAgLTEyNTgsNyArMTI1Miw3
IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJl
Z2lvbikKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAg
ICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxl
Q29udGVudE9wYXF1ZVJlZ2lvbigpOwotICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihJ
bnRSZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMu
Ym91bmRzKCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGludGVyc2VjdGlvbihJbnRSZWN0KDEwLCAx
MDAsIDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwog
ICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAy
MDAwMCAqIDIgKyAxICArIDEsIDEpOwpAQCAtMTU0MCw3ICsxNTM0LDcgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWRE
dXJpbmdQYWludCkKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAsIG1fc3RhdHMpOwogICAg
IGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5yZXNldFBhaW50ZWRSZWN0KCk7CiAKLSAg
ICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXllci0+dHJhY2tpbmdMYXllclBhaW50
ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CisgICAgRVhQRUNUX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXll
ci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CiAKICAgICB7CiAgICAg
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwpAQCAtMTU1MSw3ICsxNTQ1
LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1Nj
YWxlSXNOb3REaXN0b3J0ZWREdXJpbmdQYWludCkKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRl
bnRSZWN0KGNvbnRlbnRSZWN0KTsKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAsIG1fc3Rh
dHMpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5n
TGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKGxheWVy
UmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwogfQog
CiBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJ
c05vdERpc3RvcnRlZER1cmluZ0ludmFsaWRhdGlvbikKQEAgLTE1NzQsNyArMTU2OCw3IEBAIFRF
U1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90
RGlzdG9ydGVkRHVyaW5nSW52YWxpCiAgICAgbGF5ZXItPnVwZGF0ZShtX3F1ZXVlLCAwLCBtX3N0
YXRzKTsKICAgICBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cmVzZXRQYWludGVkUmVj
dCgpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5ZXItPnRyYWNraW5n
TGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VRKEludFJl
Y3QoKSwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwogCiAg
ICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKQEAgLTE1
ODUsNyArMTU3OSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2Vy
Q29udGVudHNTY2FsZUlzTm90RGlzdG9ydGVkRHVyaW5nSW52YWxpCiAgICAgbGF5ZXItPnNldE5l
ZWRzRGlzcGxheVJlY3QobGF5ZXJSZWN0KTsKICAgICBsYXllci0+dXBkYXRlKG1fcXVldWUsIDAs
IG1fc3RhdHMpOwogCi0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRy
YWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOworICAgIEVYUEVDVF9SRUNUX0VR
KGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJUcmFuc2Zvcm1PcGVyYXRpb25zVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCA5ZTRmNzVh
M2NlYjhlMDkyZmY2ZWI0Nzg2ZDcwMGU4NWQ2Mzk1OGY0Li5kNTRkYjIxNGQ1ZTcwMTA4MDZkZjU4
NTMzMDY5MTUyNzNlZWYzODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybU9wZXJhdGlvbnNUZXN0LmNwcApAQCAtMjYsMTEgKzI2
LDkgQEAKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1PcGVyYXRpb25zLmg+CiAKLSNp
bmNsdWRlIDxwdWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KLQotI2luY2x1ZGUgIkND
TGF5ZXJUcmVlVGVzdENvbW1vbi5oIgotCisjaW5jbHVkZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5o
IgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9y
bWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeFRlc3Qu
Y3BwCmluZGV4IGViNDQyZjRlM2RlZWYyZWM5OWI2N2EzOWVmNTQ5YWM1NjVjZDU0MjMuLmE1ODdl
NGEzNzRhM2ZhZGIxNWI2ZDllM2Q1MTEzOGFmZDkxMGNiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXhUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4VGVz
dC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeC5oPgogCi0jaW5jbHVkZSAiQ0NMYXllclRyZWVUZXN0Q29tbW9uLmgiCisjaW5j
bHVkZSAiQ0NHZW9tZXRyeVRlc3RVdGlscy5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAo=
</data>
<flag name="review"
          id="172679"
          type_id="1"
          status="+"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>